Danil |
Отправлено: 08.08.2003, 14:44 |
|
Не зарегистрирован
|
Граждане хелп! Ниче не погу понять.
Делаю выборку с помощью компонента ADOQuery .и если выборка пустая т.е. нет записей удовлетворяющих селекту то потом при ADOQuery->Close() вылетает ошибка "Either BOF or EOF if True ,or current record has been deleted" При этом Close срабатывает ,но потом при изменениии запроса и попытке его выполнить вылетает Access Violation.
Что за беда?
Вот примерный код:
From1 = FormatDateTime("yyyy-mm-dd",DateTimePicker1->DateTime);
From1 = From1 + " " + FormatDateTime( "hh:nn:ss", DateTimePicker3->DateTime);
To1 = FormatDateTime("yyyy-mm-dd",DateTimePicker2->DateTime);
To1 = To1 + " " + FormatDateTime("hh:nn:ss",DateTimePicker4->DateTime);
AnsiString SelSel="SELECT [Time],[Object].[ReportName],[Object.State] FROM [hist.OBJECT STATE],[OBJECT] WHERE ([Time]> CONVERT(DATETIME, '" + From1 + "', 102) AND [Time] < CONVERT(DATETIME, '" + To1 + "', 102)) AND ([Object].[SelectionName]=[Object.Name]) AND ([Object.Name]='" + SelectS->Strings[SelItem[0]] + "'";
for(int i = 1;i < Col;i++)
{
SelSel=SelSel + "OR [Object.Name]='"+SelectS->Strings[SelItem[i]] + "'";
}
SelSel=SelSel + ")";
QueryObjState->SQL->Text = SelSel;
try
{
if(QueryObjState->Active == false)
{QueryObjState->Open();}
QueryObjState->ExecSQL();
}
catch(...)
{
}
try {
QueryObjState->First();
}
catch(...)
{
}
ExcelInit(1);
AllNumRec = QueryObjState->RecordCount;
while(!QueryObjState->Eof)
{
toExcelCell(i,1,String(QueryObjState->Fields->Fields[0]->AsString));
toExcelCell(i,2,String(QueryObjState->Fields->Fields[1]->AsString));
toExcelCell(i,3,String(QueryObjState->Fields->Fields[2]->AsString));
QueryObjState->Next();
i++;
}
if(!App.IsEmpty())App.OlePropertySet("Visible",true);
Sh.Clear();
App.Clear();
QueryObjState->First();
QueryObjState->Close();
} |
|
Guest |
Отправлено: 08.08.2003, 16:26 |
|
Не зарегистрирован
|
Это известный баг. Вам нужно скачать патч для Builder |
|
|