delphi线程
TypeTADOThread=class(TThread)procedureExecute(AdoConn:tadoconnection;Adoquery:Tadoque...
Type
TADOThread=class(TThread)
procedure Execute(AdoConn:tadoconnection;Adoquery:Tadoquery;SQLString:string);
destructor Destroy;
end;
implementation
{$R *.dfm}
procedure TADOThread.Execute(AdoConn:tadoconnection;Adoquery:Tadoquery;SQLString:string);
begin
CoInitialize(nil);
adoquery.Connection:=adoconn;
adoconn.LoginPrompt:=false;
adoquery.SQL.Text:=sqlstring;
if pos('select',sqlstring)=0 then
adoquery.ExecSQL
else
adoquery.Open;
end;
destructor TADOThread.Destroy;
begin
couninitialize;
end;
请问这个线程有什么问题,测试过可以通过,但并不能体现线程的优点。
softwb说我这里只有一个主线程,因为是刚学,,而且还是自学。所以有很多不懂的地方。
我主要是想通过ADO实现多线程查询数据,解决因为数据量太大而做一个查询要等待过长的时间。 展开
TADOThread=class(TThread)
procedure Execute(AdoConn:tadoconnection;Adoquery:Tadoquery;SQLString:string);
destructor Destroy;
end;
implementation
{$R *.dfm}
procedure TADOThread.Execute(AdoConn:tadoconnection;Adoquery:Tadoquery;SQLString:string);
begin
CoInitialize(nil);
adoquery.Connection:=adoconn;
adoconn.LoginPrompt:=false;
adoquery.SQL.Text:=sqlstring;
if pos('select',sqlstring)=0 then
adoquery.ExecSQL
else
adoquery.Open;
end;
destructor TADOThread.Destroy;
begin
couninitialize;
end;
请问这个线程有什么问题,测试过可以通过,但并不能体现线程的优点。
softwb说我这里只有一个主线程,因为是刚学,,而且还是自学。所以有很多不懂的地方。
我主要是想通过ADO实现多线程查询数据,解决因为数据量太大而做一个查询要等待过长的时间。 展开
展开全部
你使用线程类有问题:
procedure Execute(AdoConn:tadoconnection;Adoquery:Tadoquery;SQLString:string);
Execute不用参数,直接在后边override;就可以了.是覆盖方法
想动态生成ADO的话.可以构造一个函数.在Create构造函数中动态创建
在Destroy析构函数中释放ADO
在Execute中是执行的代码,中间如果是操作VCL或全局变量的话.要注意同步!
还有.1楼说的有问题.
你使用的是线程类创建,是一个线程.
跟主线程无关.!在线程中使用synchronize,才会将线程加入到主线程中运行.
在补充一下
你可能将ADO组件加入到了窗体中,这样,把ADO组件加入到线程的构造函数中就
可以在线程中直接使用了!
百度一下.线程类使用方法,了解系统线程与进程的结构就明白了!
再补充一点"分太少了.哎~~"
procedure Execute(AdoConn:tadoconnection;Adoquery:Tadoquery;SQLString:string);
Execute不用参数,直接在后边override;就可以了.是覆盖方法
想动态生成ADO的话.可以构造一个函数.在Create构造函数中动态创建
在Destroy析构函数中释放ADO
在Execute中是执行的代码,中间如果是操作VCL或全局变量的话.要注意同步!
还有.1楼说的有问题.
你使用的是线程类创建,是一个线程.
跟主线程无关.!在线程中使用synchronize,才会将线程加入到主线程中运行.
在补充一下
你可能将ADO组件加入到了窗体中,这样,把ADO组件加入到线程的构造函数中就
可以在线程中直接使用了!
百度一下.线程类使用方法,了解系统线程与进程的结构就明白了!
再补充一点"分太少了.哎~~"
展开全部
你要先提出问题,而不是我们帮你找问题。
线程是很有用的,比较调用一个外部程序,但想实现把外部程序关闭后才允许操作主窗口,这时用线程很容易实现这种效果。
所以一切是看你想要解决什么问题,而不是盲目使用。
线程是很有用的,比较调用一个外部程序,但想实现把外部程序关闭后才允许操作主窗口,这时用线程很容易实现这种效果。
所以一切是看你想要解决什么问题,而不是盲目使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线程优点是多线程一起运行就是优点
比如一个线程执行初始化程序,另一个线程计算用户数,再另一个线程又做其它事。你就一个主线程当然看不出优点
比如一个线程执行初始化程序,另一个线程计算用户数,再另一个线程又做其它事。你就一个主线程当然看不出优点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询