问题同上
求最快算法~

解决方案 »

  1.   

    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.csdn 搜的,这样的问题答案一大堆
      

  2.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB,ComObj, OleServer, Excel2000;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        DataSource1: TDataSource;
        DBGrid2: TDBGrid;
        SaveDialog1: TSaveDialog;
        Button1: TButton;
        Button2: TButton;
        ExcelApplication1: TExcelApplication;
        Button3: TButton;
        Edit1: TEdit;
        OpenDialog1: TOpenDialog;
        ExcelWorkbook1: TExcelWorkbook;
        ExcelWorksheet1: TExcelWorksheet;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var xlsApp,WorkBook :Variant;
        field_no,record_no,i,j :Integer;
        filename :String;
    begin
     field_no:=DBGrid2.Columns.Count;
     try
      xlsApp:=CreateOleObject('Excel.Application');
      xlsApp.Visible:=true;
      xlsApp.Caption:='分级报表';
      WorkBook:=CreateOleObject('Excel.Sheet');
     except
      Showmessage('您的机器未安装Microsoft Excel');
      exit;
     end; try
      WorkBook:=xlsApp.WorkBooks.Add;
      xlsApp.Cells(1,3):='通信业务量月报';
      for i:=1 to field_no do
       begin
        xlsApp.Cells(2,i):=DBGrid2.Columns[i-1].Title.Caption;
       end;
      DBGrid2.DataSource.DataSet.First;
      record_no:=DBGrid2.DataSource.DataSet.RecordCount;
      for i:=1 to record_no do
       begin
        for j:=1 to field_no do
         begin
          xlsApp.Cells(i+2,j):=DBGrid2.Fields[j-1].text;
         end;
         DBGrid2.DataSource.DataSet.Next;
       end;
     except
      Showmessage('无法操作Excel,可能该程序已被占用');
     end; xlsApp.visible:=false;
     try
      SaveDialog1.Execute;
      filename:=SaveDialog1.FileName;
      WorkBook.saveas(filename);
     except
      Showmessage('无法操作Excel,可能该程序已被占用');
     end;
     WorkBook.Close;
     xlsApp.Quit;end;procedure TForm1.Button2Click(Sender: TObject);
    var
      xlsApp: variant;
      filename : string;
    begin
      xlsApp := createoleobject('Excel.Application');
      xlsApp.visible := true;
      xlsApp.Caption:='分级报表';  xlsApp.WorkBooks.Add;
      xlsApp.Cells(1,3):='通信业务量月报';
      xlsApp.Cells(2,1):='aa';
      xlsApp.visible:=false;
      SaveDialog1.Execute;
      filename:=SaveDialog1.FileName;
        xlsApp.visible := true;
      xlsapp.save(filename);
          xlsApp.visible := false;
      xlsApp.Quit;
    end;procedure TForm1.Button3Click(Sender: TObject);
    var
      xlsApp: variant;
      filename : string;
    begin
       xlsApp := createoleobject('Excel.Application');
          OpenDialog1.Execute;
         filename := OpenDialog1.FileName;
         xlsApp.WorkBooks.Open(filename);
    //   xlsApp.visible := true;
         edit1.text:= xlsApp.cells[2,1];
         xlsApp.WorkBooks.Close;
         xlsApp.quit;end;end.