如何得到TClientDataSet的Delta的修改标志(100分)

  • 主题发起人 主题发起人 twosunsun
  • 开始时间 开始时间
T

twosunsun

Unregistered / Unconfirmed
GUEST, unregistred user!
我用TClientDataSet取一个视图的数据,可以对其进行修改和增加,保存可以成功,但删除的保存数据库失败。我看了一下服务端提交的SQL,是因为删除句的where子句包含了多个表,所以不能成功.
我不想用SQL语句实现删除,所以请教大家有没有办法,可以实现删除的功能
 
我想了几种办法,一、在服务器端得到提交的SQL语句,对其进行部分加工。我已经可以得到此语句,但无法判断那个字段是我们不需要的,所以就没有继续进行。
二、在客户端得到所有的修改,手动生成更新SQL语句,可以得到所有被修改的行,用语句:cdsSave.data:=cdsc.delta得到,但不能得到这些数据的修改状态,是编辑、增加还是删除。
 
cdsSave.data:=cdsc.delta
cdsSave.first ;
while not cdsSave.eofdo

begin

if cdsSave.UpdateStatus = usDelete then
begin
//Todo
list
end;

cdsSave.Next ;
end;
 
我试一下,谢谢!我没有想到竟然这么简单。我一直认为这个修改状态由cdsSave.data:=cdsc.delta这条语句之后就会丢了,还以为只有分析cdsc.delta才能得到呢?
 
接受答案了.
 
to张无计 ,谢谢,我已经按您说的方法,得到了我要的状态,分数已经给了
 
后退
顶部