先是通过条件查询出需要修改的结果,显示在edit框中,然后我用ADOtable 组件,要对数据库的数据进行修改。
adotable1.Edit;
adotable1.Fieldbyname('khbh').value:=edit1.text;
adotable1.Fieldbyname('khmc').Value:=edit2.text;
adotable1.Fieldbyname('djrq').value:=edit3.text;
..
..
adotable1.Post;
可是这样产生的结果是对库里面又增加了一条记录。而不是在原记录上修改。如果设置了khbh为主键,则提示不能插入重复记录。
请问如何解决。是不是要有记录定位的问题呢,请问,如何定位到需修改的记录上呢。我用adoquery查询出需修改的记录。
请教各位。谢谢大家。

解决方案 »

  1.   

    这样不行,如果你要修改,必须实行 绑定,采用 DBEDIT,直接POST就可以了
      

  2.   

    用adoquery查出你要改的记录,然后
    adoquery1.edit;
    adoquery1.Fieldbyname('khbh').value:=edit1.text;
    adoquery1.Fieldbyname('khmc').Value:=edit2.text;
    adoquery1.Fieldbyname('djrq').value:=edit3.text;
    ......
    adoquery1.post
    就行了,但问题是,如果你的adotable定位到了那个记录,你的办法也是对的,呵呵。
    从其它地方找问题吧,如果库中的重复记录是没有意义的,还是先设了主键再说吧。
      

  3.   

    可以了,不知道为什么用ADOTABLE就会出错。用adoquery1就可以。很奇怪。不过问题。解决。谢谢。大家。