在用EHLIB2.1的DBGIRDEH时,删除记录的问题!高手过来看看!(200分)

  • 主题发起人 主题发起人 yangjj
  • 开始时间 开始时间
Y

yangjj

Unregistered / Unconfirmed
GUEST, unregistred user!
在用EHLIB2.1的DBGIRDEH时,删除记录的问题!
在用CTRL+DEL键删除子记录时,提示“无法为更新行集定位,一些值可能已在最后读取时
改变”,然后就中断,不能删除DBGIRDEH中的子记录。
谁能解决这个问题?200分相送!
 
杜宝说的对,这个错误与Ehlib无关,可能是你用了ado,又没有升级d5和ado造成的!
 
这个问题是你的数据库表的问题(用的是ADO吧!),可能是表的索引有问题!
和Ehlib无关!

Faint!!! 死IE!吃字符!
 
我已经升级了D5和ADO,ADO升级到了PACK2了呀!
 
1、你使用的查询是多表查询吗?如果是的话就会出现这样的错误。
2、如果不是多表查询,有设置键值字段吗?
3、如果有设置键值字段,修改相应数据集的RecordSet.Properties.Get_Item('Update Criteria')的值为AdCriteriaKey($00)

如果再不行,就不知道为什么了。[:D]
 
建主键或唯一索引
 
没有使用查询,主键也设了,但一运行就出现这种错误!
 
可能与某些字段的处理有关,
比如如果将Double作为TDatetime处理有时会有这种情况处理,
详细原因我也不清楚
 
给你一个准确地答案:
原因分析:
是因为你的数据库中的某些字段设置了默认值,客户端数据集修改后和数据库端的数据不
一致造成的。
你可以测试一下,新增加的记录,保存后再修改,就会出现这个错误,不仅在删除时出现。
不管用什么数据库引擎,只要数据库有默认值,在GRID类控件中增加记录后修改,都会
出现这个错误。

解决方法一:
数据库字段不设默认值。
解决方法二:
在数据集的beforinsert或onnewrecord事件中加入对所有需要默认值的字段赋值。
解决方法三:
只对ADO数据集有效。
在数据集的afteropen事件中加入如下语句:
(DataSet as TADODataSet).Properties.Get_Item('Update Criteria').Value := adCriteriaKey;

就OK了。





 
以上很对,我也一直在用EHLIB,不过是2.0的,不知2.1的在哪里可以找到?!
 
用 DiamondAccess 2.0 无此问题。
我已改用DiamondAccess 2.0 ,DELPHI窑洞 有此控件。EHLIB2.1也有。

HTTP://51DELPHI.COM
HTTP://007.MYRICE.COM
 
用DiamondAccess 2.0后,FASTREPORT不支持呀!如何解决?
 
谁说 FASTREPORT不支持呀! 我就是用 FASTREPORT 做报表呀!
 
to VGA,那是不是要改FAST REPORT中的代码呀?
TO Carryon 'Update Criteria' 是什么意思呀?
 
to GXX,你的答案很对,这个问题已经解决了!但EHLIB又出现了新的问题,
我在两个字段中分别加入了记录统计和显示合计金额,在增加记录后,记录数总数
统计可以正常显示,但却不能显示金额合计(SUM),并且在删除记录后,DBGIRDEH中的
会显示出负数来,在增加了新记录后再回到前一个记录,则显示正常,而且在DBGIRDEH
中加入新记录后,两个字段的的显示都正常,怎么才能在新增记录时让它显示正常呢?
 
接受答案了!
 
多人接受答案了。
 
后退
顶部