如题

解决方案 »

  1.   

    实现的方式很多,是二层还是三层,你可以自已做FLAG来进行控制。
      

  2.   

    能不能象powerbuilder一样,有一个属性,一但被改变,属性就会改变
      

  3.   

    procedure Form1.FormCloseQuery(Sender: TObject;
      var CanClose: Boolean);
    begin
      inherited;
      if Querymain.State in [dsInsert,dsEdit] then
         Querymain.post;
      if Querymain.UpdatesPending then
        if MessageBox(Handle,'当前修改的记录没有被保存,确认退出吗','询问',
           MB_ICONQUESTION+MB_YESNO) = MrYes then
        begin
          CanClose := True;
          QueryMain.close;
        end
        else
          CanClose := False;
    end;
      

  4.   

    tw_cshn(一无所有) :
          不知还要设置些什么,我取table1.UpdatesPending 始终为false
      

  5.   

    你把Table的CachedUpdates设置为true
      

  6.   

    我本来是用QUERY的,现在我试了TABLE完全可以的,具体如下interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Db, DBTables, Grids, DBGrids;type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        Database1: TDatabase;
        Table1: TTable;
        DataSource1: TDataSource;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    begin
      Table1.Active:=true;
    end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      if Table1.State in [dsInsert,dsEdit] then
         Table1.post;
      if Table1.UpdatesPending then
        if MessageBox(Handle,'当前修改的记录没有被保存,确认退出吗','询问',
           MB_ICONQUESTION+MB_YESNO) = MrYes then
        begin
          CanClose := True;
          Table1.close;
        end
        else
          CanClose := False;end;end.
      

  7.   

    用的是dbedit控件
    但我用DBNavigator能判断
      

  8.   

    不过记得,如果要提交的数据库里去,Table1.ApplyUpdates;
      

  9.   

    C/S:用tw_cshn(一无所有)即可,别忘了Table的CachedUpdates设置为true。
    如果是三层,可用ClientDataSet1.ChangeCount>0 来检测。
      

  10.   

    监控 beforepost事件 ,监控数据集状态