把DBF资料导入到SQL server的表中
把DBF文件导入到SQL server的表中
我要把DBF的数据差异更新到SQL 数据库中的表中,也可以先删除再插入
不要分布式查询插入(opendatasource和openrowset),一条一条数据就插入太慢了。
各位大虾,有木有办法
------解决方案--------------------
第一步,别管那么多,先用SQL语句将DBF表内容全部导入SQL中的临时表,第二步再数据差异更新,将临时表的数据有选择地插入新表中,这样效率高。
------解决方案--------------------
你的意思是添加个事务,速度可以加快吗
--------------------------------
是
我要把DBF的数据差异更新到SQL 数据库中的表中,也可以先删除再插入
不要分布式查询插入(opendatasource和openrowset),一条一条数据就插入太慢了。
各位大虾,有木有办法
------解决方案--------------------
第一步,别管那么多,先用SQL语句将DBF表内容全部导入SQL中的临时表,第二步再数据差异更新,将临时表的数据有选择地插入新表中,这样效率高。
------解决方案--------------------
你的意思是添加个事务,速度可以加快吗
--------------------------------
是
var
I: Integer;
begin
//方法1 使用事务
con1.BeginTrans;
try
for I := 0 to 100 do
begin
qry1.SQL.Text := 'insert into Ta ...';
qry1.ExecSQL;
end;
con1.CommitTrans;
except
on E: Exception do
begin
con1.RollbackTrans;
raise Exception.Create(e.Message);
end;
end;
//方法2 MSSQL支持';'分隔, 可以拼接后提交, 如果数据量大, 可以考虑分段执行
try
qry1.SQL.Text := '';
for I := 0 to 100 do
begin
qry1.SQL.Text := qry1.SQL.Text + 'insert into Ta ...;';
end;
qry1.ExecSQL;
except on E: Exception do
raise Exception.Create(e.Message);
end;
end;