insert into 语法错误,请大伙帮忙找下错误,代码如下:         ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Add('insert into sale_info (bookid,number,total,discount,selldate) values('''+edit1.Text+''','''+edit3.Text+''','''+label17.caption+''','''+label13.caption+''','''+datetostr(date)+''') ');
     ADOQuery1.ExecSQL;

解决方案 »

  1.   

    引号太多, 看多容易晕, 下面的你试试。 虽然代码多点, 但比较容易看的懂。  ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add('insert into sale_info (bookid,number,total,discount,selldate) values(:v1, :v2, :v3, :v4, :v5)');
      ADOQuery1.Parameters.ParamByName('v1').Value := edit1.Text;
      ADOQuery1.Parameters.ParamByName('v2').Value := edit3.Text;
      ADOQuery1.Parameters.ParamByName('v3').Value := label17.caption;
      ADOQuery1.Parameters.ParamByName('v4').Value := label13.caption;
      ADOQuery1.Parameters.ParamByName('v5').Value := datetostr(date);
      ADOQuery1.ExecSQL;
      

  2.   

    bookid,number,total,discount 这几个在数据表里估计不是字符吧!如果不是字符,你试一下:ADOQuery1.SQL.Add('insert into sale_info (bookid,number,total,discount,selldate) '+
                     ' values ('+edit1.Text+','+edit3.Text+','+
             label17.caption+','+label13.caption+','''+datetostr(date)+''') ');
      ADOQuery1.ExecSQL;
      

  3.   

    设个断点,把你的SQL语句取出来,放到SQL查询器里执行一下,很快就知道哪错了
      

  4.   

    'insert into sale_info (bookid,number,total,discount,selldate) '
      +' values ('
      + edit1.Text+','
      + edit3.Text+','
      + label17.caption+','
      + label13.caption+','
      + ''''  +datetostr(date)+'''' 
      + ')' + ';' 
      

  5.   

    改用adotable可以了,还是谢谢大家