起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 802|回复: 30

【结贴】数据集带有临时字段,数据网格无法插入,怎么解决**

[复制链接]
发表于 2008-6-16 14:20:23 | 显示全部楼层 |阅读模式
如图,线路长度是数据集中的临时字段,如果数据网格中没有这一列,能够很好的实现正常的插入。
但是加上这一列以后,点插入的时候功能就直接异常退出了。请问该如何解决。
另外,数据表的设计就是所见数据网格的前4列。

6.jpg

20.27 KB, 下载次数: 235

回复

使用道具 举报

发表于 2008-6-16 14:27:44 | 显示全部楼层
在插入记录时,是否写了代码?如果有,将代码贴上来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 14:29:09 | 显示全部楼层
还没写代码呢,一点插入按钮就直接死掉了
回复 支持 反对

使用道具 举报

发表于 2008-6-16 14:31:31 | 显示全部楼层
楼主的线路长度临时字段的值是如果计算的?可能和这个字段有关
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 14:39:27 | 显示全部楼层
对,就是计算的,如果没有这个字段的话,插入很好,肯定是和这个字段有关
有关该字段的代码是:
procedure TXLXX.DataSetXLXXSJJCalcFields(DataSet: TDataSet);
begin
//edit   DataSetXLXXSJJ
   DataSetXLXXSJJ2.Close;
   TSQLDataSet(DataSetXLXXSJJ2).UserFilter:=' XLDYB.XLID='''+DataSetXLXXSJJ.FieldByName('XLID').AsString+'''';
   DataSetXLXXSJJ2.Open;
   DataSetXLXXSJJ.FieldByName('XLZD').Value := DataSetXLXXSJJ2.FieldByName('线路长度').asFloat;
end;

其中,“线路信息数据集2”即DataSetXLXXSJJ2的sql是,功能就是从QYLJB和XLDYB中算出了线路ID和相应的长度、
SELECT   XLDYB.XLID,SUM(QYLJB.ZD) AS '线路长度'
  FROM XLDYB, QYLJB
WHERE XLDYB.XLID=QYLJB.XLID
GROUP BY XLDYB.XLID
回复 支持 反对

使用道具 举报

发表于 2008-6-16 14:45:33 | 显示全部楼层
设个断点,跟踪一下,看到哪句出了问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 14:56:31 | 显示全部楼层
好像是这句
但是不该有错啊

1.jpg

28.78 KB, 下载次数: 201

回复 支持 反对

使用道具 举报

发表于 2008-6-16 15:00:40 | 显示全部楼层
TSQLDataSet(DataSetXLXXSJJ2.DataSet).UserFilter
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-6-16 15:08:08 | 显示全部楼层
那样改了之后根本就不能通过编译啊
[错误]Biz:\YCSHXT\XLLJGL\XLXX.Info.pas(30, 32): Undeclared identifier "DataSet"
回复 支持 反对

使用道具 举报

发表于 2008-6-16 15:15:22 | 显示全部楼层
不好意思,8楼回错了。
--------------
将过滤条件赋给一个变量,断点后,Ctrl+F7看一下值是什么?
s := '... ...'
TSQLDataSet(DataSetXLXXSJJ2).UserFilter := s;
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-17 20:46 , Processed in 0.044008 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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