如何使用线程进行数据库查询(使用ADO控件)? 请给出具体的代码,多谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 创建TThread 对象,在此对象中创建ADO,对数据进行查询。在工程的主进程中启动刚才创建的进程。为什么一定要别人给出代码呢?只是为了完成任务? 一般情况下,在代码中用保护方式。使用TCriticalSession,dd:TCriticalSession;begin dd:=TCriticalSession.create; dd.Acquire; .............//your code for database dd.release;end; to xdf_hubei(残月):因为这样可以加快学习的速度 TQThread = class(TThread) private { Private declarations } MyQuery:TADOQuery; protected procedure Execute; override; published Constructor Create(Query:TADOQuery); destructor Destroy;override; end;Constructor TQThread.Create(Query:TADOQuery);begin FreeOnTerminate:=True; MyQuery:=Query; inherited Create(false);end;procedure TQThread.Execute;begin MyQuery.SQL.Clear; MyQuery.SQL.Add... .... MyQuery.Open;end; 在主线程的按钮按下事件中,加入如下代码:DataSource1.DataSet:=adoQuery1; NewThread:=TDLThread.Create(adoQuery1); EOleException: 不能设置 comm 状态, 可能有一个或多个无效的通讯参数。 sql奇怪问题,请高手帮忙 ﹐在线等 着急!!怎样在delphi中实现例如2004021201这样各式的序号, 编译的时候,这个提示是什么意思啊? 在问个简单的问题:Delphi中引号的问题 用SQL語句怎樣刪除記錄? 本人打算买显示器, 各位推荐一下!! 通过串口取硬件数据,谁知道如何做? 我想遍历TreeView中一个父节点下的所有子节点,应该怎样实现? 菜鸟又有问题了,还是关于注册表的,请多指点。 寻找第三方控件 請教,如何處理圖片?
在工程的主进程中启动刚才创建的进程。
为什么一定要别人给出代码呢?只是为了完成任务?
dd:TCriticalSession;
begin
dd:=TCriticalSession.create;
dd.Acquire;
.............//your code for database
dd.release;
end;
private
{ Private declarations }
MyQuery:TADOQuery;
protected
procedure Execute; override;
published
Constructor Create(Query:TADOQuery);
destructor Destroy;override;
end;Constructor TQThread.Create(Query:TADOQuery);
begin
FreeOnTerminate:=True;
MyQuery:=Query;
inherited Create(false);
end;procedure TQThread.Execute;
begin
MyQuery.SQL.Clear;
MyQuery.SQL.Add...
....
MyQuery.Open;
end;
DataSource1.DataSet:=adoQuery1;
NewThread:=TDLThread.Create(adoQuery1);