多线程查询
//==============================================================================
// 多线程查询 cxg 2008-09-26 14:29:42
//==============================================================================
unit uSelect;
interface
uses
sysUtils,ADODB,Classes;
type
TSelect = class(TThread)
private
FAdoConnection:TADOConnection;
FAdoquery:TADOQuery;
FSql:String;
protected
procedure Execute;override;
public
constructor create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string);
end;
implementation
{ Tselect }
constructor Tselect.create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string);
begin
inherited create(False);
FreeOnTerminate:=True;
FAdoConnection:=AdoConnection;
FAdoquery:=AdoQuery;
FSql:=Sql;
end;
procedure Tselect.Execute;
begin
with FAdoquery do
begin
Close;
SQL.Clear;
SQL.Add(fsql);
Open;
end;
end;
end.
1楼 schinar 2012-04-11 20:20发表 [回复] 代码中需要加入use activex;
exeute 过程中需要修改成
CoInitialize(nil);
with FAdoquery do
begin
Close;
SQL.Clear;
SQL.Add(fsql);
Open;
end;
CoUninitialize;代码中需要加入use activex;
exeute 过程中需要修改成
CoInitialize(nil);
with FAdoquery do
begin
Close;
SQL.Clear;
SQL.Add(fsql);
Open;
end;
CoUninitialize;
.
//==============================================================================
// 多线程查询 cxg 2008-09-26 14:29:42
//==============================================================================
unit uSelect;
interface
uses
sysUtils,ADODB,Classes;
type
TSelect = class(TThread)
private
FAdoConnection:TADOConnection;
FAdoquery:TADOQuery;
FSql:String;
protected
procedure Execute;override;
public
constructor create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string);
end;
implementation
{ Tselect }
constructor Tselect.create(AdoConnection:TADOConnection;AdoQuery:TADOQuery;Sql:string);
begin
inherited create(False);
FreeOnTerminate:=True;
FAdoConnection:=AdoConnection;
FAdoquery:=AdoQuery;
FSql:=Sql;
end;
procedure Tselect.Execute;
begin
with FAdoquery do
begin
Close;
SQL.Clear;
SQL.Add(fsql);
Open;
end;
end;
end.
1楼 schinar 2012-04-11 20:20发表 [回复] 代码中需要加入use activex;
exeute 过程中需要修改成
CoInitialize(nil);
with FAdoquery do
begin
Close;
SQL.Clear;
SQL.Add(fsql);
Open;
end;
CoUninitialize;代码中需要加入use activex;
exeute 过程中需要修改成
CoInitialize(nil);
with FAdoquery do
begin
Close;
SQL.Clear;
SQL.Add(fsql);
Open;
end;
CoUninitialize;
.
本文介绍了一种使用多线程进行数据库查询的方法,通过创建一个继承自TThread的TSelect类来实现并发查询,提高了查询效率。需要注意的是,在执行查询过程中要初始化COM库并确保其正确释放。
249

被折叠的 条评论
为什么被折叠?



