Append之后post,记录只显示刚增加的那一条,而其实所有记录都在,却不显示,这是为何。我用的是delphi6 + Oracle 8i Lite。
用的是BDE连接/TDATABASE/TQuery。
以前好象哪里见过,当时没在意。
请哪位高手指点一下,谢谢!

解决方案 »

  1.   

    你重新打开一次数据集!Query1.Active:=false;
    Query1.Active:=true;另外,不推荐使用Query的Append方法来添加数据,直接用SQL 的 Insert 语句啊!
      

  2.   

    To pilicat(delphi迷) :谢谢你!
        我知道重新OPEN可以,但是我想知道问题的具体原因及更好的解决办法。
        “直接用SQL 的 Insert 语句”的方法我怕麻烦。因为这样的代码会很多,我是希望尽量用Query的append来解决。
      

  3.   

    仁兄是不是,在新添加的记录还是空的时候就post了,附几个值再post试试!
      

  4.   

    我用的是delphi sql server 试验你说的没有问题存在
    但是不懂oracle 难道是数据库还有区别吗?
    我的试验就是显示所有的数据
      

  5.   

    to delphiseabird(沙鸥):
    不是,全部赋值了才post,中间没有任何异常。
      

  6.   

    to  angle097113(深思不解) :
    谢谢你的实验,那么我也想可能是驱动程序的问题了,我当时用ADO连Oracle 8i Lite,连POST都不行,根本存不进去,所以用BDE,又出这个问题,但是这个程序又非用Oracle 8i Lite。
    我去更新驱动看看。
      

  7.   

    是不是有过滤条件的限制?
    是不是由于以前情况:UpdateRecordTypes的值只有[rtInserted];
    -------
    type TUpdateRecordTypes= set of (rtModified, rtInserted, rtDeleted, rtUnmodified);property UpdateRecordTypes: TUpdateRecordTypes;
      

  8.   

    最后还是我自己搞定了,呵呵我把query换成table,然后给table1.indexfieldnames赋值,问题就解决了,不过在其他数据库上似乎没有出现过这种情况。感谢各位!另外,如果用query,属性框里我找不到indexfieldnames,那query1.indexfieldnames在运行期能用吗?