with adoquery do
begin
      fieldByName('name').asString:='new_name';
end;
adoquery.post;
这样提交总是出异常,说非空字段不能更新为空,是不是要把所有的字段都更新才能post ?单独更新某个字段怎么实现?????

解决方案 »

  1.   

    你应该有的字段是为NOT NULL的..
    不然不会提示的..
      

  2.   

    begin
          open;
          insert;
          fieldByName('name').asString:='new_name';
          post;
          close;
    end;
      

  3.   

    应该是
    QUERY.SQL.TEXT:='UPDATE YOUR_TABLE SET F1=:F1 WHERE F2=:F2';
    QUERY.PARAMBYNAME('F1').VALUE:=AA;
    QUERY.PARAMBYNAME('F2').VALUE:=BB;
    QUERY.EXECSQL;
    大概这样子了,
    好久没写了,
    就是这个意思。
    你的做法是不行的。
    除非,你查处的记录是你要修改的。
    然后可以对要更新的字段更新。
      

  4.   

    可我是用的
    adoquery.edit;
    with adoquery do
    begin
          fieldByName('name').asString:='new_name';
    end;
    adoquery.post;
    很多人都说这么修改记录,可总提示出异常,说非空字段不能为空,问题是我没更新那个字段啊,原来的值不会保留么?