数据库互导

1.前一段去兰州出差了,所以有些问题没法及时回答,抱歉!
2.明天去泰港澳游了,高兴,发一段代码上来供大家参考!
3.以前测试过,大部分可以用,但也不敢担保一定可以正常运行,我现在也没有环境重新测试,只好你们自已试试了,有些参数自已要改的,我就不写了,有什么问题等半个月后我再来看看!

[FRM]
object Form1: TForm1
  Left = 194
  Top = 126
  Width = 544
  Height = 375
  Caption = '异构数据库数据互导'
  Color = clBtnFace
  Font.Charset = GB2312_CHARSET
  Font.Color = clWindowText
  Font.Height = -12
  Font.Name = '宋体'
  Font.Style = []
  OldCreateOrder = False
  OnCloseQuery = FormCloseQuery
  PixelsPerInch = 96
  TextHeight = 12
  object labTime: TLabel
    Left = 48
    Top = 312
    Width = 6
    Height = 12
  end
  object GroupBox1: TGroupBox
    Left = 8
    Top = 8
    Width = 220
    Height = 153
    Caption = ' Access '
    TabOrder = 0
    object Button1: TButton
      Left = 15
      Top = 23
      Width = 90
      Height = 25
      Caption = 'Access->TXT'
      TabOrder = 0
      OnClick = Button1Click
    end
    object Button3: TButton
      Left = 15
      Top = 55
      Width = 90
      Height = 25
      Caption = 'Access->DBF'
      TabOrder = 1
      OnClick = Button3Click
    end
    object Button4: TButton
      Left = 15
      Top = 120
      Width = 90
      Height = 25
      Caption = 'Access->Access'
      TabOrder = 3
      OnClick = Button4Click
    end
    object Button2: TButton
      Left = 112
      Top = 23
      Width = 90
      Height = 25
      Caption = 'TXT->Access'
      TabOrder = 4
      OnClick = Button2Click
    end
    object Button5: TButton
      Left = 112
      Top = 55
      Width = 90
      Height = 25
      Caption = 'DBF->Access'
      TabOrder = 5
      OnClick = Button5Click
    end
    object Button9: TButton
      Left = 15
      Top = 88
      Width = 90
      Height = 25
      Caption = 'Access->Excel'
      TabOrder = 2
      OnClick = Button9Click
    end
    object Button10: TButton
      Left = 112
      Top = 88
      Width = 90
      Height = 25
      Caption = 'Excel->Access'
      TabOrder = 6
      OnClick = Button10Click
    end
  end
  object GroupBox2: TGroupBox
    Left = 256
    Top = 8
    Width = 217
    Height = 153
    Caption = ' Oracle '
    TabOrder = 1
    object Button6: TButton
      Left = 16
      Top = 88
      Width = 90
      Height = 25
      Caption = 'Oracle->Access'
      TabOrder = 2
      OnClick = Button6Click
    end
    object Button7: TButton
      Left = 16
      Top = 23
      Width = 90
      Height = 25
      Caption = 'Oracle->TXT'
      Font.Charset = GB2312_CHARSET
      Font.Color = clWindowText
      Font.Height = -12
      Font.Name = '宋体'
      Font.Style = []
      ParentFont = False
      TabOrder = 0
      OnClick = Button7Click
    end
    object Button8: TButton
      Left = 16
      Top = 120
      Width = 90
      Height = 25
      Caption = 'Oracle->Excel'
      TabOrder = 3
      OnClick = Button8Click
    end
    object Button11: TButton
      Left = 16
      Top = 55
      Width = 90
      Height = 25
      Caption = 'Oracle->DBF'
      TabOrder = 1
      OnClick = Button11Click
    end
    object Button12: TButton
      Left = 112
      Top = 23
      Width = 90
      Height = 25
      Caption = 'TXT->Oracle'
      Font.Charset = GB2312_CHARSET
      Font.Color = clWindowText
      Font.Height = -12
      Font.Name = '宋体'
      Font.Style = []
      ParentFont = False
      TabOrder = 4
      OnClick = Button12Click
    end
    object Button13: TButton
      Left = 112
      Top = 55
      Width = 90
      Height = 25
      Caption = 'DBF->Oracle'
      TabOrder = 5
      OnClick = Button13Click
    end
    object Button14: TButton
      Left = 112
      Top = 87
      Width = 90
      Height = 25
      Caption = 'Access->Oracle'
      TabOrder = 6
      OnClick = Button14Click
    end
    object Button15: TButton
      Left = 112
      Top = 120
      Width = 90
      Height = 25
      Caption = 'Excel->Oracle'
      TabOrder = 7
      OnClick = Button15Click
    end
  end
  object StatusBar: TStatusBar
    Left = 0
    Top = 329
    Width = 536
    Height = 19
    Panels = <
      item
        Text = '耗时:'
        Width = 32
      end
      item
        Width = 100
      end
      item
        Width = 50
      end>
    SimplePanel = False
  end
  object Button16: TButton
    Left = 24
    Top = 176
    Width = 90
    Height = 25
    Caption = 'TXT->DBF'
    TabOrder = 3
    OnClick = Button16Click
  end
  object AccessConnection: TADOConnection
    ConnectionString =
      'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=E:/Delp' +
      'hilx/ADOSQL/PH/demo.mdb;Persist Security Info=True'
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    OnExecuteComplete = AccessConnectionExecuteComplete
    OnWillExecute = AccessConnectionWillExecute
    Left = 228
    Top = 95
  end
  object ExcelConnection: TADOConnection
    ConnectionString =
      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/aaa.xls;Extended' +
      ' Properties=Excel 8.0;Persist Security Info=False'
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    OnExecuteComplete = AccessConnectionExecuteComplete
    OnWillExecute = AccessConnectionWillExecute
    Left = 228
    Top = 128
  end
  object TxtConnection: TADOConnection
    ConnectionString =
      'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:/temp' +
      ';Extended Properties="text;HDR=YES;FMT=Delimited";Persist Securi' +
      'ty Info=True'
    LoginPrompt = False
    Mode = cmShareDenyNone
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    OnExecuteComplete = AccessConnectionExecuteComplete
    OnWillExecute = AccessConnectionWillExecute
    Left = 228
    Top = 31
  end
  object DBFConnection: TADOConnection
    ConnectionString =
      'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/;Extended Proper' +
      'ties=DBase 5.0;Persist Security Info=False'
    LoginPrompt = False
    Provider = 'Microsoft.Jet.OLEDB.4.0'
    OnExecuteComplete = AccessConnectionExecuteComplete
    OnWillExecute = AccessConnectionWillExecute
    Left = 228
    Top = 63
  end
  object OracleConnection: TADOConnection
    ConnectionString =
      'Provider=MSDASQL.1;Password=bklskf;Persist Security Info=True;Us' +
      'er ID=bklskf;Data Source=bkls'
    Provider = 'MSDASQL.1'
    Left = 228
    Top = 161
  end
