我的数据库表是Access数据库,用到其中两个表(G_vouch和G_vouchs,G_vouchs是G_vouch的子表
)用的数据库控件是:
两个TADOTable(G_vouchTable->G_vouch表,G_vouchsTable->G_vouchs表)。
两个TDataSource(G_vouchDS->G_vouchTable,G_vouchsDS->G_vouchsTable)。
两个TADOQuery(G_vouchQuery,G_vouchsQuery)。
一个TDBCtrlGrid。
G_vouchsTable的MasterSource是G_vouchDS,MasterFields是isid
TDBCtrlGrid的DataSource是G_vouchsDS
向主表的G_vouchQuery和子表G_vouchsQuery添加数据都是用的Insert命令,现在我插入数
据正常,但是插入数据后两个TADOTable中的数据不好及时刷新,非要程序退出后再进入才
能看到我刚才插入的记录。我不知道是怎么回事,希望大家替我看看是怎么回事。

解决方案 »

  1.   

    TADOTable.Active:=False;
    TADOTable.Active:=True;
    试试。
      

  2.   

    ADOTable.close;
    ADOTable.open;
    ADOQurey.close;
    ADOQurey.open;
      

  3.   

    现在我又发现了一个问题,我用的是
    AOOTable.Active := False;
    Sleep(3000);
    ADOTable.Active := True;
    ADOTable.Refresh;
    的方法,现在我重新打开表之前需要延时3秒,然后再打开,刷新就正常了,如果我不延时,那么刷新记录也是不正常。
    不正常的表现为:当插入2到5条左右的记录后,才能正常显示我插入的记录。
      

  4.   

    TADOTable.Active:=False;
    TADOTable.Active:=True;
    把数据集关闭再击活就好了
      

  5.   

    你直接在G_vouchsTable和G_vouchTable中用Insert插入数据就行了
    干吗要到Query中操作呢
    直接在Table中操作,只要Active为True,它就会自动刷新了,不用再进行其它辅助的操作了
    如果是在Query中操作的,则一般要先Close再Open