告诉大家一个直接用SQL语句把DBF导入SQLServer,以及txt导入Access的方法,大家抛弃BatchMove吧
来自:碧血剑
告诉你一个最快的方法,用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中,
速度是最快的
把压箱底的方法都告诉大家
在Form上放一个ADOConnection,连结指向目标Access库
比如txt文件在c:/temp/aaaa.txt
就执行
ADOConnection.Connected := True;
ADOConnection.Execute(’Select * Into abcd From [Text;Database=c:/temp].aaaa.txt’);
就一切Ok了,这个方法一定行的,我好不容易才研究出来的
有了这两个例子,异构数据库之间导数据的问题就举一反三,迎刃而解了。
----转自大富翁(http://www.delphibbs.com/delphibbs/dispq.asp?lid=1691966)
自己的使用实例如:
/*功能: 实现 dbf表 到 sql表 自动转换语句*/
select 人才编号, 姓名, 性别, 出生日期,
民族, 政治面貌 ,学历编码,专业编码,
职业编码,职务编码,职称编码,行业编码,
工作单位,地域编码,通信地址,联系电话,
行业带头码,主要专长,主要业绩,备注
into renCaiInf表2 from
openrowset('MSDASQL'
,'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=F:/Program Files/贵州省乡土人才管理系统/temp'
,'select * from RcDataBAK.DBF '
);
/*功能: 实现 xls表 到 sql表 自动转换语句 */
select * from rencaiinf order by 人才编号 asc
delete from renCaiInf where 姓名='李刚'
insert into renCaiInf
select 人才编号, 姓名, 性别, 出生日期,
民族, 政治面貌 ,学历编码,专业编码,
职业编码,职务编码,职称编码,行业编码,
工作单位,地域编码,通信地址,联系电话,
行业带头码,主要专长,主要业绩,备注
from OpenRowSet('MICROSOFT.JET.OLEDB.4.0' ,
'Excel 8.0;HDR=YES;DATABASE=C:/Documents and Settings/Administrator/桌面/源表1.xls;Extended properties=Excel 5.0'
,sheet1$)
where 人才编号 is not NULL;
insert into
select distinct 所在地
from OpenRowSet('MICROSOFT.JET.OLEDB.4.0' ,
'Excel 8.0;HDR=YES;DATABASE=C:/Documents and Settings/Administrator/桌面/乡土人才名册.xls;Extended properties=Excel 5.0'
,sheet1$)
where 人才编号 is not NULL and 所在地 is not null ;
delete from xuelidic
update hangYedic
set 行业名称='畜牧业'
where 行业编码='A03';
select * from hangyedic where 行业编码='A05' order by 行业编码 asc
insert into hangyedic values( 'A05' , '农,林,牧,渔服务业' )