delphi – 在一个非常慢的查询中,如何指示进度百分比
发布时间:2020-12-15 09:29:34 所属栏目:大数据 来源:网络整理
导读:我正在使用ZEOS组件连接到(古老的)MDB数据库. 我正在进行查询,读取大量数据以桥接到不同的数据库. 有没有办法以百分比表示进度? procedure TForm13.ActionReadInMemoryExecute(Sender: TObject);var QueryLine: string; FullQuery: string; Tablename: stri
我正在使用ZEOS组件连接到(古老的)MDB数据库.
我正在进行查询,读取大量数据以桥接到不同的数据库. 有没有办法以百分比表示进度? procedure TForm13.ActionReadInMemoryExecute(Sender: TObject); var QueryLine: string; FullQuery: string; Tablename: string; i: integer; begin i:= 0; TableMeter.DisableControls; try TableMeter.First; FullQuery:= ''; while not TableMeter.eof do begin Tablename:= TableMeter.FieldByName('tabelnaam').AsString; QueryLine:= ReplaceStr(ImportQuerySjabloon,cTabelname,Tablename); FullQuery:= FullQuery + QueryLine; if (TableMeter.RecNo < (TableMeter.RecordCount -1)) then begin FullQuery:= FullQuery + ' UNION ALL '; end; TableMeter.Next; end; {while} QueryImportMeterreadings.Close; QueryImportMeterreadings.SQL.Text:= FullQuery; QueryImportMeterreadings.Open; <<-- takes a long time finally TableMeter.EnableControls; end; end; 有没有办法表明查询的进度,或者我只能在我拆分各个查询并消除UNION时才这样做. 我没有看到任何可以用于此目的的事件: 或者我应该在查询中的字段上伪造一个OnCalcField来执行此操作(不确定原则上是否会起作用). 解决方法
我说拆分各个查询并消除联合,围绕每个查询制作一个计时器,具体取决于所用的平均时间*剩余的查询数量,你应该给出一个估计/更新一个文本字段来说明y完成的y个查询(时间)剩余时间-)
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |