sqlserver2000
表如下
id varchar 3 主键
naem varchar 20
在表格中使用Query.Append,追加一条记录时会自动把以前的某条记录给隐藏掉,
如果使用了缓存更新和updatesql就不会出现这样的情况,但我那几张表不想使用缓存更新
请指教

解决方案 »

  1.   

    代码很简单,就是在formcreate的时候
    query.open;
    query.append;
    增加一条记录后,按键盘的下键头不是可以自动提交记录并且在末尾增加一条新记录嘛,就出现了前面的问题了,我试着加了一个post,再append,也是一样的效果
      

  2.   

    请你们留个email或者QQ,我把DB和程序发给你们看就知道了
      

  3.   

    CTMD的,不晓得是哪个地方出了错
    dcc60.dll是个啥子鸟DLL(delphi),我现在遇到一个奇怪的问题,老是这个鬼dll出错,而且窗体关闭后,很多时候鼠标会出现忙的状态,就像在查询数据库一样,但是又可以点击其它按钮等,就像是正常的一样,只是光标显示得不正常
    我开始以为是FormShow中执行了这两个查询
    ExecSQLQuery(QueryGuest,SysParams.DB,'Select * From walkin');
    ExecSQLQuery(QueryDisplay,SysParams.DB,'Select roomno,name,id,idcardno From walkin');
    屏蔽过后,运行时一切正常,加上那两句查询的,有时运行正常,有时又出问题,操TMD的,越弄越冒火,机器也换了几台了,就是找不出问题,哪位大哥帮帮忙
      

  4.   

    一定是主表还没有提交,,哈哈,,,我以前有这个问题,,你是不是用主从表呀。。
    工mastertable.post....后才能对从表增加就不会错。。
      

  5.   

    你是说数据库的记录丢了,那不可能!
    如果是当前要保存的之前肯定没有updatebatch或是post
      

  6.   

    如果用SQL SERVER 2000就不要用BDE,是不支持得。
      

  7.   

    你用的是主从表了,我以前也遇到同样的问题,追加记录时要保证已经打开主从表,post以后再刷新就可以看到所有相关连的记录!
      

  8.   

    就是存在这样的问题,只是表面上被隐藏了,实际上并没有消失,post之后就又出现了我们全改用缓存更新了
      

  9.   

    按理不会有问题,最有可能的就是大家说 的没有post拉,帮你顶
      

  10.   

    post是肯定了的
    button1按钮
    query1.append;
    然后在表格dbgrid中进行编辑,再按键盘上的下箭头,那条记录就不见了,按箭头的时候不是默认提交吗?而且数据库中也确实存在该条记录了,只是被隐藏了,我用的不是主从表,就是一个单表。
    后来又用一个按钮来专门post,问题依然,只有使用缓存的时候才不会出现这样的问题,但是我有时需要使用的paradox本地表又不支持缓存更新?
      

  11.   

    对于本地数据库,不会出现这种情况,只有当使用的是SQLServer等大型数据库的是否会出现这种情况。我的一贯做法是使用换存提交数据。即:
    将Query的CachedUpdates设置成True,然后放一个TUpdateSQL,让Query的UpdateObject为TUpdateSQL控件,然后with Query do
    begin
      append
      FieldByName('a').asstring:=.....
      ...........
      Post;
      try
          ApplyUpdates;
          CommitUpdates;
      except
          Cancel;
          CancelUpdates;
      end;
    end;