我用的Access2000数据库,
当我对数据库中的一个表进行了添加后,立即读数据时不能读到刚保存的数据!
要等上几秒钟才可以读出!
为什么呀?代码:
procedure TfrmDepartmentSet.RzBtnAttributeClick(Sender: TObject);
begin
  if tv1.Selected=nil then
  begin
    Application.MessageBox('请选择要编辑的部门!','错误',MB_ICONERROR+MB_Ok);
    Exit;
  end;
  if TreeUtil.getSelNodeIndex=0 then
  begin
    Application.MessageBox('根目录不能进行此操作!','错误',MB_ICONERROR+MB_Ok);
    Exit;
  end;
  AddFlag:=False;
  SupDepartName:=tv1.Selected.Parent.Text;
  SelDepartID:=TreeUtil.getSelNodeIndex;
  frmDepartInfo:=TfrmDepartInfo.Create(Application);//在这个创建的窗口中向部门数据库中添加了一条消息
  frmDepartInfo.ShowModal;
  TreeUtil.FillTree;//这是一个TreeView控件,实现与数据库关联!
end;可是,重新刷新的TreeView中没有刚添加的数据,要等上几秒再刷新才可以读到数据!各位高手请问为什么呀?是数据库问题还是我的程序有问题呀?

解决方案 »

  1.   

    估计是你的程序其他地方的问题测试数据如下
    access中有一个表Table1 id自动编号, name文本
    利用ADO连接界面上有一个DBGrid1用来显示表中的数据
    和TDBGrid关联的DataSet是ADOTable1插入数据是用ADOQuery1插入数据后马上刷新就能显示出数据
    代码如下:
    --------------------
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Grids, DBGrids, DB, ADODB;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        ADOTable1: TADOTable;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      with ADOQuery1 do
      begin
        SQL.Clear;
        SQL.Text := 'Insert into Table1(name)';
        SQL.Add('Values(:name)');
        Parameters.ParamByName('name').Value := FormatDateTime('YYYY-MM-DD HH:NN:SS.ZZZ', Now);
        ExecSQL;
      end;
      with ADOTable1 do
      begin
        Close;
        Open;
      end;
    end;end.
      

  2.   

    你碰见的情况和我一样,我是用adoTable读取数据,来做插入操作,没有办法,我前几天才发了类似的帖子,只能这样,
      

  3.   

    我用adoTable读取数据要等,但是用Adoquery却马上可以,不知道为什么
      

  4.   

    To:slipsun(永远的菜鸟)
    可是我的系统中其他地方也要用到数据源的,断开后其他的所有调用的地方不是都断开了嘛?