线程操作数据库的问题 ( 积分: 50 )

  • 主题发起人 主题发起人 wanghaiou
  • 开始时间 开始时间
W

wanghaiou

Unregistered / Unconfirmed
GUEST, unregistred user!
我在主窗体里面做了一个线程想用它来循环监控数据库中的一个表的数据变化情况,
可是一执行这个线程就报错,‘尚未调用CoInitialize。’
线程定义和线程体如下
TQueryMessageThread = CLASS(TThread)
private
ThreadBz:Bool;
//线程运行标志
protected
procedure execute;
override;
end;

procedure TQueryMessageThread.execute();
begin
While 1=1 do
begin
sleep(10);
DataModule1.ADOQuery1.Close;
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.Add('select * from 发送信息列表 where 处理标志=0');
DataModule1.ADOQuery1.Open;
end;
 
我在主窗体里面做了一个线程想用它来循环监控数据库中的一个表的数据变化情况,
可是一执行这个线程就报错,‘尚未调用CoInitialize。’
线程定义和线程体如下
TQueryMessageThread = CLASS(TThread)
private
ThreadBz:Bool;
//线程运行标志
protected
procedure execute;
override;
end;

procedure TQueryMessageThread.execute();
begin
While 1=1 do
begin
sleep(10);
DataModule1.ADOQuery1.Close;
DataModule1.ADOQuery1.SQL.Clear;
DataModule1.ADOQuery1.SQL.Add('select * from 发送信息列表 where 处理标志=0');
DataModule1.ADOQuery1.Open;
end;
 
加上CoInitialize(NULL);
 
CoInitialize 需要引用哪个单元呀???
 
uses ActiveX
线程开始加上coinitialize(nil);
线程结束加上CoUninitialize;
 
接受答案了.
 
后退
顶部