1 用btp工具或者 dts服务 2 用OPENROWSE或者opendatasource insert c (SELECT a.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders1) AS a union SELECT b.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders2) AS b)3 用tbatchmove或者自己写循环
补充一点:原始的DBF数据表中的数据不是固定不变的,一段时间就需要将这些数据表合并为一个数据表并转换为SQL SERVER 2000的数据表(即更新SQL SERVER 2000数据表的数据),若用Data Pump工具的话,那系统交给用户使用时且不是要用户去使用Data Pump工具进行数据表的转换?因此一定要用编程实现,请高手帮忙!
思路和平时的添加删除数据一样建立两个连接,一个连接DBF(最好通过ODBC连接),一个连接SQL(最好通过ADO连接),然后分别建立TTable和TADOQuery,至于怎么连接就不用说了吧!然后最笨的办法!var I: Integer; begin Table1.First; for I:=0 to Table1.RecoudCount-1 do begin ADOQuery1.Append; ADOQuery1.FieldByName('FLD1').AsString:=Table1.FieldByName('FLD1').AsString; //......其它字段 ADOQuery1.Post; Table1.Next; end; end;这种方式是笨,而且是很低级,但是针对你的问题是最好的办法,因为有太多的数据有效性在里面!
2 用OPENROWSE或者opendatasource
insert c
(SELECT a.*
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders1)
AS a
union
SELECT b.*
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:\MSOffice\Access\Samples\northwind.mdb';'admin';'mypwd', Orders2)
AS b)3 用tbatchmove或者自己写循环
I: Integer;
begin
Table1.First;
for I:=0 to Table1.RecoudCount-1 do
begin
ADOQuery1.Append;
ADOQuery1.FieldByName('FLD1').AsString:=Table1.FieldByName('FLD1').AsString;
//......其它字段
ADOQuery1.Post;
Table1.Next;
end;
end;这种方式是笨,而且是很低级,但是针对你的问题是最好的办法,因为有太多的数据有效性在里面!