共享::谁说不可以!!!!<< ADO记录删除后,访问删除记录的值??? (20分)

  • 主题发起人 wiseinfo
  • 开始时间
W

wiseinfo

Unregistered / Unconfirmed
GUEST, unregistred user!
原问题是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好象可以的!
 
直接用 asstring
showmessage(fieldbyname('wzmc').Asstring)
 
jsxjd,ASSTRING得到的是空值;
 
jsxjd,有你在,应该没问题吧!
 
我以前是用触发器的,没太注意这个问题!!现在因为涉及到保密,就把他放到EXE前端里面,
可是................
只有保留删除触发器的代码了!
~~~~
 
肯定不是ADO的问题,看看帮助就知道了。
 
删除和修改应该是两回事。
为什么删除后又要来找?
那就在删除前保存一下。
 
JXCID 我用的时批更新!!
UpdateBatch
我是当用户修改删除完毕后统一更新!!
usModified: begin
showmessage(fieldbyname('wzmc').OldValue) ; 修改的记录可以得到正确的值,
但是删除的记录会出错!!有没有办法???
我现在用触发器解决这个问题!!
还用一种把那删除记录的关键字保存在临时的地方,但是这种要写些代码!!

 
在提交前不要删除,只是记录要删除记录的ID,
在真正提交前再发一条 delete 命令。
 
呵呵~~~

那些我都知道!!!
 
另外保存一文件如何?
 
请参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1071302


别忘了给分哦
 
wbtvc,那里面也没有解决的!!
 
UpdateRecordTypes=rtDeleted
不过是TBDEDataSet的属性
 
顶部