DBnavigator似乎不合乎一般的操作习惯?(49)

  • 主题发起人 主题发起人 ynduanlian
  • 开始时间 开始时间
Y

ynduanlian

Unregistered / Unconfirmed
GUEST, unregistred user!
刚才试了下,新增、修改数据库纪录后都要点DBNavigator上的Post按钮提交才行,但是Delete按钮点了以后就提交了,对于Windows普通用户的习惯,很可能搞不清楚究竟什么情况下需要点“提交”。大家是如何处理这个问题的?
 
不是DBnavigator的问题~~你用语句新增、修改后,也要post才可呀~~`
 
但是Delete为什么就直接删除了呢?并不需要点一下Post,这个对于普通电脑用户,很可能搞不明白啊,他会说,我是点了"删除",但没点"保存"啊
 
什么意思
 
看上面红色部分~~
 
请看数据集的源代码procedure TDataSet.Post;begin [red]UpdateRecord;[/red] case State of dsEdit, dsInsert: begin DataEvent(deCheckBrowseMode, 0); DoBeforePost; [red]CheckOperation(InternalPost, FOnPostError);[/red]//这里确认更新操作~~ FreeFieldBuffers; SetState(dsBrowse); Resync([]); DoAfterPost; end; end;end;procedure TDataSet.Delete;begin CheckActive; if State in [dsInsert, dsSetKey] then Cancel else begin if FRecordCount = 0 then DatabaseError(SDataSetEmpty, Self); DataEvent(deCheckBrowseMode, 0); DoBeforeDelete; DoBeforeScroll; [red]CheckOperation(InternalDelete, FOnDeleteError);[/red]//这里确认删除操作 FreeFieldBuffers; SetState(dsBrowse); Resync([]); DoAfterDelete; DoAfterScroll; end;end;procedure TDataSet.CheckOperation(Operation: TDataOperation; ErrorEvent: TDataSetErrorEvent);var Done: Boolean; Action: TDataAction;begin Done := False; repeat try UpdateCursorPos; Operation; Done := True; except on E: EDatabaseError do begin Action := daFail; if Assigned(ErrorEvent) then ErrorEvent(Self, E, Action); if Action = daFail then raise; if Action = daAbort then SysUtils.Abort; end; end; until Done;end;
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部