标题:[求助][讨论][高人赐教]在ADO中如何实现多线程查询
只看楼主
mazheng75
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2004-5-11
 问题点数:0 回复次数:2 
[求助][讨论][高人赐教]在ADO中如何实现多线程查询

搜索更多相关主题的帖子: ADO 线程 高人 
2004-05-26 16:58
hanpengshan_00
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2004-7-16
得分:0 

type file://查询线程定义 TMultiQuery = class(TThread) private ADOQry :TADOQuery; fDatasource :TDataSource; { Private declarations } protected procedure Execute; override; procedure ConnectDataSource; public constructor create(qry :TADOQuery;datasource :TDataSource);virtual; end;

var

t1,t2,t3,t4 :TMultiQuery;

procedure TForm1.btnThreadClick(Sender: TObject); begin t1 :=TMultiQuery.create(adoquery1,datasource1); t2 :=TMultiQuery.create(adoquery2,datasource2); t3 :=TMultiQuery.create(adoquery3,datasource3); t4 :=TMultiQuery.create(adoquery4,datasource4

end;

constructor TMultiQuery.create(qry :TADOQuery;datasource :TDataSource); begin ADOQry :=qry; fDataSource :=datasource; inherited create(true); file://挂起线程 freeonterminate :=false; end;

procedure TMultiQuery.ConnectDataSource; begin FDataSource.DataSet := ADOQry; file://vcl是非安全线程代码,执行完后要再次连接dataset_____ end;

procedure TMultiQuery.Execute; begin ADOQry.Open; Synchronize(ConnectDataSource); end;

procedure TForm1.btnStartStopClick(Sender: TObject); begin if t1.Suspended then t1.Resume; if t2.Suspended then t2.Resume; if t3.Suspended then t3.Resume; if t4.Suspended then t4.Resume; end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin t4.Terminate; t4.Destroy; t3.Terminate; t3.Destroy; t2.Terminate; t2.Destroy; t1.Terminate; t1.Destroy; end;


2004-07-27 13:03
hanpengshan_00
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2004-7-16
得分:0 

窗体和线程单元在一起,四个adoquery,datasource,dbgrid,一个adoconnection,

设置好属性


2004-07-27 13:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-1740-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.271422 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved