НовыйЧок |
Отправлено: 11.01.2006, 13:06 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Доброе время суток!
Есть программа работающая с БД (Access) через BDE. Пришел к тому что надо переходить на ADO.
Данные из БД беру посредством TQuery. Следовательно надо использовать TADOQuery.
По идеи эти компоненты одинаковы по свойствам и методам, различия только в принципе подключения к БД.
Поменяв в DataModule соответствующие компоненты (TQuery на TADOQuery), появились следующие проблемы:
Первая — в коде:
CODE |
DataModule1->ADOQuery1->Open();
DataModule1->ADOQuery1->First();
while (!DataModule1->ADOQuery1->Eof)
{
kom_nom->Items->Add();
kom_nom->Items->Item[i]->Caption=DataModule1->ADOQuery1->FieldByName("name_kom")->AsString;
DataModule1->ADOQuery1->Next();
}
DataModule1->ADOQuery1->Close();
|
среда выдает ошибку "Either BOF or EOF is True? or the current record has been deleted". После этого добавил перед
CODE |
DataModule1->ADOQuery1->Close();
|
следующее
CODE |
DataModule1->ADOQuery1->First();
|
вроде заработало. Проверял, после перехода на последнюю запись свойства TADOQuery Eof=true и Bof=false. Запрос обычный на возвращение данных. Почему такое происходит?!
Вторая — все в том же коде, только при условии, что запрос ничего не возвращает, пустой курсор. Та же ошибка, Eof=true и Bof=true,
CODE |
DataModule1->ADOQuery1->First(); — не помогает.
|
Пожалуйста, кто-нибудь объясните в чем проблема! (если можно то без кардинальных изменений, а то много пререписывать придется).
Заранее благодарен !!! |
|
Guest |
Отправлено: 11.01.2006, 13:25 |
|
Не зарегистрирован
|
QUOTE |
Either BOF or EOF is True
|
Очень напоминет неустановленность обновления для 5-го BCB.
Update
|
|
НовыйЧок |
Отправлено: 11.01.2006, 14:42 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 7
|
Спасибо! Вечером посмотрю. |
|
|