用过DBGridEh的兄弟请进!(分数好商量!在线等待)(200分)

  • 主题发起人 主题发起人 sundart
  • 开始时间 开始时间
S

sundart

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是SQL Server 2000
{从Form中选择一条数据插入当前表中}
{QueryList.SQl的值为: Select * From #TabelList}
with Form do
try
ShowModal;
if ModalResult = mrOK then
begin
QueryList.Insert;
QueryList.FieldByName('ID').Value := QueryView.FieldByName('ID').Value
...
Post;
end;
finally
Free;
end;

我使用了临时表操作数据,程序执行到Insert的时候,
会触发一个异常:
忽略了数据库名称‘TNCC’,将引用Tempdb中的对象。
经过跟踪发现是DBGridEh的合计功能造成的。当数据改变时,它会执行ReCalcAll过程。
就是这个过程触发了异常。不用合计项就没事。
我用DBGridEh是要是因为它的合计功能,尤其是它的合计项是表格线状的
不象DxExpress控件是3D效果。看起来很清爽。
请问各位大师们有何解决办法?
 
其实也没有什么大的问题,我以前改过它,他的合计功能其实就是利用DBGridEh所对应的DataSet的几个记录改变的相关事件.
当触发这个事件时循环所有记录,要真正的改掉这个问题比较麻烦,
我的主页上有一个字段值纵向统计的控件你可以看看,不过它的原理和DBGridEh差不多,只是它是一个非可视控件.
http://www.aidelphi.com
"一个对数据集指定字段进行纵向统计的数据感知控件"
 
谢谢aizb,
其他大虾的意见呢?
 
先屏蔽DBGridEh1.OnSumListRecalcAll事件:
DBGridEh1.OnSumListRecalcAll:=nil;
insert后恢复:
DBGridEh1.OnSumListRecalcAll:=DBGridEh1.SumList.OnRecalcAll;
 
没用过,不过如果这是它的固有缺点,为什么一定要解决他呢,绕过去吧!
换个东东是好办法
 
forgot2002兄的办法可能行,等我晚上试试看。
其它大虾有无更合理的解决办法。
另DBGridEh目前最稳定的版本是多少?我用的是2.0
我到网上查找了一下,有2.4a的,但它居然不向下兼容,
去掉了一些属性(比如颜色无法改变了,绿色多难看啊)。
 
加个TRY不就得了,我就干过。
 
//加个TRY不就得了,我就干过。
PPMouse兄,加个Try,固然可以屏蔽掉异常。
但却不是最好的解决办法。
 
//屏蔽DBGridEh1.OnSumListRecalcAll事件:
//DBGridEh1.OnSumListRecalcAll:=nil;
这个方法经过实验,也不行。依然会执行RecalcAll过程,而引发异常。
 
多人接受答案了。
 
后退
顶部