📄 dothread.pas
字号:
unit DoThread;
interface
uses
Windows,Forms,Messages, SysUtils, Classes, Graphics, Controls,StdCtrls,
SyncObjs,Dialogs,Variants,DateUtils,ActiveX,DTS;
type
TOnEndEvent = procedure(Actiontype:integer;filename: string;Path:String;item:integer) of object;
TDoThread = class(TThread)
private
FResult:boolean;
FMsg:string;
FOnEnd: TOnEndEvent;
protected
procedure Execute; override; { 执行线程的方法 }
public
constructor Create(Owner : TComponent); virtual;{ 线程构造器 }
Destructor Destroy; override;
property OnEnd: TOnEndEvent read FOnEnd write FOnEnd;
property Msg: string read FMsg write FMsg;
property Result: boolean read FResult write FResult;
end;
implementation
procedure TDoThread.Execute; { 执行线程的方法 }
var a:TDTSUnit;
Datafile,SQLserverIP,DBname,Username,Password,M,ErrOutPutFile,msg:string;
begin
ActiveX.CoInitialize(nil);
FResult:=false;
Datafile:='D:\DTS2000\DTS6\depart.csv';
SQLserverIP:='127.0.01';
DBname:='JYT';
Username:='sa';
Password:='sa';
ErrOutPutFile:='D:\DTS2000\DTS6\depart.log';
a:=TDTSUnit.Create;
a.InitializeFromText(Datafile);
a.InitializeToSQL(SQLserverIP,DBname,Username,Password,'AccountTbdepart');
if a.Execute(ErrOutPutFile,'D:\DTS2000\DTS6\InsertDepart.bas',M) then
FMsg:='ok'
else
FMsg:= M;
a.Free;
if Assigned(FOnEnd) then
FOnEnd(0, FMsg,'',0);
FResult:=true;
ActiveX.CoUnInitialize;//必须使用
end;
constructor TDoThread.Create(Owner : TComponent);
begin
inherited Create(true);
Priority := tpNormal;
FreeOnTerminate := false;
FResult:=false;
end;
destructor TDoThread.Destroy;
begin
inherited destroy;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -