关于在DBGrid中进行数据的增删改操作有一个问题,有谁解决了这个问题?(100分)

  • 主题发起人 主题发起人 Bkhswrp
  • 开始时间 开始时间
B

Bkhswrp

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的,在DBGrid 中在修改某一个记录的时候,
在一般情况下,鼠标点到另一个记录的时候,那个修改便会自动的Post,我觉得
这样不好,最好是我能控制是Post还是Cancel,或者干脆呢,在修改的时候,
就不能转移到其他记录(这个程序不知怎么控制?)。
 
在DBGrid.DataSource.DataSet.OnBeforePost的事件中写你想要的控制代码,如:
if VarIsNull(DataSet['Name']) then
begin
ShowMessage('名称是必需填写的');
Abort;
end;
 
DBGrid.DataSource.DataSet.OnBeforePost的事件中
begin
if (Application.MessageBox('是否确实POST数据库?','POST',MB_YESNO+MB_ICONQUESTION)=IDNO) THEN
Abort;
end;
 
这个方法我也知道,在OnBeforePost中执行函数,根据Messagedlg不管是更新(Post)
还是取消(Cancel),RecNo都会变成另外一个记录了,我是希望在修改的时候RecNo值
是不能改变的。
 
增加一个database控件,启动事务
 
pengjinlongex:那么,具体怎么做的呢?
 
不能把RecNo先给记录下来,然后再moveto阿?
 
我觉得可以这样做:
在formshow开始一个事务
确认按钮commit
取消按钮rowback
这样你就不用管他怎么操作了。

如果用bde还可以使用cacheupdate方式、
 
多人接受答案了。
 
后退
顶部