当前位置:主页>销售管理软件> 列表

excel导入SQL SerVer的问题,共有四个表,每个 找p3工程管理软件

记账软件版1楼: 我把Excel当成数据库来处理
下面是四个表中的一个,其余类同:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(''select * from [ 如会计科目表$]'');//Excel中
ADOQuery1.Open;

with dmDBDealer.DSTemp do //Sql SerVer数据库链接
begin
Close;
CommandText := ''select * from 会计科目'';
Open;
while not ADOQuery1.Eof do
begin
Append;
FieldByName(''科目编号'').AsString := ADOQuery1.FieldByName(''科目编号'').AsString;
FieldByName(''科目名称'').AsString := ADOQuery1.FieldByName(''科目名称'').AsString;
FieldByName(''科目级次'').AsString := ADOQuery1.FieldByName(''科目级次'').AsString;
FieldByName(''辅助核算标志'').AsString := ADOQuery1.FieldByName(''辅助核算标志'').AsString;
FieldByName(''辅助核算项'').AsString := ADOQuery1.FieldByName(''辅助核算项'').AsString;


FieldByName(''科目类型'').AsString := ADOQuery1.FieldByName(''科目类型'').AsString;
FieldByName(''计量单位'').AsString := ADOQuery1.FieldByName(''计量单位'').AsString;
FieldByName(''余额方向'').AsString := ADOQuery1.FieldByName(''余额方向'').AsString;
Post;
ADOQuery1.Next;
end;
end;

2楼: 怎么没有会啊
莫非这是最快的方法 如p3工程管理软件

3楼: 没有人来吗
自己顶

4楼: 如果可以通过外部工具导入那最好用sqlserver的dts导入
如果你懂datastage那也是个好方法

如果非要写程序处理
var
adoqry1.sql.add(''insert into(科目编号, .....) vaules(:kmbh,...)'');
adoqry1.prepared := true;
adoqry2.first;
while not adoqry2.eof do
begin
adoqery1.Parameters.ParamByName(''kmbh'').vaule := adoqry2[''科目编号''];
....
adoqry1.Excesql;
adoqry2.next;
end;
这样可能快一点,没试过啊,随手写的

5楼: 不能用外部工具


只能在程序里面导入
用程序导:6.7千条记录用30秒吧
用DTS导:6.7千条记录用8秒吧
速度相差4倍

6楼: 做个进度条吧,慢点就慢点了,毕竟也几千条数据呢。

记账软件版7楼: 进度条有啊
但我还想提高速度
呵呵
共同研究

8楼: 是不是用
Commit能快一点
谁有这方面的例子请发给我

9楼: 我顶