DELPHI+ACCESS有什么方法修改记录?
之前一个贴子用UPDATE提问!但不知为什么,就是修改不了!现在想问一下,有什么别的方法吗?不够分再补!

解决方案 »

  1.   

    1)使用ADOTable直接修改,当然要连接
    2)使用ADOQuery调用SQL语句修改,如:
       ADOQuery1.SQL.Text := 'update Man set age = 22 where ManId = 100';
      

  2.   

    刚才在那边回答完了,再跑这边来赚分吧。呵呵。如果是update数据的话,用adoquery1.edit,如果是插入的话用adoquery1.insert,然后再adoquery1.post。这些方法主要是针对dbedit一系列和数据库连接的控件的,如果你想对这些dbXXX的用update的话,那么和显示的那个控件,例如dbgrid,就得用两个adoquery.
      

  3.   

    zhaoxiaohao 大哥!在这里先感谢你在那边的贴上帮了我的忙!以结帖了!
    不过adoquery1.edit的用法不是好明白!假如我的FORM里面用的是EDIT,而不是用dbxxxx那此第三方控件,还有其它的方法吗?
      

  4.   

    不要客气,在csdn里每个人都会尽自己的能力来回答问题的。如果你用的是edit的话,就可以用“update”了,向你的程序,就可以像这样
    adoconnection1.BeginTrans;
     with ADOQuery2 do
      begin
        try
          close;
          SQL.Clear;
          SQL.Add('update table1 set a1='+Quotedstr(Edit1.Text));
          SQL.Add(',b1='+Quotedstr(Edit2.Text));
          SQL.Add(',c1='+Quotedstr(Edit3.Text));
          SQL.Add(' where  ID1  ='+Quotedstr(Edit4.Text));
          execsql;
        EXCEPT
          ON E:EXCEPTION do
            showmessage(sql.Text);
        end;
        adoconnection1.CommitTrans;
      end;至于dbXXX的控件我也很少用,个人感觉因为它直接连接的是数据库,设置了datasource,datasource又连接了ado
    啊,就不多说了。所以你要是想在它上面用“update”的话,就和你显示的dbgrid,不要用同一个adoquery,对于edit,顾名思义adoquery1的数据可以编辑,呵呵。而adoquery1.insert就是使其处于插入状态