我的表里只有一列数据(类型为int):
 SqL.Add('insert into mytable values(s)');出错
把s(s是integer) 换成 99999 是可以的。
这是什么问题呀?

解决方案 »

  1.   


    //try it
    SqL.Add('insert into mytable values('+s+')');
      

  2.   

    只有一列数据也要把字段写上啊
    如果有integer的话就要转为字符串
      

  3.   

    提示的很有道理!SqL.Add('insert into mytable(你要插入的字段名) values('+s+')');
    如果还报错,就把错误信息一起发上来~~
      

  4.   

    解决了一半了 在参数前 加 ‘:’可以。
    不过 写进去的内容成了 NULL 了 。
    sql.add('insert into mytable values(:s)');这样运行的时候不会报错 。不过写进去的内容是NULL。
      

  5.   

    你这样肯定是NULL的~~
    加:的意思是把S当做一个参数,你后面要对那个参数赋值的。加上这句sql.add('insert into mytable values(:s)');
    Parameters.ParamByName('s').value:=s;   
      

  6.   

    终于解决了 
    with   ADOQuery1   do   
      begin   
          Close;   
          SQL.Text   :=   'select   *   from   artlsbmk   where   Field1=   :Param1   and   Field2=:Param2';   
          Parameters.ParamByName('Param1').Value   :=   'abc';   
          Parameters.ParamByName('Param2').Value   :=   2;   
          Open;   
      end;   
      ADO中的参数没有AsString,   asInteger,全用.Value,   
      参数访问方法都用Parameters.ParambyName('ParamName').Value   
      其它的我没试,先用着吧。参数前要加::而且还要 parameters.ParamByName('').value:='';
      

  7.   

    SqL.Add('insert into mytable values(s)');出错 sql语句的问题
    该为 insert into mytable (列1) values (s)