S
sunwork
Unregistered / Unconfirmed
GUEST, unregistred user!
我有个查询是用TADOQUERY的. ..在程序中动态指定SQL语句.
然后打开...
但是有可能查询的结果是空的..,我捕捉了这个错误以后,想把这个TADOQUERY关闭.但是无法关闭.
这样导致程序出错,"出现BOF或EOF有一个为真,或者当前记录已经删除,所需要的操作要求一个当前记录.",以后的查询就无法做,重新来也不可以.
怎么处理这个问题?
try
{
messagebox_form->Show();
messagebox_form->STMessage->Caption = " 正在打开个人信息表,请稍候...";
Application->ProcessMessages();
// ShebaoData->ADOQPerson_detail->Active=False;
ShebaoData->ADOQPerson_detail->Close();
ShebaoData->ADOQPerson_detail->SQL->Clear();
ShebaoData->ADOQPerson_detail->SQL->Add(SQL);
ShebaoData->ADOQPerson_detail->Open();
if (ShebaoData->ADOQPerson_detail->Eof == true)
{
messagebox_form->Close();
Application->MessageBox("没有找到任何记录.", "提示信息", MB_OK);
ShebaoData->ADOQPerson_detail->Close();
(执行上面CLOSE出现BOF或EOF有一个为真,或者当前记录已经删除,所需要的操作要求一个当前记录."的错误.)
}
}
catch( ... )
{
messagebox_form->Close();
Application->MessageBox("打开个人信息表失败.,没有找到任何记录.", "提示信息", MB_OK);
ShebaoData->ADOQPerson_detail->Close();
}
}
__finally
{
messagebox_form->Close();
}
然后打开...
但是有可能查询的结果是空的..,我捕捉了这个错误以后,想把这个TADOQUERY关闭.但是无法关闭.
这样导致程序出错,"出现BOF或EOF有一个为真,或者当前记录已经删除,所需要的操作要求一个当前记录.",以后的查询就无法做,重新来也不可以.
怎么处理这个问题?
try
{
messagebox_form->Show();
messagebox_form->STMessage->Caption = " 正在打开个人信息表,请稍候...";
Application->ProcessMessages();
// ShebaoData->ADOQPerson_detail->Active=False;
ShebaoData->ADOQPerson_detail->Close();
ShebaoData->ADOQPerson_detail->SQL->Clear();
ShebaoData->ADOQPerson_detail->SQL->Add(SQL);
ShebaoData->ADOQPerson_detail->Open();
if (ShebaoData->ADOQPerson_detail->Eof == true)
{
messagebox_form->Close();
Application->MessageBox("没有找到任何记录.", "提示信息", MB_OK);
ShebaoData->ADOQPerson_detail->Close();
(执行上面CLOSE出现BOF或EOF有一个为真,或者当前记录已经删除,所需要的操作要求一个当前记录."的错误.)
}
}
catch( ... )
{
messagebox_form->Close();
Application->MessageBox("打开个人信息表失败.,没有找到任何记录.", "提示信息", MB_OK);
ShebaoData->ADOQPerson_detail->Close();
}
}
__finally
{
messagebox_form->Close();
}