end

[Unit]
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    AccessConnection: TADOConnection;
    GroupBox1: TGroupBox;
    Button1: TButton;
    Button3: TButton;
    Button4: TButton;
    Button2: TButton;
    Button5: TButton;
    GroupBox2: TGroupBox;
    Button6: TButton;
    Button7: TButton;
    labTime: TLabel;
    StatusBar: TStatusBar;
    ExcelConnection: TADOConnection;
    Button8: TButton;
    TxtConnection: TADOConnection;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    DBFConnection: TADOConnection;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    OracleConnection: TADOConnection;
    Button16: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure AccessConnectionExecuteComplete(Connection: TADOConnection;
      RecordsAffected: Integer; const Error: Error;
      var EventStatus: TEventStatus; const Command: _Command;
      const Recordset: _Recordset);
    procedure AccessConnectionWillExecute(Connection: TADOConnection;
      var CommandText: WideString; var CursorType: TCursorType;
      var LockType: TADOLockType; var CommandType: TCommandType;
      var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
      const Command: _Command; const Recordset: _Recordset);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Button13Click(Sender: TObject);
    procedure Button14Click(Sender: TObject);
    procedure Button15Click(Sender: TObject);
    procedure Button16Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1             : TForm1;
  sSql              : string;
  iT1, iT2          : integer;

implementation

{$R *.dfm}

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  TxtConnection.Close;
  DBFConnection.Close;
  AccessConnection.Close;
  ExcelConnection.Close;
end;

procedure TForm1.AccessConnectionExecuteComplete(Connection: TADOConnection;
  RecordsAffected: Integer; const Error: Error;
  var EventStatus: TEventStatus; const Command: _Command;
  const Recordset: _Recordset);
