具体的一段代码如下:
      SQL.Add('update users set PASSWORD=:PASSWORD where USERID=:USERID');
      Parameters.Paramvalues['USERID']:= GlobalData^.SUserID;
      Parameters.Paramvalues['PASSWORD']:=edtNewPassword.Text;
请帮我解释一下这种写法

解决方案 »

  1.   

    SQL.Add('update users set PASSWORD=:PASSWORD where USERID=:USERID');
          Parameters.Paramvalues['USERID']:= GlobalData^.SUserID;   //一个结构里面的值
          Parameters.Paramvalues['PASSWORD']:=edtNewPassword.Text;  //edit里面的值
      
        后面两句给password和userid两个变量复制。
      

  2.   

    怎么每次运行到这里就提示update语法错误,跟这种写法应该没有关系吧
      

  3.   

    估计是GlobalData^.SUserID的错误,你把错误信息贴出来看看就知道了。估计不是sql的语法错误。
      

  4.   

    错误信息:
     Project abc.exe raised exception class EOleException with message 'UPDATA语句的语法错误。'Process stopped.user Step or Run to continue.
      

  5.   

    那你改成下面这个试试:
    var
      sql: string;  sql:= format('update users set password=''%s'' where userid=''%s''',[GlobalData^.SUserID,edtNewPassword.Text]);
       SQL.Add(sql);
      

  6.   

    是不是你SQL.Add('');前没有SQL.clear;啊?你都试试吧。晕
      

  7.   

    var
      sql: string;  sql:= format('update users set password=''%s'' where userid=''%s''',[GlobalData^.SUserID,edtNewPassword.Text]);
       SQL.Add(sql);这个当中有类型不匹配的问题 TStrings和String
      

  8.   

    with adoquery do
     begin
      close;
      sql.clear; 
      SQL.Add('update users set PASSWORD=:PD where USeriD=:UD');
          Parameters.Paramvalues['UD']:= GlobalData^.SUserID;
          Parameters.Paramvalues['PD']:=edtNewPassword.Text;
      sqlexec;
    end;
      

  9.   

    QQdelphi群:3010355
    有问题一起讨论,有困难一起克服,共同学习,共同进步(仅限delphi)
      

  10.   

    我也碰到一模一样的问题,不是语法的错误。我的环境是d7+access
    password字段去掉试试,就好了,因为password好像是关键字,不能使用的。