TADOQUERY UPDATE 报: 连接占线导致另一个命令(20分)

  • 主题发起人 主题发起人 clark_x
  • 开始时间 开始时间
C

clark_x

Unregistered / Unconfirmed
GUEST, unregistred user!
在子线程中,通过在线程创建一个TADOQUERY对象,并共享主线程的连接对象(是不是这里的问题) 在线程运行时候,有的UPDATE语句抱 连接占线导致另一个命令
 
老问题了。
ADO是COM对象,在线程中使用COM对象的话,需要CoInitialize进行COM环境的初始化。
uses ActiveX;
procedure YouThread.Execute;
begin
CoInitialize(nil);
try
// ADO Code...
finally
UnCoInitialize;
end;
end;
 
to: clark_x
呵呵~,我正想提这个问题,谢谢~
to: copy_paste
没有用的,我也碰到这样的问题,机率是500-1000次会碰到一次,也是在多线程里写的。正郁闷着呢,不知道有那位高手能帮帮忙啊
 
那有可能是你多线程中共同使用一个Connection,访问冲突了。
要么在线程中new一个ADOConnection,要么指定那个ADODataSet的ConnectionString属性,用了之后,线程与主线程的Connection是不同的连接,这样就没问题了。
 
各位说的都有理 耽误大家时间了
这个问题我查了一下历史记录 已经解决了
我的办法是在线程内再复制ADOCONNECT
 
多人接受答案了。
 
后退
顶部