远程有两个字段结构都相同的MSSQL数据库192.168.0.2与192.168.0.3 数据库名:DB
我想用ADOQuery1与ADOconnection1连接 192.168.0.2
想用ADOQuery2与ADOconnection2连接 192.168.0.3
都一样执行 select Name from DB.dbo.ALLName where id='2' 并把它们 memo1.lines.add(); 我想创个两个线程来分别针对这两个数据库来select...并把它们 memo1.lines.add
大家能不能提供个模式或者思路,代码更好?
我想用ADOQuery1与ADOconnection1连接 192.168.0.2
想用ADOQuery2与ADOconnection2连接 192.168.0.3
都一样执行 select Name from DB.dbo.ALLName where id='2' 并把它们 memo1.lines.add(); 我想创个两个线程来分别针对这两个数据库来select...并把它们 memo1.lines.add
大家能不能提供个模式或者思路,代码更好?
解决方案 »
- 某进程被隐藏了,我如何查是否被隐藏了。
- 发往国外的短信实现
- 请教高手,如何监测到数据库中是哪条记录被修改了.
- Socket通讯中对接收到的数据有时处理成功有时失败,再不解决就下岗了,高手救命呀!!!
- 如何在QUERY控件的SQL语句中使用数据库名作为参数?及将一个数据库中的所有内容COPY到另一个数据库!
- 在DELPHI中如何设置EDIT中内容随时间两小时改变一次?
- TQuery.RecNo第一和最后一条为(-1),而不是1和Recordcount.
- win98 和win2000的共享问题?
- 100分求助,有谁知道哪里有比较齐全的控件,例如INFOPOWER,REPORTBUILDER等
- 关于COM的问题!请高手帮忙!
- delphi中怎么选择文件夹
- 推荐关于DELPHI的两篇文章: 有兴趣的朋友来看一下.
unit QueryThreads;interfaceuses
Classes, ADODB, StdCtrls;type
TQueryThread = class(TThread)
constructor Create(CreateSuspended: Boolean);
destructor Destroy(); override;
public
AdoQuery: TADOQuery;
PMemo: ^TMemo;
protected
procedure Execute; override;
private
procedure WriteToMemo;
end;implementation{ TQueryThread }constructor TQueryThread.Create(CreateSuspended: Boolean);
begin
AdoQuery := TADOQuery.Create(nil);
inherited;
end;destructor TQueryThread.Destroy;
begin
AdoQuery.Free;
inherited;
end;procedure TQueryThread.Execute;
begin
FreeOnTerminate := True;
try
AdoQuery.Active := True;
Synchronize(WriteToMemo);
except
end;
end;procedure TQueryThread.WriteToMemo;
begin
AdoQuery.First;
while not AdoQuery.Eof do
begin
PMemo.Lines.Add(AdoQuery.FieldValues['Name']); // 根据你的实际情况修改。
AdoQuery.Next;
end;
end;end.
主窗体单元文件
.
.
.implementationuses
QueryThreads;var
QueryThread: TQueryThread;procedure TForm1.Button1Click(Sender: TObject); // 点击按钮后,启动查询线程,查询时不影响窗体操作。
begin
QueryThread := TQueryThread.Create(True);
// 连接字串改成你的,这是我测试时用的。
QueryThread.AdoQuery.ConnectionString := 'Provider=MSDASQL.1;Password=pass;' +
'Persist Security Info=True;User ID=admin;Mode=Read;Extended Properties=' +
'"DBQ=C:\Users.mdb;DefaultDir=C:\;Driver={Microsoft Access Driver (*.mdb)};' +
'DriverId=25;FIL=MS Access;FILEDSN=C:\Users.dsn;MaxBufferSize=2048;MaxScanRows=8;' +
'PageTimeout=5;PWD=pass;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"';
// 查询SQL改成你的。
QueryThread.AdoQuery.SQL.Text := 'select * from users';
// 传递主窗体上的Memo给线程,便于向其中添加数据。你也可以改成由主窗体去读取线程的数据。
QueryThread.PMemo := @Memo1;
// 启动线程
QueryThread.Resume;
end;.
.
.