with QueryTemp do
begin
SQL.Clear;
SQL.Add('SELECT distinct B.SPCODE,B.NAME SP_NAME,C.BL YHQLXBL FROM SPXX B,YHQLXBL C');
SQL.Add('WHERE B.DEPTID=C.DEPTID') ;
SQL.Add('AND C.DEPTID = :pCode');
SQL.Add('AT ISOLATION READ UNCOMMITTED');
ParamByName('pCode').AsString :=SelCode2.SelectCode;
open;
end;
if QueryTemp.RecordCount>0 then
begin
with TableYQXEITEM do
begin
QueryTemp.First;
while not QueryTemp.Eof do
begin TableYQXEITEM.Append;
TableYQXEITEM.FieldByName('SPCODE').AsString := QueryTemp.fieldbyname('SPCODE').AsString;
TableYQXEITEM.FieldByName('SP_NAME').AsString := QueryTemp.fieldbyname('SP_NAME').asstring ;
TableYQXEITEM.FieldByName('YHQLXBL').AsFloat := QueryTemp.fieldbyname('YHQLXBL').AsFloat; TableYQXEITEM.Post;
QueryTemp.Next;
end;
end; end;帮我看看我的代码。。每次执行很慢。。看有什么好办法块点 麻烦高手修改一下
begin
SQL.Clear;
SQL.Add('SELECT distinct B.SPCODE,B.NAME SP_NAME,C.BL YHQLXBL FROM SPXX B,YHQLXBL C');
SQL.Add('WHERE B.DEPTID=C.DEPTID') ;
SQL.Add('AND C.DEPTID = :pCode');
SQL.Add('AT ISOLATION READ UNCOMMITTED');
ParamByName('pCode').AsString :=SelCode2.SelectCode;
open;
end;
if QueryTemp.RecordCount>0 then
begin
with TableYQXEITEM do
begin
QueryTemp.First;
while not QueryTemp.Eof do
begin TableYQXEITEM.Append;
TableYQXEITEM.FieldByName('SPCODE').AsString := QueryTemp.fieldbyname('SPCODE').AsString;
TableYQXEITEM.FieldByName('SP_NAME').AsString := QueryTemp.fieldbyname('SP_NAME').asstring ;
TableYQXEITEM.FieldByName('YHQLXBL').AsFloat := QueryTemp.fieldbyname('YHQLXBL').AsFloat; TableYQXEITEM.Post;
QueryTemp.Next;
end;
end; end;帮我看看我的代码。。每次执行很慢。。看有什么好办法块点 麻烦高手修改一下
解决方案 »
- WebBrowser的NewWindow2的过程中如何使链接在IE中打开?而不是自身的跳转,谢谢!
- 选择哪中报表工具,支持左侧固定格式
- 未来的C/S谁会是王道?
- 要使用Hash,找了半天只找到THashedStringList,但是又不能满足要求?难道Delphi没法使用Hash吗?
- 车丢了,散分
- Adoquery+datasource+dbgrid不能显示?
- 哪里有InstallShield高版本下载
- 救命!使用Wave***系列函数?....waiting online!
- 高分求救~!!!怎样将第三方控件打包?
- 关于datetimepicker的一个问题
- 如何将带文本格式的文字保存到数据库中?
- 求助,怎样设置按钮,实现下一步功能//菜鸟问题
数据比较打。显示很慢
SQL.Add('SELECT distinct B.SPCODE,B.NAME SP_NAME,C.BL YHQLXBL FROM SPXX B,YHQLXBL C');
SQL.Add('WHERE B.DEPTID=C.DEPTID') ;
SQL.Add('AND C.DEPTID = :pCode');
SQL.Add('AT ISOLATION READ UNCOMMITTED');
...
执行后把 TableYQXEITEM 更新下
这样应该比循环插入要快
而且你的 distinct ,数据量大的话很吃资源,SQL语句上再优化下吧。
用sql 语句插入数据多快啊。
procedure TForm1.Button2Click(Sender: TObject);
var
vSQL: string;
begin
vSQL := 楼上上的SQL语句
with QueryTemp do
begin
Close;
SQL.Clear;
SQL.Text := vSQL;
ExecSQL;
end;
end;
begin
ADOConnection1.Execute('SQL语句');
{TableYQXEITEM.close;
TableYQXEITEM.open; 刷新}
end;