unitimport.pas

来自「通用人事管理系统:包括人事信息档案考勤管理培训管理」· PAS 代码 · 共 96 行

PAS
96
字号
unit UnitImport;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ADODB, DB, Buttons, StrUtils, ComObj, ComCtrls;

type
  TFrmImport = class(TForm)
    Label1: TLabel;
    EdtFileName: TEdit;
    OpenDialog1: TOpenDialog;
    Button3: TButton;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ProgressBar1: TProgressBar;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button3Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmImport: TFrmImport;

implementation

uses UnitDatabase;

{$R *.dfm}

procedure TFrmImport.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=caFree;
end;

procedure TFrmImport.Button3Click(Sender: TObject);
begin
  OpenDialog1.Filter:='Database files (*.mdb)|*.mdb';
  if OpenDialog1.Execute then
    EdtFileName.Text:=OpenDialog1.FileName;
end;

procedure TFrmImport.BitBtn1Click(Sender: TObject);
var
  i:Integer;
  ADOTRS1:TADOQuery;
begin
  if Trim(EdtFileName.Text)<>'' then begin
    ADOTRS1:=TADOQuery.Create(Self);
    ADOTRS1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+EdtFileName.Text+';Persist Security Info=False;Jet OLEDB:Database Password=19761227';
    ADOTRS1.SQL.Text:='select * from Employee';
    try
      ADOTRS1.Open;
    except
      raise Exception.Create('目标数据库无法打开。');
    end;
    DMMain.ADOQRS1.Close;
    DMMain.ADOQRS1.SQL.Text:='select * from Employee';
    DMMain.ADOQRS1.Open;
    ProgressBar1.Min:=0;
    ProgressBar1.Max:=DMMain.ADOQRS1.RecordCount;
    ProgressBar1.Position:=0;
    while not ADOTRS1.Eof do begin
      if DMMain.ADOQRS1.Locate('MTagNO',ADOTRS1.FieldByName('MTagNO').AsString,[loCaseInsensitive]) then begin
        DMMain.ADOQRS1.Edit;
      end else begin
        DMMain.ADOQRS1.Append;
      end;
      for i:=1 to DMMain.ADOQRS1.Fields.Count-1 do begin
        try
          DMMain.ADOQRS1.Fields[i].AsString:=ADOTRS1.FieldByName(DMMain.ADOQRS1.Fields[i].FieldName).AsString;
        except
        end;
      end;
      DMMain.ADOQRS1.Post;
      ProgressBar1.Position:=ProgressBar1.Position+1;
      ADOTRS1.Next;
    end;
    DMMain.ADOQRS1.Close;
    ADOTRS1.Close;
    ADOTRS1.Free;
    MessageBox(Handle,'数据已成功导入。   ','系统信息',0);
    FrmImport.Close;
  end else begin
    MessageBox(Handle,'请选取要导入的数据库。','系统警告',48);
    EdtFileName.SetFocus;
  end;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?