我的导入语句是这样写的,但我没用过进度条,不会用。while not ADOQ_dr.Eof do begin sqlStr1:='insert into '+tmpTbName1+'(ysdbh,ysdmc,ysdje,cgjgmc,zdr,zdsj,wtgyy,bz,zt,dyl) values ('; for i:= 0 to ADOQ_dr.Fields.Count- 1 do begin if ADOQ_dr.Fields[i].Value<>null then tbData1:=ADOQ_dr.Fields[i].Value else tbData1:=''; sqlStr1:=sqlStr1+''''+tbData1+''''+','; end; delete(sqlStr1,length(sqlStr1),1); sqlStr1:=sqlStr1+')'; Query1.Close; Query1.SQL.Clear; Query1.SQL.Add(sqlStr1); try Query1.ExecSQL; except application.MessageBox('数据导入失败(错误:4)!','信息提示',mb_ok); exit; end; ADOQ_dr.Next; end;
拉一下ProgressBar控件下來,改这个地方:ProgressBar1.Max:=ADOQ_dr.RecordCount; while not ADOQ_dr.Eof do begin ProgressBar1.Position:=ProgressBar1.Position+1; ...
我有两个while not ADOQ_dr.Eof do,因为我导入了两个csv文件,但我只想总共显示一条进度条。
ProgressBar1.Max:=总记录数;
ProgressBar1.Position:=ProgressBar1.Position+1;如果是拷贝文件,用Animate
Animate1.CommonAVI:=aviCopyFiles;
Animate1.Active:=True;
begin
sqlStr1:='insert into '+tmpTbName1+'(ysdbh,ysdmc,ysdje,cgjgmc,zdr,zdsj,wtgyy,bz,zt,dyl) values (';
for i:= 0 to ADOQ_dr.Fields.Count- 1 do
begin
if ADOQ_dr.Fields[i].Value<>null then
tbData1:=ADOQ_dr.Fields[i].Value
else tbData1:='';
sqlStr1:=sqlStr1+''''+tbData1+''''+',';
end;
delete(sqlStr1,length(sqlStr1),1);
sqlStr1:=sqlStr1+')';
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(sqlStr1);
try
Query1.ExecSQL;
except
application.MessageBox('数据导入失败(错误:4)!','信息提示',mb_ok);
exit;
end;
ADOQ_dr.Next;
end;
while not ADOQ_dr.Eof do
begin
ProgressBar1.Position:=ProgressBar1.Position+1;
...