问题是这样的:    我在窗口aa中对表 A 中的字段 a(是一个整数类型) 进行修改,(第一次修改),然后在FORM bb中又修改表A中字段a内容,(第二次修改),然后关闭此窗口,再打开FORM bb,发现字段a的内容并没有并修改,还是保持原来(第一次修改)时的数据,
如果把整个程序关闭,再打开form bb时发现数据已经是变了,
就是说,怎么来使得query中获得数据表中的最新数据?谢谢query的语句如下:
 with query do begin
  close;
sql.add('select * from A')
 open;
end

解决方案 »

  1.   

    你的formbb是自动创建的吧把它从自动创建窗体中去掉
    var 
      BBForm: TFormBB;
    begin
      BBForm := TFormBB.create(Self);
      try
        BBForm.ShowModal;
      finally
        BBForm.Free;
      end;
    end;
    或者你在BbForm中加个按钮,点击按钮时执行读数据的语句或者你在BBForm的onshow事件里读数据应该也行吧
      

  2.   

    修改后,把form bb的数据集close,open一下
      

  3.   

    unit Unit2;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls;type
      TForm2 = class(TForm)
        Button2: TButton;
        Table2: TTable;
        DataSource2: TDataSource;
        DBGrid2: TDBGrid;
        procedure Button2Click(Sender: TObject);
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form2: TForm2;implementationuses Unit1;{$R *.dfm}procedure TForm2.Button2Click(Sender: TObject);
    begin
    table2.Edit;
      table2.Post;
      form1.showmodal;
      form2.Close;
    end;procedure TForm2.FormShow(Sender: TObject);
    begin
    form1.ShowModal;
    table2.Close;
      table2.Open;
    end;end.unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, DBTables, StdCtrls, Grids, DBGrids;type
      TForm1 = class(TForm)
        Table1: TTable;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      table1.Edit;
      table1.Post;
      form2.show;
      form1.Close;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
    table1.Close;
    table1.Open;
    end;end.FORM2为主窗体,可以实现的