起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: taokele

使用动态查找属性过滤时速度超慢

[复制链接]
发表于 2009-10-13 11:44:57 | 显示全部楼层
那大概问题就出在你这个代码处了。
studio中调试看一下,给这个参数赋值的代码过程是否比较慢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-14 10:37:07 | 显示全部楼层
procedure TYWCSZ.ParamDWDMGetValue(Sender: TObject; var Value: Variant);
var
  lParam: TBizParam;
  lBizURL: TBizURL;
  strDWDM : String;
  lContextCurrent : TContextCurrent;
  lQuery : TQuery;
begin
  lBizURL := TBizURL.Create;

  strDWDM := SystemCore.TSystemCore.Operator.Positions[0].PositionMember.Parent.Parent.DisplayName;
  lQuery := TQuery.Create(Self);
  try
    lQuery.ConnectionString := 'DATABASEURL=Biz:\YWKJ_JQF\SJK.DATABASE';
    lQuery.CommandText := 'select dm from CT_OA_CODES where lb=''单位代码'' and mc=''' + strDWDM + '''';
    lQuery.Open;
    strDWDM :=lQuery.FieldByName('dm').AsString;
  finally
    lQuery.Free;
  end;
  value :=  strDWDM;

我重新在业务参数的onGetValue事件中对其进行复制,跟踪调试,为什么老是执行这一段代码??
回复 支持 反对

使用道具 举报

发表于 2009-10-14 10:40:05 | 显示全部楼层
回12楼,你这里是对哪个参数的ongetvalue赋值?
3楼的代码是通过给参数的value赋值
那么如果一个参数 赋值的方式有三种,优先级从低到高 分别是:表达式赋值、value赋值、ongetvalue赋值。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-14 10:48:17 | 显示全部楼层
3楼中的代码 我已经注释掉了
回复 支持 反对

使用道具 举报

发表于 2009-10-14 10:52:10 | 显示全部楼层
那就是说12的代码给参数赋值,这个过程跟踪了么?执行慢还是快?
现在你那边的问题,基本上定位出来不是过滤慢,而是你这个参数赋值的地方慢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-14 10:53:32 | 显示全部楼层
我跟踪执行的时候,老是执行这一段代码,很像死循环了
回复 支持 反对

使用道具 举报

发表于 2009-10-14 11:01:17 | 显示全部楼层
那不就很好办了么?
你把12楼的代码屏蔽掉,用你3楼的代码给参数的value赋值试试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-14 11:34:05 | 显示全部楼层
使用在数据集打开前进行赋值的代码,查找属性下拉的时候很长时间没有反应 不知道这中间做了什么事。
回复 支持 反对

使用道具 举报

发表于 2009-10-14 11:39:51 | 显示全部楼层
查找属性?那你看看查找数据集的数据量大不大的。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 10:15 , Processed in 0.041168 second(s), 14 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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