首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

ADO 数据库应用有关问题

2013-12-02 
ADO 数据库应用问题楼主好!问题是这样的,我在form1里添加了一个ADOTable1、一个ADOQuery1、一个DataSource1

ADO 数据库应用问题
楼主好!问题是这样的,

我在form1里添加了一个ADOTable1、一个ADOQuery1、一个DataSource1和一个DBGrid。

数据库是Access的mdb数据库,数据库有两个表(账单表、账单明细表)和一个查询(根据两个表连接得来)query1。

设置ADOTable1的table name属性为查询query1.
设置DataSource1的DataSet属性为ADOTable1;
DBGrid的datasource属性设为DataSource1

ADOQuery1的sql语句为在账单明细表里添加一记录。

问题是我通过ADOQuery1往账单明细表里添加记录后运行ADOTable1->ReQuery();,DBGrid并不显示新记录。
用ADOTable1->Active=false;ADOTable1->Active=true;替换ADOTable1->ReQuery();也不行。

但是我另外加了一个TButton1,利用TButton1去运行ADOTable1->ReQuery();DBGrid却可以显示新记录。

后来我又做了一个测试,我通过ADOQuery1往账单明细表里添加记录后,马上点TButton1(时间控制在1-2秒内)刷新记录,结果是DBGrid没有显示新记录。

哪位高手给解释下什么原因?或有什么解决办法?

感激不尽!!!!!!
[解决办法]
你需要使用一个ADOConnection控件,ADOQuery和ADOTable通过它来和数据库连接,否则的话会有延迟,除非同一个控件实现刷新,比如:
  ADOTable1->Insert();

  ADOTable1->Append();
插入的数据就不需要刷新了
[解决办法]
解决这一问题蜷在ADOConnection控件上了,用它可以避免所有延迟不管如何用ADOTable还是ADOQuery都不会有延迟,并且避免了这些控件逐个设置数据库连接的麻烦

热点排行