异构数据库之间用SQL语句导数据

1.用SQLServer连接DBF
在SQLServer中执行
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
  'Data Source="e:\share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
这样就可以把e:\share中的bmk.dbf表导入到Sqlserver中

注意:上面这个方法DBF文件必须在服务器上,如果DBF不在服务器上,就用
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp;Extended Properties="dBase 5.0;";Persist Security Info=False
SQL语句
SELECT * into aaa IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
from aaa
这是直接把客户端上的DBF传上服务器的最直接方法。

2.txt导入到Access库
在Form上放一个ADOConnection,连结指向目标Access库
比如txt文件在c:\temp\aaaa.txt
就执行
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From [Text;Database=c:\temp].aaaa.txt');

有了这两个例子,异构数据库之间导数据的问题就举一反三,迎刃而解了。

3.Excel导入到Access中
把Excel导入到Access中,同txt类似
select * into from [excel 8.0;database=].[$]

对access表得操作,从excel导入到access,成功
try
    if self.OpenDialog1.Execute then
      tmpdir := ExtractFilePath(self.OpenDialog1.FileName) + ExtractFileName(self.OpenDialog1.FileName);
    self.Caption := tmpdir;
    self.ADOConnection1.Connected:=true;
    self.ADOConnection1.Execute('insert into  aa(sid,sname,cname) select sid,sname,cname from [excel 8.0;database=' + tmpdir + '].[Sheet1$]');
  except
    showmessage('fail');
  end; 

4.其他的
这些是标准的SQL导出语句:

  select * into [Excel 8.0;database=导出目录].导出表名 from 表

  select * into [FoxPro 2.6;database=导出目录].导出表名 from 表

  select * into [FoxPro 2.5;database=同上].导出表名 from 表

  select * into [dBase III;database=同上].导出表名 from 表

  select * into [Paradox 4.X;database=同上].导出表名 from 表

  select * into [;database=C:\temp\xxx.mdb].导出表名 from 表


Excel联接ADO串
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:\test\change.xls;Extended Properties=Excel 5.0;Persist Security Info=False
--------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
  sqltxt:String;
begin
  Try
      sqltxt:='SELECT * into newtable FROM OpenDataSource(Microsoft.Jet.OLEDB.4.0,Data Source="E:\test\change.xls";User ID=Admin;Password=;Extended properties=Excel 5.0)...xactions';

      ADOConnetion1.Close;
      ADOConnetion1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:\test\change.xls;Extended Properties=Excel 8.0;Persist Security Info=False';
      ADOConnetion1.Execute(sqltxt);
      Application.MessageBox('数据导出成功','系统信息',MB_OK+MB_IconInformation);
    except
      Application.MessageBox('数据导出失败','系统信息',MB_OK+MB_IconError);
    end;

    ADOConnetion1.Close;

end;

end. 

转载于:https://www.cnblogs.com/liulanglang/archive/2007/06/16/785406.html

你可能感兴趣的:(异构数据库之间用SQL语句导数据)