проверка запроса
соурс списка заполняеться динамически следующим образом:
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
можно ли как то етого избежать??? или проверить до открытия квери не пуст ли результат, потому что ошибка вылетает именно на опен...
Во вторых - за точность не отвечаю - перед опеном напиши
ADOQuery3->Prepare();
А избежать этого можно так
try
{
ADOQuery3->Open();
//какието действия
}
catch(...)
{
ShowMessage("Справочник пуст");
}
Цитата:
Originally posted by SEDEGOFF
А избежать этого можно так
try
{
ADOQuery3->Open();
//какието действия
}
catch(...)
{
ShowMessage("Справочник пуст");
}
А избежать этого можно так
try
{
ADOQuery3->Open();
//какието действия
}
catch(...)
{
ShowMessage("Справочник пуст");
}
что то не получаеться так избегать...
при пошаговом исполнении один раз проходит нормально, потом глючит, иногда вообще дважды код выполняет...
Цитата:
Originally posted by Felix
что то не получаеться так избегать...
при пошаговом исполнении один раз проходит нормально, потом глючит, иногда вообще дважды код выполняет...
что то не получаеться так избегать...
при пошаговом исполнении один раз проходит нормально, потом глючит, иногда вообще дважды код выполняет...
Была у меня такая ошибка когда писал под SQL server. В оракле и других СУБД такого не видел. Хоть убей точно не помню как от неё отвязался.
Если ты правельно поймал ошибку, то при запуске не из билдера сообщений вылетать недолжно. А после своего сообщения закрой запрос ADOQuery3->Active=false;