EOleException问题,搞了很久都没有找出原因,各位高手帮忙!
在C++builder下我做了一个线程轮询数据库,取出结果集对各行进行操作,然后删除,继续取数据库结果集。
代码如下:
__fastcall TISMGRecv(bool CreateSuspended)
: TThread(CreateSuspended)
{
FreeOnTerminate = false;
m_pQuery = new TADOQuery(NULL);
m_pQuery ->ConnectionString = "Provider=MSDAORA.1;Password=rnms;User ID=RNMS;Data Source=oracledb;Persist Security Info=True";
m_pQuery ->SQL->Text = "select * from receive_sms";
}
virtual __fastcall ~TISMGRecv()
{
delete m_pQuery ;
}
void __fastcall TISMGRecv::Execute()
{
while(!Terminated)
{
m_pQuery ->Open();
m_pQuery ->First();
while (!m_pQuery ->Eof)
{
//对各行记录的操作....
m_pQuery ->Delete();
}
m_pQuery ->Close();
Sleep(1000);
}
}
Debugger Exception Notification:
project debug.exe raised, exception class EOleException with message'应用程序在当前操作中使用了错误类型的值。'Process stopped。Use Step or Run to continue。
测试的时候有时候没有问题,有时候又有问题,跟踪的话,出错的地方总是不能确定。郁闷了~