我用ADOQuery查找到了一个结果集,用DBNavigator指示其中一条,并用DBEdit显示当前的记录!问题有二:
1.用DBNavigator指示时,指示第一条时,首记录导航并未变成灰色;指示最后一条记录时,末记录导航出现同样情况!
2.我修改DBEdit中的数据,以修改当前记录,当不知道如何让它修改当前记录;也不知道如何删除当前记录!
各位大哥救救我!!

解决方案 »

  1.   

    1、要在按一次“后退”。
    2、第2个问题你在说什么啊?既然都用dbedit显示出来了,直接修改啊。
    修改完了在dbnavigator上单击post不就完了?不过建议别用dbnavigator
    还是自己写代码吧。也不要用dbedit直接显示和修改数据,作多了你就知道不好办啦。
      

  2.   

    建议直接用代码写吧,   VAR Q: TADOQUERY
       //
       给
       Q。FIELDS[0]直接赋值是否可以??
       用
      Q。FIRST,
      Q。NEXT
      等切换当前记录。
      

  3.   

    1、dbnavigator就是这样,你再点一次“前一条”就行啦。
    2、我不太明白你的意思。如果是修改一条纪录,直接用adoquery.post
    就是更新当前纪录啊,为什么你会更新所有纪录?是什么意思?如果是
    cacheupdate也只会更新修改过的纪录啊。
      

  4.   

    我已经明白的一点了!
    但是对于第二点:我是用dbnavigator指示当前记录位置,而用dbedit显示记录字段内容,然后在dbedit里修改,用adoquery与数据库相连。问题出在由于我对当前记录的所以字段都可以做修改,而没有一个查询条件了,所以都修改了!我当时是这样写的:
    SQL.Add('Update BookInf set Author=:p0,Type=:p1,Name=:p2,PH=:p3,ISBN=:p4');
    如果我要对该记录的所有字段都能进行修改我应该怎么做?
      

  5.   

    SQL.Add('Update BookInf set Author=:p0,Type=:p1,Name=:p2,PH=:p3,ISBN=:p4');
    所有字段就所有都加,我前边有个贴子是专门用来解决多个字段的更新问题,可以达到50多个,解决问题的方法其实就是三种:
    利用存储过程,但是参数还要你一个一个的给,SQL Server 没有数组这个概念
    利用Update or FieldByName更新;也是一个一个的给值;
    再就是用控件数组,但是所有的都要在设计期做好,改变不是很容易;
    当时,忧悠用了另一种方法,但是我觉的不是很好;