procedure TFrmMain.Button8Click(Sender: TObject);
begin
adoquery1.Close ;
adoquery1.SQL.Clear ;
adoquery1.SQL.Add('update  TT_ACCOUNT set FLD_password='''+edit6.text+'''' );
adoquery1.SQL.add(',TT_card='''+edit7.text+'''');
adoquery1.SQL.Add(',TT_answer='''+edit8.Text+'''');
adoquery1.SQL.add(',TT_qu='''+edit9.Text+'''');
adoquery1.SQL.add(',TT_opo='''+edit10.Text+'''');
adoquery1.SQL.add(',TT_thy='''+edit11.Text+'''');
adoquery1.SQL.add(',TT_sex='''+combobox1.text+'''');
adoquery1.SQL.add(',TT_VIP='''+combobox2.text+'''');
adoquery1.SQL.add(',where (TT_NAME='''+edit4.Text+'''');
adoquery1.Open ;
end; 执行后出错,提示:在关键字 where 附件有语法错误!

解决方案 »

  1.   

    装adoquery1.SQL.add(',where (TT_NAME='''+edit4.Text+''''); 
    改为:
      adoquery1.SQL.add(',where tt_name='''+edit4.text+'''');也是一样的错误.谁来帮我看一下啊.1
      

  2.   


    多了一个逗号
    改为:
    adoquery1.SQL.add(' where tt_name='''+edit4.text+'''');
      

  3.   

    adoquery1.Open ; 
    这个也有问题
    adoquery1.exesql;
      

  4.   

    where前多了一个都号,去掉,并且保证where前有空格再有建议对字符型字段赋值时,不要在语句中直接写",而是用 'set FLD_password='+QuotedStr('值');
      

  5.   

    procedure TFrmMain.Button8Click(Sender: TObject); 
    begin 
    adoquery1.Close ; 
    adoquery1.SQL.Clear ; 
    adoquery1.SQL.Add('update  TT_ACCOUNT set FLD_password='''+edit6.text+'''' ); 
    adoquery1.SQL.add(',TT_card='''+edit7.text+''''); 
    adoquery1.SQL.Add(',TT_answer='''+edit8.Text+''''); 
    adoquery1.SQL.add(',TT_qu='''+edit9.Text+''''); 
    adoquery1.SQL.add(',TT_opo='''+edit10.Text+''''); 
    adoquery1.SQL.add(',TT_thy='''+edit11.Text+''''); 
    adoquery1.SQL.add(',TT_sex='''+combobox1.text+''''); 
    adoquery1.SQL.add(',TT_VIP='''+combobox2.text+''''); 
    adoquery1.SQL.add('where (TT_NAME='''+edit4.Text+''''); 
    adoquery1.exesql; 
    end;
      

  6.   

    where前面多了一个逗号!另外执行sql语句不需要返回值的 使用adoquery1.exesql;  否则就用adoquery1.Open。再教你一招 传递参数写法。procedure TFrmMain.Button8Click(Sender: TObject); 
    begin 
    adoquery1.Close ; 
    adoquery1.SQL.Clear ; 
    adoquery1.SQL.Add('update  TT_ACCOUNT set FLD_password = :password); 
    adoquery1.SQL.add('where TT_NAME=:NAME); 
    Parameters.ParamValues['password'] := edit6.text; 
    Parameters.ParamValues['NAME'] := edit4.Text;
    adoquery1.exesql; 
    end; 
      

  7.   

    LZ需要多掌握些SQL基本语法   :)
      

  8.   

    你那语句这样写估计就没错了。当然还有其它的方法,这方法不好。
    procedure TFrmMain.Button8Click(Sender: TObject); 
    begin 
    adoquery1.Close ; 
    adoquery1.SQL.Clear ; 
    adoquery1.SQL.Add('update  TT_ACCOUNT set FLD_password='+ #39 + edit6.text + #39 ); 
    adoquery1.SQL.add(',TT_card='+ #39 +edit7.text+ #39 ); 
    adoquery1.SQL.Add(',TT_answer='+ #39 +edit8.Text+ #39 ); 
    adoquery1.SQL.add(',TT_qu='+ #39 +edit9.Text+ #39 ); 
    adoquery1.SQL.add(',TT_opo='+ #39 +edit10.Text+ #39 ); 
    adoquery1.SQL.add(',TT_thy='+ #39 +edit11.Text+ #39 ); 
    adoquery1.SQL.add(',TT_sex='+ #39 +combobox1.text+ #39 ); 
    adoquery1.SQL.add(',TT_VIP='+ #39 +combobox2.text+ #39 ); 
    adoquery1.SQL.add(',where (TT_NAME='+ #39 +edit4.Text+ #39 ); 
    adoquery1.Open ; 
    end;