请问如何删除数据集内的某条记录而不是从数据库中删除?(40)

  • 主题发起人 主题发起人 星幻子
  • 开始时间 开始时间

星幻子

Unregistered / Unconfirmed
GUEST, unregistred user!
如题,分不多,各位别嫌弃,谢谢先!
 
ClientDataSet中删除,不提交
 
ClientDataSet?我用的是adoquery,楼上所说的不太明白...
 
ado好象有批量更新的,改了最后取消或不提交就行了
 
adoquery1.delete;不要执行,adoquery1.post;//这部是提交,
 
BDE有批量更新,ADO好像没有。adoquery1.post只能在EDIT/APPEND/Insert之后调用,而不能在DELETE后调用。当你没有别的办法的时候,考虑NRID的想法,界面上增加一个ClientDataSet1:TClientdataset,在增加DataSetProvider1: TDataSetProvider;;属性设置:ClientDataSet1.Provider := DataSetProvider1;DataSetProvider1.DataSet := ADOQuery1;DataSource1.DataSet := ClientDataSet1;打开数据ADOQuery.sql.text := 'select * from ...';ClientDataSet1.Close;ClientDataSet1.Open;//然后对ClientDataSet进行任何更改,只要不掉呀ClientDataSet.Applyupdates(-1),那么数据变更就不会提交到数据库。
 
1、不绑定,自然不会提交到数据库。2、回滚事务不刷新。beginTans;adqMain.delete;rollbackTrans;
 
将TADOQuery控件的LockType属性设置为ltBatchOptimistic即可例: ADOQuery1.Close; ADOQuery1.Open;--删除 ADOQuery1.delete;--再打开,你会发现数据库并未删除 ADOQuery1.Close; ADOQuery1.Open;
 
同意楼上,将ADOQUERY设置为缓存更新模式,即把LockType属性设置为ltBatchOptimistic即可。在这种模式下,delete和post并不会把数据集的更新提交到数据库,而是在执行adoquery.updatebatch的时候才真正提交。
 
来自:terry_zhou82, 时间:2009-2-26 17:17:06, ID:3946060adoquery1.delete;不要执行,adoquery1.post;//这部是提交, ----你在胡说吧?
 
他是新手,你就体谅体谅吧,呵呵惭愧!我向高人们学习
 
或者采用中间表
 
多人接受答案了。
 
后退
顶部