初学:保存的怪问题?(100分)

  • 主题发起人 主题发起人 zhanghui127
  • 开始时间 开始时间
Z

zhanghui127

Unregistered / Unconfirmed
GUEST, unregistred user!
我用ClientData.ApplyUpdates(0)保存数据.
每次保存的时候第一条数据总是不能保存的。DataGrid上显示,一刷新就没了。 要从第二条数据开始才能正常保存。 我的错误处理也要从第二条开始才会有效。
这样导致我每次都要输入至少2条记录,第一条废记录。
我的代码:
if (dmdata.cdsAcHistory.ChangeCount>0) then
dmdata.cdsAcHistory.ApplyUpdates(0);
这是为什么?
 
当CachedUpdates为False时, 通过POST直接把数据写入数据库中,
若把CachedUpdates设置为TRUE,调用POST方法后并没有把数据写入库中, 而是存在缓冲区里,此时,你可以通过CANCEL取消数据的更新,要把数据完全写入库中需用ApplyUpdates.
你用post直接保存试试看。
 
老样子!
 
是不是在其他事件写了控制代码。。。。
 
没有写呀!一些数据感知控件而以
 
你是用BDE做的,我想你是不是在插入纪录的时候没有先对UpdateSQL里面主键和那些字段要保存进行设置。
 
我是用ADO的
 
应该是ApplyUpdates(-1);
 
ApplyUpdates(-1) 和 ApplyUpdates(0);
本质上是一样的。 所以也没用。
 
ClientData.ApplyUpdates(-1,0,1)
这个东西建议别用,或者是我不会用,
尝试了很多次,老是有怪问题出现,
总不稳定,
最好的更新方法还是使用SQL语句,最稳妥,
想怎么实现都可以,
基本上可以满足你的要求,
 
还是用SQL吧,最可靠
 
调试多次得出以下规律:
第一次保存系统用ClientDataSet.Post保存。可能是保存在本地,一刷新就没了。
第二次保存系统才会使用ClientSataSet..ApplyUpdates(0).保存到服务器。
这么才能让系统第一次就用.ApplyUpdates 。
 
没有人遇到过这种问题吗?做过三层的兄弟们帮帮忙!
 
后退
顶部