在idtcpserver的OnExecute事件中根据客户端传来的指令,
使用一个全局变量ADOQuery控件从数据库中获取数据返回给客户端。在一开始的时候,说没有调用Coinitialize(nil)所以不成功,然后加上之后可以成功了。
但是由于sql语句执行时间很长,在一个客户端执行的期间,另一个客户端又要求执行这个指令,
此时就返回错误:“在异步运行时,操作不能被执行。”这样就只能同一时间只能处理一个客户端的需求了。应该怎样解决呢?谢谢
使用一个全局变量ADOQuery控件从数据库中获取数据返回给客户端。在一开始的时候,说没有调用Coinitialize(nil)所以不成功,然后加上之后可以成功了。
但是由于sql语句执行时间很长,在一个客户端执行的期间,另一个客户端又要求执行这个指令,
此时就返回错误:“在异步运行时,操作不能被执行。”这样就只能同一时间只能处理一个客户端的需求了。应该怎样解决呢?谢谢
解决方案 »
- 一个关于ShellExecute的问题!
- 讨论贴:你研究外挂技术的目的是什么?
- 急需InfoPower 4000的下载地址和密码!
- 抓取屏幕问题??
- 请问DELPHI中有没有类似VFP中的宏代换命令(即&)?
- 求对TShellListView各Column排序方法。
- 那里有流行的delphi帮助制作软件?
- 我有成百个Access数据库,用Adoquery+dbgrid如何把所有符合条件的记录查出来并对数据操作?
- WebBrowser操作问题Seclect,找了几天也没有找到解决方法,所以来此求助!
- DELPHI中的BUG
- 请问一个Encodetime的问题,它可以显示毫秒吗?
- fr或rm主从报表的问题,急
http://www.indyproject.org/download/Files/Indy9.html
这个问题解决不了,我就只能空等了,无法做下去啊。help!!
~~~~~~~~~~~~~~~~~~~~楼主应该在线程运行时候,创建本线程自己的adoquery
var
ADOConnection: TADOConnection;
ADOQuery: TADOQuery;
begin
//
CoInitialize(nil); ADOConnection := TADOConnection.Create(Nil);
ADOConnection.ConnectionString := Connstr;
ADOConnection.Open; ADOQuery := TADOQuery.Create(Nil);
ADOQuery.Connection := ADOConnection;
ADOQuery.SQL.Text := '***';
ADOQuery.Open;
ADOQuery.Close;
//... FreeAndNil(ADOQuery);
FreeAndNil(ADOConnection); CoUnInitialize;
AThread.Connection.Disconnect;
end;