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 <table name> from [excel 8.0;database=<filename>].[<sheetname>$]
对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.
在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 <table name> from [excel 8.0;database=<filename>].[<sheetname>$]
对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.