http://www.delphibbs.com/delphibbs/dispq.asp?lid=1509781
快点给分!!完美的解决办法!删除记录的旧值很难取的啊!!搞了半年一不小心,原来如此!
原问题是ADO记录删除后,访问删除记录的值???
好东东自然应该共享,UP者有分让更多的人共享
=============================================
问了好久,无果!!今天装了个VB6发现可以,我就不信号称VB KILLER的DELPHI搞不定!!!
在D6+SQL SERVER WIN2K环境下测试用如下代码定可实现!!
结论如下:在正常情况下,设置ADO记录集的DisableControls后就可以在不更新可视控件的
状态下访问记录集!!但是我们访问删除记录不行!!可能是delphi的DBGRID里面或FIELD里
面管理有点BUG(问题)!!而导至在记录集DisableControls时,GRID控件有刷新动作!!下面代码最重要的是
self.DBGrid1.DataSource:=nil ;我发现如果用了DATAGRID绑定后就不能正常访问了!!其他
普通的DBEDIT,DBCHECKBOX绑定没什么问题!!
VAR TT:STRING;
begin
self.ADODataSet1.DisableControls ;
SELF.ADODataSet1.FilterGroup:=fgPendingRecords ;
SELF.ADODataSet1.Filtered:=TRUE ;
//LockWindowUpdate(self.Handle);
self.DBGrid1.DataSource:=nil ;
SELF.ADODataSet1.First;
WHILE NOT SELF.ADODataSet1.Eof DO
BEGIN
//
TT:=string(SELF.ADODataSet1.Recordset.Fields['xssl'].OriginalValue) ;
tt:= string(self.ADODataSet1.FieldByName('xssl').OldValue) ;
showmessage(tt) ;
SELF.ADODataSet1.Next ;
END;
self.ADODataSet1.EnableControls ;
self.ADODataSet1.Filtered:=false ;
self.DBGrid1.DataSource:=self.DataSource1 ;
//LockWindowUpdate(0);
附原问题!!
问问:<< ADO记录删除后,访问删除记录的值???
=========================================
在ADO的ltBatchOptimistic模式下,DELETE 删除记录后!!
在UpdateBatch() 之前!!我想得到当前记录的旧值;
self.ADOQuery1.FilterGroup:=fgPendingRecords;
self.ADOQuery1.Filtered:=true;
SELF.ADOQUERY1.DisableControls;
adoquery1.First;
with adoquery1 do
while not adoquery1.Eof do
begin
case adoquery1.UpdateStatus of
usModified: begin
showmessage(fieldbyname('wzmc').OldValue) ;
end;
usDeleted:begin
showmessage(fieldbyname('wzmc').OldValue) ; //这句不行了???
end ;
SELF.ADOQUERY1.EnableControls ;
我怎样访问删除记录的值的!!上面的方法能够得到删除记录的状态,但是得到不
具体的值!!
好象是ADO的问题!!但是隐约记得VB6好象可以的!