起步软件技术论坛-X3

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

【结贴】关于DataSetBroker的ONDataChange事件问题 ,急!

[复制链接]
发表于 2009-10-28 16:23:18 | 显示全部楼层 |阅读模式
你好,代码如下:
procedure TKHXH.DataSetBrokerAREA1DataChange(Sender: TObject; Field: TDataField);
var
line_id,AREA_ID:string;
begin
if  DataSetBrokerAREA1.DataSet.Active=false then exit;
if Field <> nil then
  begin
      if Field.FieldName = 'AREA_ID' then      //台区号
      begin
           AREA_ID:=DataSetBrokerAREA1.DataSet.FieldByName('AREA_ID').AsString;
           line_id:=DataSetBrokerAREA1.DataSet.FieldByName('OWNER_LINE').AsString;
           DataSetBrokerLINE1.DataSet.Locate('line_id', Variants.VarArrayOf([LINE_ID]), [TLocateOption.loPartialKey]);
      end;
end;
end;

以上代码在语法检查、编译过程都是正确的,但运行功能时提示引用对像为空,调试可以看到Field对象为空。请问是偶以上代码错误还是什么问题?
回复

使用道具 举报

发表于 2009-10-28 16:27:50 | 显示全部楼层
楼主,你上面的代码想实现的是数据定位?
报错时代码停在什么位置?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-28 16:30:58 | 显示全部楼层
没有报错,我只是在 if Field <> nil then这里设了个断点,调试查看到Field 位空对象,
回复 支持 反对

使用道具 举报

发表于 2009-10-28 16:32:15 | 显示全部楼层
哦,那没报错就没事吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-28 16:33:53 | 显示全部楼层
问题是他不触发到 if Field.FieldName = 'AREA_ID' then      //台区号
      begin
           AREA_ID:=DataSetBrokerAREA1.DataSet.FieldByName('AREA_ID').AsString;
           line_id:=DataSetBrokerAREA1.DataSet.FieldByName('OWNER_LINE').AsString;
           DataSetBrokerLINE1.DataSet.Locate('line_id', Variants.VarArrayOf([LINE_ID]), [TLocateOption.loPartialKey]);
      end;
这段代码里面啊
回复 支持 反对

使用道具 举报

发表于 2009-10-28 16:34:51 | 显示全部楼层
请楼主把你要实现的需求描述一下吧
不清楚为什么要在这个事件上这么做。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-28 16:35:06 | 显示全部楼层
按照你们的说法 我写了一段程序都不能被调用到 那我干嘛写啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-28 16:36:51 | 显示全部楼层
有两个数据集  A  B
当A 数据集中的某个字段aa变更了,B数据集中的bb也要跟着变
回复 支持 反对

使用道具 举报

发表于 2009-10-28 16:37:19 | 显示全部楼层
最初由 lotus 发布
[B]按照你们的说法 我写了一段程序都不能被调用到 那我干嘛写啊 [/B]


楼主,什么说法呢?
没执行到说明 此事件需要触发的条件没成立,也就是说你操作时没有修改数据。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-28 16:39:17 | 显示全部楼层
现在程序运行到Field <> nil这里的时候,由于Field 为空对象,导致条件不能成立,目前我就是不明白我的Field 为什么会为空对象
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-15 03:01 , Processed in 0.042659 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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