begin
  //记时1
  iT2 := GetTickCount;
  StatusBar.Panels[1].Text := FormatFloat('#,##', iT2 - iT1) + '毫秒';
  StatusBar.Panels[2].Text := '共导记录:' + IntToStr(RecordsAffected) + '条';
end;

procedure TForm1.AccessConnectionWillExecute(Connection: TADOConnection;
  var CommandText: WideString; var CursorType: TCursorType;
  var LockType: TADOLockType; var CommandType: TCommandType;
  var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
  const Command: _Command; const Recordset: _Recordset);
begin
  iT1 := GetTickCount;
end;

//=================================================================
//Access
//Access->TXT
procedure TForm1.Button1Click(Sender: TObject);
begin
  sSql := 'select * into [Text;Database=f:/].aaa.txt from demo';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Access->DBF
procedure TForm1.Button3Click(Sender: TObject);
begin
  sSql := 'select * into aaa in ''f:/'' ''dbase 5.0;'' from demo';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Access->Excel
//注意:前一个aaa为Excel文件中的aaa页,后一个aaa为Access文件demo.mdb中的一个表名
procedure TForm1.Button9Click(Sender: TObject);
begin
  sSql :=
    'select * into aaa from aaa in ''E:/Delphilx/ADOSQL/PH/demo.mdb''';
  with ExcelConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Access->Access
procedure TForm1.Button4Click(Sender: TObject);
begin
  sSql := 'select * into aaa from demo in ''E:/Delphilx/ADOSQL/PH/demo.mdb''';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//TXT->Access
procedure TForm1.Button2Click(Sender: TObject);
begin
  sSql := 'select * into uform from [Text;Database=f:/].form.txt';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//DBF->Access
procedure TForm1.Button5Click(Sender: TObject);
begin
  sSql := 'select * into aaa from aaa in ''f:/'' ''dbase 5.0;''';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Excel->Access
//[aaa$]->Excel文件aaa.xls中的aaa页
procedure TForm1.Button10Click(Sender: TObject);
begin
  sSql :=
    'select * into bbb from [excel 8.0;database=f:/aaa.xls].[aaa$]';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//=================================================================
//Oracle
//Oracle->Access
procedure TForm1.Button6Click(Sender: TObject);
begin
  sSql :=
    'select * into ouform from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Oracle->TXT
procedure TForm1.Button7Click(Sender: TObject);
begin
  sSql := 'select VGH,VXM,VMM into lsygb.txt from (select * from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;SERVER=BKLS;])';
//  sSql :=
//    'select * into form.txt from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';
  with TxtConnection do
    begin
      Close;
      Connected := True;
      Execute(sSql);
    end;
end;

//Oracle->Excel
procedure TForm1.Button8Click(Sender: TObject);
begin
  sSql :=
    'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
  with ExcelConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Oracle->DBF
procedure TForm1.Button11Click(Sender: TObject);
begin
  sSql :=
    'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
  with DBFConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//TXT->Oracle
//Oracle数据库注意要将表名大写!不然创建出来的表可以看到表名但无法打开
procedure TForm1.Button12Click(Sender: TObject);
begin
  sSql := 'select * into PH_TXT in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from ph_txt.txt';
  with TxtConnection do
    begin
      Close;
      Connected := True;
      Execute(sSql);
    end;
end;

//DBF->Oracle
procedure TForm1.Button13Click(Sender: TObject);
begin
  sSql :=
    'select * into PH_DBF in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
  with DBFConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Access->Oracle
procedure TForm1.Button14Click(Sender: TObject);
begin
  sSql :=
    'select * into PH_ACCESS in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
  with AccessConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

//Excel->Oracle
procedure TForm1.Button15Click(Sender: TObject);
begin
//  'select * into MLB in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;Server=BKLS;] from MLB'
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/aaa.xls;Extended Properties=Excel 8.0;Persist Security Info=False
  sSql :=
    'select * into PH_EXCEL in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
  with ExcelConnection do
    begin
      Connected := True;
      Execute(sSql);
    end;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
  sSql := 'select * into qxb in ''f:/'' ''dbase 5.0;'' from lsqxb.txt';
  with TXTConnection do
    begin
//      Close;
//      ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:/temp;Extended Properties="text;HDR=YES;FMT=Delimited";Persist Security Info=True';
      Connected := True;
      Execute(sSql);
    end;
end;

end.
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值