| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > ошибка |
| Автор: marvin 25.8.2004, 14:09 |
| void __fastcall TForm1::Button1Click(TObject *Sender) { int k; AnsiString question; AnsiString imgfile; bool haveimg; int ball; k=QuestionQuery->FieldByName("k")->AsInteger; ball=QuestionQuery->FieldByName("ball")->AsInteger; question=QuestionQuery->FieldByName("question")->AsString; haveimg=QuestionQuery->FieldByName("have_image")->AsBoolean; imgfile=QuestionQuery->FieldByName("image")->AsString; if(haveimg)Image1->Picture->LoadFromFile(imgfile); if(!QuestionQuery->Eof)QuestionQuery->Next(); AnswerQuery->Close(); AnswerQuery->SQL->Clear(); AnswerQuery->SQL->Add("select * from answers where k="+IntToStr(k)+";"); AnswerQuery->Open(); Memo1->Lines->Clear(); Memo1->Lines->Add(question); RadioGroup1->Items->Clear(); while(!AnswerQuery->Eof) {RadioGroup1->Items-> Add(AnswerQuery->FieldByName("answer")- >AsString); AnswerQuery->Next(); } При работе с базой данных Access через ADO вылазит ошибка 'Either BOF or EOF is True or the current record has been deleted. Requested operation requires a current record', хотя установлены MDAC 2.8 и патч BCB5EntUpdate1 для C++Builder. |
| Автор: marvin 25.8.2004, 14:10 |
| Пожалуйста, посоветуйте, если кто что знает. |
| Автор: Олег М 25.8.2004, 14:25 | ||
У тебя наверное пустой Recordset возвращает, посмотри количество записей. Попробуй запрос без where записать "select * from answers". |
| Автор: Guest 25.8.2004, 14:55 | ||
если записать просто select * from answers; то ошибка не исчезает, зато если закомментировать строки
то ошибки нет TADODataSet я не использую использую только TADOConnection, TDataset и TADOQuery. |
| Автор: Олег М 25.8.2004, 15:08 | ||
Понятно, что нет. Ты здесь пытаешься обращаться к полям текущей записи, а у тебя её нет. Попробуй вначале MoveFirst сделать, или как там в борланде переити на первую запись. У тебя таблица answers точно не пустая? |
| Автор: marvin 25.8.2004, 16:45 |
| AnswerQuery->First(); - без толку. если закомментировать те строки, то в сетку TDBGrid выводит без проблем=> все эти нужные записи существуют(результат запроса не пустой), НО при закрытии программы опять та же ошибка. Кажется тут причины где-то глубоко в Builder'е. |
| Автор: Олег М 25.8.2004, 16:49 |
| А на какой конкретно строке вылетает? |
| Автор: Олег М 25.8.2004, 17:12 | ||
Так там исходники должны быть открой да посмотри |
| Автор: Borisff2003 26.8.2004, 05:17 |
| А какой тип у столбца answer? |
| Автор: marvin 26.8.2004, 12:20 |
| "текстовый", как и столбец question у QuestionQuery. |
| Автор: Borisff2003 26.8.2004, 12:50 |
| Странно, У меня ADOQuery1->FieldByName("abbrev")->AsString; проходит даже при пустом запросе |