sql.add('update xmzaiyan set '+fieldname+'='+quotedstr(x)+' where '+condition+'');
execsql;
运行时出现“UPDATE语法错误!”请教给位高手  

解决方案 »

  1.   

    sql.clear;
    sql.add('update xmzaiyan set ' + fieldname + '=' + quotedstr(x) + ' where ' + condition );
    execsql;
    好像没问题哦!
      

  2.   

    sql.clear;
    sql.add('update xmzaiyan set ''' + fieldname + ''''+'='''' + quotedstr(x) + '''' 
    +'where ' + condition );
    execsql;
      

  3.   

    呵呵。要看fieldname 字段的类型
      

  4.   

    SQL.CommaText的内容是update xmzaiyan set ='male' where xmlxbh is null
    为什么作为过程参数的fieldname丢失了? fieldname为string型 
    procedure a(fieldname:string;control:tedit);
      

  5.   

    建议:showmessage(sql.text)看看,这样才能看出问题
      

  6.   

    你的fieldname 参数没有传递进来,看看你调用a函数的情况,跟踪调试一下
      

  7.   

    我也遇到这样的问题,我用SHOWMESSAGE查看语句
    UPDATE databasename set password='123456' where name='admin' 应该没错呀
    提示UPDATE的语句语法错误.真是奇怪
      

  8.   

    这一句语法是没错的,就看看你控件里边还没有没其它sql 语句了一般用sql.add之前都要sql.clear一下,就会安全了
      

  9.   

    sql.add('update xmzaiyan set '+fieldname+'='''+quotedstr(x)+'''where '+condition+'');
    execsql;
      

  10.   

    注意delphi对单引号的处理,楼上的可以说是对的。还要看condition.
      

  11.   

    sql.add('update xmzaiyan set '+fieldname+'='+quotedstr(x)+' where '+condition+');
    condition是什么样的字符串,请楼主粘出来看看,如果condition格式不正确上面SQL语句是会出错的.