unit Mythread;interfaceuses
Windows,shlobj,Forms, Classes, dialogs,SysUtils, ADODB, DBXpress, DB, SqlExpr, FMTBcd,Definition;type
Ttransfer = class(TThread)
private
padoconnection : TAdoConnection;
padoquery : TADOQuery;
psqlconnection :Tsqlconnection;
psqlquery : Tsqlquery;
psqlupdate : Tsqlquery; protected
procedure Execute;override;
public
constructor Create;
destructor Destroy; override;
end;var
mytransfer : Ttransfer;
implementationconstructor Ttransfer.Create;
begin
padoconnection := TAdoConnection.Create(nil);
padoconnection.ConnectionString := 'Provider=MSDAORA.1;Password='+ora_pwd+';User ID='+ora_user+';Data Source='+ora_db+';Persist Security Info=True';
padoconnection.LoginPrompt := false;
padoquery := TADOQuery.Create(nil);
padoquery.Connection := padoconnection;
psqlconnection := Tsqlconnection.Create(nil);
psqlconnection.ConnectionName :='MySQLConnection';
psqlconnection.DriverName :='MySQL';
psqlconnection.GetDriverFunc :='getSQLDriverMYSQL';
psqlconnection.LibraryName :='dbexpmysql.dll';
psqlconnection.VendorLib := 'libmysql.dll';
psqlconnection.LoginPrompt := false; psqlconnection.Params.Values['DriverName'] := 'MySQL' ;
psqlconnection.Params.Values['hostname'] := mysql_host ;
psqlconnection.Params.Values['user_name'] := mysql_user ;
psqlconnection.Params.Values['database'] := mysql_db ;
psqlconnection.Params.Values['password'] := mysql_pwd ;
psqlconnection.Params.Values['Blobsize'] := '-1' ;
psqlconnection.Params.Values['ErrorResourceFile'] := '' ;
psqlconnection.Params.Values['Localecode'] := '0000' ;
// psqlconnection.Open; psqlquery := Tsqlquery.Create(nil);
psqlquery.SQLConnection := psqlconnection;
psqlupdate := Tsqlquery.Create(nil);
psqlupdate.SQLConnection := psqlconnection;
FreeOnTerminate := false;
inherited Create(false); //false 立刻运行
Priority := tpLowest; //线程等级
end;destructor Ttransfer.Destroy;
begin
padoquery.Close;
padoquery.Free;
padoconnection.Free;
psqlquery.Close;
psqlupdate.Close;
psqlquery.Free;
psqlupdate.Free;
psqlconnection.Free; inherited;
end;procedure Ttransfer.Execute;procedure uploadkq ; // 线程的主要任务
var
rowcount,i,num: integer;
tm,rqsj,id ,cybz : string;
begin
num := 0; with psqlquery do
begin sql.Clear;
sql.Add('select * from kq where flag=0');
open;
rowcount := RecordCount;
First; for i:= 1 to rowcount do
begin
id := FieldByName('id').AsString;
tm := FieldByName('tm').AsString;
rqsj := FieldByName('rqsj').AsString;
cybz := FieldByName('cybz').AsString;
with padoquery do
begin sql.Clear;
sql.Add('insert into kq(tm,rqsj,cybz)');
sql.Add(' values('''+tm+''','''+rqsj+''','''+cybz+''')');
Execsql;
inc(num);
end; with psqlupdate do
begin sql.Clear;
sql.Add('update kq set flag=''1'' where id='+id); Execsql;
end;
Next;
end;
end; // scnum := num ;end;
begin
while not Terminated do
begin
uploadkq; // 线程的主要任务
Sleep(2000);
end;
end;
initialization
begin
//CoInitialize(nil);end;end.
Windows,shlobj,Forms, Classes, dialogs,SysUtils, ADODB, DBXpress, DB, SqlExpr, FMTBcd,Definition;type
Ttransfer = class(TThread)
private
padoconnection : TAdoConnection;
padoquery : TADOQuery;
psqlconnection :Tsqlconnection;
psqlquery : Tsqlquery;
psqlupdate : Tsqlquery; protected
procedure Execute;override;
public
constructor Create;
destructor Destroy; override;
end;var
mytransfer : Ttransfer;
implementationconstructor Ttransfer.Create;
begin
padoconnection := TAdoConnection.Create(nil);
padoconnection.ConnectionString := 'Provider=MSDAORA.1;Password='+ora_pwd+';User ID='+ora_user+';Data Source='+ora_db+';Persist Security Info=True';
padoconnection.LoginPrompt := false;
padoquery := TADOQuery.Create(nil);
padoquery.Connection := padoconnection;
psqlconnection := Tsqlconnection.Create(nil);
psqlconnection.ConnectionName :='MySQLConnection';
psqlconnection.DriverName :='MySQL';
psqlconnection.GetDriverFunc :='getSQLDriverMYSQL';
psqlconnection.LibraryName :='dbexpmysql.dll';
psqlconnection.VendorLib := 'libmysql.dll';
psqlconnection.LoginPrompt := false; psqlconnection.Params.Values['DriverName'] := 'MySQL' ;
psqlconnection.Params.Values['hostname'] := mysql_host ;
psqlconnection.Params.Values['user_name'] := mysql_user ;
psqlconnection.Params.Values['database'] := mysql_db ;
psqlconnection.Params.Values['password'] := mysql_pwd ;
psqlconnection.Params.Values['Blobsize'] := '-1' ;
psqlconnection.Params.Values['ErrorResourceFile'] := '' ;
psqlconnection.Params.Values['Localecode'] := '0000' ;
// psqlconnection.Open; psqlquery := Tsqlquery.Create(nil);
psqlquery.SQLConnection := psqlconnection;
psqlupdate := Tsqlquery.Create(nil);
psqlupdate.SQLConnection := psqlconnection;
FreeOnTerminate := false;
inherited Create(false); //false 立刻运行
Priority := tpLowest; //线程等级
end;destructor Ttransfer.Destroy;
begin
padoquery.Close;
padoquery.Free;
padoconnection.Free;
psqlquery.Close;
psqlupdate.Close;
psqlquery.Free;
psqlupdate.Free;
psqlconnection.Free; inherited;
end;procedure Ttransfer.Execute;procedure uploadkq ; // 线程的主要任务
var
rowcount,i,num: integer;
tm,rqsj,id ,cybz : string;
begin
num := 0; with psqlquery do
begin sql.Clear;
sql.Add('select * from kq where flag=0');
open;
rowcount := RecordCount;
First; for i:= 1 to rowcount do
begin
id := FieldByName('id').AsString;
tm := FieldByName('tm').AsString;
rqsj := FieldByName('rqsj').AsString;
cybz := FieldByName('cybz').AsString;
with padoquery do
begin sql.Clear;
sql.Add('insert into kq(tm,rqsj,cybz)');
sql.Add(' values('''+tm+''','''+rqsj+''','''+cybz+''')');
Execsql;
inc(num);
end; with psqlupdate do
begin sql.Clear;
sql.Add('update kq set flag=''1'' where id='+id); Execsql;
end;
Next;
end;
end; // scnum := num ;end;
begin
while not Terminated do
begin
uploadkq; // 线程的主要任务
Sleep(2000);
end;
end;
initialization
begin
//CoInitialize(nil);end;end.
解决方案 »
- StringGrid的事件问题
- Indy10中执行TIdUDPClient.ReceiveBuffer出现Range Check Error问题
- 招人啦,又招人啦,哈哈,群号:26929954
- 关于窗体ShowModal的问题
- 如何获取EXE或DLL文件的内部名称文件属性
- [SQLSERVER]Delphi中存储数据到SQLSERVER如何保证浮点数正确?
- 现在找工?!大家谈谈自己的找工经验?! 另:广州那边的工作好找么?!
- 如何找到修改过得数据
- 窗体最小化问题
- 用你的智慧,创造奇迹
- 有关DLL里面的(高手请进)
- InternetSetOption(hSession, Internet_OPTION_CONNECT_TIMEOUT, @TimeOut, 4);
coinitialize就是接口整理前的一项准备工作。
调用Application.Initialize;
就可以了,这里会去调用各个单元的初始化代码。
没看楼主的代码,说错了别见怪。
procedure MyDBThread.Execute;
begin
CoInitialize( nil );
//你的代码
CoUnInitialize;
end;
2.在UESE里面添加ActiveX
ADO必须这样做