有关Tquery的modifed的问题(25分)

  • 主题发起人 主题发起人 plwei
  • 开始时间 开始时间
P

plwei

Unregistered / Unconfirmed
GUEST, unregistred user!
在主窗口的onclosequery中有如下代码:
if query1.Modified then
if application.messagebox('修改未保存,保存所做的修改吗?',
'确认对话框',mb_iconinformation+mb_YesNo)=idYes then
query1.Post ;
我在DBgrid1中对一个字段修改后未保存退出时,该语句不能检测到已做
修改。不知何缘因?特向各位请教。
贡献出全部家产。
 
退出dbgrid并未激发onclosequery事件。
 
不我用单步跟踪证实激发了onclosequery事件。
 
老兄: TQuery之Modified is Derived from TDataSet,看一下Delphi的Help吧:
TDataSet.Modified
Indicates whether the current record is modified.
^^^^^^^^^^^^^^^^^^
property Modified: Boolean;
Description
Check Modified to determine if the current record is modified.
^^^^^^^^^^^^^^^^^^
If Modified is True, the current record is modified. If False, the
current record is not modified.
Note: In general, an application need not check the status of
Modified. Properties, events, and methods of TDataSet and its
descendants that modify records generally check this status
automatically and take appropriate actions based on its value.
 
你有打开CACHEUPDATES吗?
有的话, 可以判断query1.UPDATEPENDING
若为真的话,则有UPDATES未保存。
否则相反。
 
这是因为DBGRID更改不能改变QUERY.MODIFIED属性.
 
query可以用来直接modify? 没听说过.
 
query当然可以直接modify,只要query的requestlive设为true就可以.
cytown说的对,DBGRID更改不能改变query.modified属性.
 
query1.RequestLive:=true;
query1.Edit;
query1.FieldByName('tjbz').asstring:='y';
query1.ApplyUpdates;
为何说 "can't modify a read only dataset"
请指教!
 
还没Post就ApplyUpdates了?
 
后退
顶部