Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

проверка запроса

328
11 августа 2003 года
Felix
257 / / 20.07.2000
есть следующая ситуация:
соурс списка заполняеться динамически следующим образом:

ADOQuery3->Close();
ADOQuery3->SQL->Clear();
ADOQuery3->SQL->Add("SELECT pkGroup, LTRIM(GroupName)+'-'+LTRIM(STR(GroupIndex)) AS FullName");
ADOQuery3->SQL->Add("FROM dbo.dGroup");
ADOQuery3->SQL->Add("WHERE (fkFakultet = "+ DBLookupListBox1->KeyValue +") AND (fkTypeObuch = "+ DBLookupComboBox1->KeyValue +") AND (Deleted = 0)");
ADOQuery3->Open();


так вот, если в результате запроса нет данных, в данном случае не находиться записей с таким условием то вылетает ошибка

either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record

можно ли как то етого избежать??? или проверить до открытия квери не пуст ли результат, потому что ошибка вылетает именно на опен...
293
11 августа 2003 года
SEDEGOFF
586 / / 06.10.2002
Ну во первых посмотри что у тебя за запрос получился и попробуй выполнить его явно из своей программы или из какой то другой
Во вторых - за точность не отвечаю - перед опеном напиши
ADOQuery3->Prepare();

А избежать этого можно так
try
{
ADOQuery3->Open();
//какието действия
}
catch(...)
{
ShowMessage("Справочник пуст");

}
328
11 августа 2003 года
Felix
257 / / 20.07.2000
Цитата:
Originally posted by SEDEGOFF


А избежать этого можно так
try
{
ADOQuery3->Open();
//какието действия
}
catch(...)
{
ShowMessage("Справочник пуст");

}



что то не получаеться так избегать...
при пошаговом исполнении один раз проходит нормально, потом глючит, иногда вообще дважды код выполняет...

348
11 августа 2003 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by Felix


что то не получаеться так избегать...
при пошаговом исполнении один раз проходит нормально, потом глючит, иногда вообще дважды код выполняет...


Была у меня такая ошибка когда писал под SQL server. В оракле и других СУБД такого не видел. Хоть убей точно не помню как от неё отвязался.
Если ты правельно поймал ошибку, то при запуске не из билдера сообщений вылетать недолжно. А после своего сообщения закрой запрос ADOQuery3->Active=false;

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог