起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 168|回复: 5

【结贴】用户自定数据表插入1000条数据时超时**

[复制链接]
发表于 2008-3-18 14:10:07 | 显示全部楼层 |阅读模式
Query1.Close;
     Query1.CommandText:='Select KDDH,KHBH,SJCS,JS,SJZL,JFZL,YF,JZFJF,QTF,ZYF,QJSJ,FKFS From ZY_KDDB '+Sql;
     Query1.Open;
     while Not Query1.Eof do
     begin
          //------------------------------------------------------------
            DataSetBroker4.DataSet.Insert;
           DataSetBroker4.DataSet.Edit;
           DataSetBroker4.DataSet.FieldByName('KDDH').AsString:=Query1.FieldByName('KDDH').AsString;
           DataSetBroker4.DataSet.FieldByName('KHZH').AsString:=Query1.FieldByName('KHBH').AsString;
           DataSetBroker4.DataSet.FieldByName('MDZ').AsString:=Query1.FieldByName('SJCS').AsString;
           DataSetBroker4.DataSet.FieldByName('JS').AsInteger:=Query1.FieldByName('JS').AsInteger;
           DataSetBroker4.DataSet.FieldByName('SJZL').AsFloat:=Query1.FieldByName('SJZL').AsFloat;
           DataSetBroker4.DataSet.FieldByName('JFZL').AsFloat:=Query1.FieldByName('JFZL').AsFloat;
           DataSetBroker4.DataSet.FieldByName('YF').AsFloat:=Query1.FieldByName('YF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('SMJZFJF').AsFloat:=Query1.FieldByName('JZFJF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('QTFY').AsFloat:=Query1.FieldByName('QTF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('ZYF').AsFloat:=Query1.FieldByName('ZYF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('SJRQ').AsString:=Query1.FieldByName('QJSJ').AsString;
           DataSetBroker4.DataSet.FieldByName('FKFS').AsString:=Query1.FieldByName('FKFS').AsString;

           //==============================================================
          Query1.Next;
     end;


如果查询结果是100条,没问题,得我插入780条数据,系统就没反应的,我试着等了30分钟也不出结果
回复

使用道具 举报

发表于 2008-3-18 14:52:45 | 显示全部楼层
我测试了个简单的,没有问题啊!

procedure TSJWG1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  for i := 0 to 1000 do
  begin
    DataSetBrokerZDYSJJ1.DataSet.Append;
    DataSetBrokerZDYSJJ1.DataSet.FieldByName('YHZD1').AsString := Business.System.SysUtils.IntToStr(i);
    DataSetBrokerZDYSJJ1.DataSet.Post;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-18 15:04:16 | 显示全部楼层
我用的是用户自定义数据集,没有提交过程。但用了一个表格文档跟这个数据集关联,显示出来。就是显示的时候 过了10几秒后,就运行死掉了
回复 支持 反对

使用道具 举报

发表于 2008-3-18 16:11:17 | 显示全部楼层
你是想把查找的结果追加(或者复制)到自定义数据集上吗?,取的字段是否一样呢?如果是,直接用数据集来做就可以了(把自定义数据集的字段创建的跟查询出来的结果一样),参考 :http://bbs.justep.com/forum.php?mod=viewthread&tid=19631
回复 支持 反对

使用道具 举报

发表于 2008-3-19 09:01:34 | 显示全部楼层
这样试一下
DataSetBroker4.DataSet.DisableControls;
try
     Query1.Close;
     Query1.CommandText:='Select KDDH,KHBH,SJCS,JS,SJZL,JFZL,YF,JZFJF,QTF,ZYF,QJSJ,FKFS From ZY_KDDB '+Sql;
     Query1.Open;
     while Not Query1.Eof do
     begin
          //------------------------------------------------------------
            DataSetBroker4.DataSet.Insert;
           DataSetBroker4.DataSet.Edit;
           DataSetBroker4.DataSet.FieldByName('KDDH').AsString:=Query1.FieldByName('KDDH').AsString;
           DataSetBroker4.DataSet.FieldByName('KHZH').AsString:=Query1.FieldByName('KHBH').AsString;
           DataSetBroker4.DataSet.FieldByName('MDZ').AsString:=Query1.FieldByName('SJCS').AsString;
           DataSetBroker4.DataSet.FieldByName('JS').AsInteger:=Query1.FieldByName('JS').AsInteger;
           DataSetBroker4.DataSet.FieldByName('SJZL').AsFloat:=Query1.FieldByName('SJZL').AsFloat;
           DataSetBroker4.DataSet.FieldByName('JFZL').AsFloat:=Query1.FieldByName('JFZL').AsFloat;
           DataSetBroker4.DataSet.FieldByName('YF').AsFloat:=Query1.FieldByName('YF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('SMJZFJF').AsFloat:=Query1.FieldByName('JZFJF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('QTFY').AsFloat:=Query1.FieldByName('QTF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('ZYF').AsFloat:=Query1.FieldByName('ZYF').AsFloat;
           DataSetBroker4.DataSet.FieldByName('SJRQ').AsString:=Query1.FieldByName('QJSJ').AsString;
           DataSetBroker4.DataSet.FieldByName('FKFS').AsString:=Query1.FieldByName('FKFS').AsString;

           //==============================================================
          Query1.Next;
     end;
finally
  DataSetBroker4.DataSet.EnableControls;
end;
回复 支持 反对

使用道具 举报

发表于 2008-5-14 11:43:13 | 显示全部楼层
由于长时间没有回复,先结贴了,有问题请开新帖。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-13 02:22 , Processed in 0.039358 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表