大家帮我看看这条语句
query1.SQL.ADD('update dbda set dba='01'');
我在SQLServer查询分析器里执行update dbda set dba='01'没问题,在delphi里执行就提示我missing operator or semicolon,我没漏掉分号

解决方案 »

  1.   

    query1.SQL.ADD('update dbda set dba=''01''');少了2个'号
      

  2.   

    建议写成:
    query1.SQL.ADD('update dbda set dba=' + QuotedStr('01'));不然碰到: 
    'select ... where ' + edit1.text + '=''' +edit2.text + '''' 这样的就更容易乱套了
      

  3.   

    难倒很多人?
    query1.SQL.ADD('update dbda set dba='01'');
    你把编译器的背景换成 Twilight  这样 你就可以 方便的看出哪出错了
      

  4.   

    应该是''01'' 就可以了吧,在delphi字符里'' 代表一个单引号.
      

  5.   

    query1.close;
    query1.sql.clear;
    是不是前面差了这两句
      

  6.   

    query1.SQL.ADD('update dbda set dba=' + QuotedStr('01'));再加 ADOQuery1.ExecSQL;
      

  7.   

    “一个难倒很多人的简单问题”!!!
    楼主,说话真搞笑!难倒很多人了你还问?
    跟你说个好方法,不会错的!
    query1.SQL.ADD('update dbda set dba='01'');
    如果dba是整型就直接写'update dbda set dba=1'
    如果dba是字符型就直接写
    sqltext:='update dbda set dba=%s';
    query1.SQL.text:=format(sqltext,['01']);
      

  8.   

    query1.SQL.ADD('update dbda set dba=''01''');
      

  9.   

    吵架解决不了问题。
    教人的避免居高临下;
    楼主学习也稍微虚心点;
    over
      

  10.   

    chewang() ( ) 信誉:100    Blog  2007-01-05 16:07:14  得分: 0  
     
     
       呵呵,我是菜菜鸟,但我也要鄙视那些进来说风凉话不给解决问题的人
      
     
    沙发就给解决了我们没事干了只能说说风凉话了=_=!
      

  11.   

    团结才能提高,才能做成大事, 呵呵! 
    对于楼主的问题,我本人一向不赞成这样的做法,尽量使用参数来解决:
    Parameters.ParamByName('dba').Value:='01'
    这样做的好处是避免混乱,因为 ' 符号是字符串的引用符号,同时也是转义字符。这样在写SQL语句的时候会造成混乱。同时也不安全,例如,dba=''01'' or dba<>''  如果用在登录上,你的代码就形同虚设了,所以 我建议楼主不要怕麻烦 ,很规范的用参数来写
      

  12.   

    补充说明,如果你的字段是text类型的,那么在保存带有sql保留字的时候就会报错,例如从word文档中的内容,或者html脚本 等等。这些都需要通过参数来保存,否则会保存不进去! 完毕!×××××××××××××××××××××××××××××××××××
    祝楼上各位07年开开心心,万事顺利。
      

  13.   

    query1.SQL.ADD('update dbda set dba=01');
      

  14.   

    query1.SQL.ADD('update dbda set dba='+#39+'01'+#39);
    请注意习惯用转义字符# 代替单引号 ', #39是'
    eg.    SQL   EXEC PR_SELL ''
    query1.sql.add('exec pr_sell '+#39#39;
      

  15.   

    少了右括号
    query1.sql.add('exec pr_sell '+#39#39);