首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

在线程中通过ADO对数据库进行操作时,出现异常,提出为:在异步运行时,操作不能被执行

2012-03-07 
在线程中通过ADO对数据库进行操作时,出现错误,提出为:在异步运行时,操作不能被执行在程序中使用了多个线程

在线程中通过ADO对数据库进行操作时,出现错误,提出为:在异步运行时,操作不能被执行
在程序中使用了多个线程对数据库进行读写操作
其中

procedure TA.Execute
begin
  while true do
  begin
  if Termiate then break;
  .....//时间判断操作
  .....//时间获取操作
  DoingScan1; //执行过程
  .......
  .......
  .....

  end;
end;

procedure TA.DongScan1;
begin
  while SencondsBetween(T1,Now)<=MaxC Do //T1,MaxC均为变量
  begin
  ......//过程1,计算
  ......//过程2,判断
  ......//数据库读写操作
   
  end;
end;
但是在运行线程时提示:在异步运行时,操作不能被执行
在程序中ADOQuery或ADOTable都是通过ADOConnection连接到Oracle数据库的

[解决办法]
程序中ADOQuery或ADOTable都通过ADOConnection连接到Oracle数据库,但是他们的属性初始的时候是否已经为链接状态? 比如adoquery的active属性是否为true了??

[解决办法]
建立多个ADOConnection,让每个线程独占一个ADOConnection
或者将ADOConnection建立在线程中
[解决办法]
用互斥

http://topic.csdn.net/u/20070809/10/ac1142ed-7616-4981-8e8c-ed72ebf5f066.html
[解决办法]
每个线程整一个adoconnection
[解决办法]
用ODAC组件

热点排行