起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 224|回复: 13

onCalcFields**

[复制链接]
发表于 2008-10-31 09:48:05 | 显示全部楼层 |阅读模式
onCalcFields事件执行结束后接着执行什么事件?
为什么我的程序onCalcFields执行结束后要等估计半分钟才能继续运行
回复

使用道具 举报

 楼主| 发表于 2008-10-31 09:52:39 | 显示全部楼层
为什么我的程序执行过onCalcFields事件后要等半分钟
就像死机了那样
然后才能再次运行
而且每次出发onCalcFields事件都那样
回复 支持 反对

使用道具 举报

发表于 2008-10-31 09:55:04 | 显示全部楼层
onCalcFields事件是每一行记录都会触发一次的。
是不是数据量太大了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 10:01:50 | 显示全部楼层
没有
前几天好好的 昨天突然这样的
而且有的模块就没问题  有的模块就有问题
回复 支持 反对

使用道具 举报

发表于 2008-10-31 10:03:51 | 显示全部楼层
那做了什么修改?与正常的 对比一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 10:16:41 | 显示全部楼层
对比了
没有发现有什么不一样的
那模块好久都没有改  半个月前改好测试通过以后就再没动过了
昨天测试的时候发现问题的
回复 支持 反对

使用道具 举报

发表于 2008-10-31 10:18:07 | 显示全部楼层
数据量有多少?
回复 支持 反对

使用道具 举报

发表于 2008-10-31 10:18:56 | 显示全部楼层
计算代码怎么写的?贴出来看看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 10:32:53 | 显示全部楼层
procedure TYWXX_NBXS.DataSetNBXSXBCalcFields(DataSet: TDataSet);
var
  wzbm: String;
  gsbm: String;
  jldwbm: String;
  jldw: String;
  wzmc: String;
  ggxh: String;
begin
  wzbm:= DataSetNBXSXB.FieldByName('wzbm').AsString;
  gsbm:= DataSetNBXSJB.FieldByName('ck').AsString;
  if(wzbm='') or (gsbm='') then
    exit;

  DataSetNBXSXB.OnCalcFields:= nil;
  try
    LQry.CommandText:='select kcsl from zbmroler.wzkcxxb where wzbm='''+wzbm+''' and gsbm='''+gsbm+'''';
    LQry.Open;
    if (LQry.RecordCount=1) then
    begin
      DataSetNBXSXB.FieldByName('kcsl').AsFloat:=LQry.FieldByName('kcsl').AsFloat;
    end;

    LQry.Close;
    LQry.CommandText:= 'select wzmc,ggxh,jldwbm from wzxxb where wzbm='''+wzbm+'''';
    LQry.Open;
    if not LQry.Eof then
    begin
      wzmc:= LQry.FieldByName('wzmc').AsString;
      ggxh:= LQry.FieldByName('ggxh').AsString;
      jldwbm:= LQry.FieldByName('jldwbm').AsString;
      try
        LQry.Close;
        LQry.CommandText:= 'select jldw from jldwdmb where jldwbm='+jldwbm;
        LQry.Open;
        if(LQry.RecordCount=1) then
        begin
          jldw:= LQry.FieldByName('jldw').AsString;
        end;
      finally
      end;
    DataSetNBXSXB.FieldByName('jldw').AsString:=jldw;
    end;
    DataSetNBXSXB.FieldByName('wzmc').AsString:=wzmc;
    DataSetNBXSXB.FieldByName('ggxh').AsString:=ggxh;
    DataSetNBXSXB.OnCalcFields:=DataSetNBXSXBCalcFields;
  finally
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-10-31 10:34:12 | 显示全部楼层
不同的模块使用查找的时候用的都是这段代码
应该不是代码的问题
所有的模块的数据量基本都类似
前一段时间这个模块好好的  但是现在有问题了
是什么原因可能导致这种问题的
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-25 10:42 , Processed in 0.042710 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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