譬如一个表aa,包括以下字段(全为数字型):
a1   a2   a3
1    2    
2    2
要求a1+a2并赋值于a3,以下sql写法有何错误:
update aa set a3=a1+a2

解决方案 »

  1.   

    With ADOQuery1 do
     begin
      Close;
      SQL.Clear;
      SQL.Add('Update aa Set a3=a1+a2');
      ExecSQL;
     end;
      

  2.   

    With ADOQuery1 do
     begin
      Close;
      SQL.Clear;
      SQL.Add('Update aa Set a3=a1+a2');
      ExecSQL;
     end;
    就是这么写的,但是加出来a3全是空值
      

  3.   

    你的query有没有设置autocommit??
      

  4.   

    没有,但是我试过以下语句:
    With ADOQuery1 do
     begin
      Close;
      SQL.Clear;
      SQL.Add('Update aa Set a3=a1');
      ExecSQL;
     end;
    成功!
      

  5.   

    你在加一个commit试试?邪了!
    With ADOQuery1 do
     begin
      Close;
      SQL.Clear;
      SQL.Add('Update aa Set a3=a1+a2');
      ExecSQL;
      Commit;
     end;
      

  6.   

    我这边测试通过了create table AB
    (
      A NUMBER,
      B NUMBER,
      C NUMBER
    )
    以下为代码
      with adoquery1 do
      begin
        close;
        sql.Add('Update ab Set c=a+b') ;
        execsql;
      end;
      

  7.   

    老大!咱俩建的表一样的呀!
    sql.Add('Update ab Set c=a') 能得出结果
    sql.Add('Update ab Set c=a+b') 得到的确实空值
    win2000+d5+access
      

  8.   

    表是开着的!但是
    sql.Add('Update ab Set c=a') 能得出结果
    sql.Add('Update ab Set c=a+b') 得到的确实空值
      

  9.   

    你的意思是把表关掉吧!但
    sql.Add('Update ab Set c=a') 能得出结果,怎么解释!?
      

  10.   

    把表关掉,连那个数据库都关掉,(access可以留着)
    我以前做ASP的时候有过同样的问题
      

  11.   

    对不起,刚才吃饭去了
    我用的oracle都可以
      

  12.   

    老大,的确有空值!
    服了you!立刻送分!谢谢两位老大!