Delete后面是不必又Post的,因为Delete自动改变了当前数据,执行了Post。但是你要ApplyUpdates()提交到远程数据库 你如果用的数据库是Sql7.0或是ACCESS,在7.0中有时候对于添加和原有数据完全一样的一条数据不会出现差错,但删除的时候会告诉你因为记录重复无法定位,就是你“update affected more than 1 recored”的所叙述的异常。 如果是Sql Server2000就不会有这样的问题,因为如果有这样的问题的话,不会等到你ApplyUodates的时候才发生的。
用SQL语句删除吧: delsql:='delete * from table where 要删除的记录=xxxx' With Query1 Do Begin Close; SQl.Clear; SQl.add(delsql); ExecSQL; End;
clientdataset.delete;
clientdataset.post;
或
clientdataset.ApplyUpdate(-1);
如果你clientdataset.delete
只是在本地内存中删除,实际远程数据库并没有删除
出现错误是:
clientdataset not Edit or insert mode ?
出现的错误是
update affected more than 1 recored?
出现错误
affect more than 1 record;
你如果用的数据库是Sql7.0或是ACCESS,在7.0中有时候对于添加和原有数据完全一样的一条数据不会出现差错,但删除的时候会告诉你因为记录重复无法定位,就是你“update affected more than 1 recored”的所叙述的异常。
如果是Sql Server2000就不会有这样的问题,因为如果有这样的问题的话,不会等到你ApplyUodates的时候才发生的。
delsql:='delete * from table where 要删除的记录=xxxx'
With Query1 Do
Begin
Close;
SQl.Clear;
SQl.add(delsql);
ExecSQL;
End;