你用SQL Monitor跟踪一下,是由什么原因导致出错了。Cache出错,往往都是SQL语句出了问题。

解决方案 »

  1.   

    我记得我也遇过(error message:"end of table"),刷新一下如何?
      

  2.   

    3fly的方法没看懂。用ApplyUpdate是为了将数据保存到库。怎么刷新呀?鼓励一下:5分
    chechy的方法值得一试! 15分
      

  3.   

    今天都12月4号了,jiaoheu(桔子香水) 你还会看这张帖子吗?
    你的错误是"end of table"吗?如果是,看你的“出错条件”
    1。a.对一个表先删除掉一条或若干条记录,b.然后再增加一条不符合要求的记录。c.此时应用ApplyUpdates肯定会报错。d.当回去将刚才增加的记录改正再应用ApplyUpdates时,程序还是报错。对表的修改不能保存
    在步骤c和d之间刷新表(dataset.refresh),就OK了
      

  4.   

    3fly(三飞):我的程序在c和d之间报错内容是:raised exception class EDBEngineError with message 'Record/Key deleted.'
    我试着在c和d之间加入了一条dataset.refresh 可是程序不能执行这句命令。
    我又试着加入Query.close;
                Query.open;
    此时,数据集又进入了删除之前的状态。
    另外,对于缓存更新,不知道数据是如何存放的?我猜出错的原因可能是:删除记录是删的缓存中的记录,当增加一条错误记录进入缓存后进行ApplyUpdates。程序报错,这时缓存中的数据存放已经错乱(不好意思,找不到专业的词了),如果再将原来的错误项改正再ApplyUpdates时,缓存不知道此项该保存到哪里了