adoquery3.SQL.Clear;
      adoquery3.SQL.Add('Update Adm');
      adoquery3.SQL.Add('set Adm_Role = :A');
      adoquery3.SQL.Add('where Adm_Role = :B');
      adoQuery3.Parameters.ParamByName('A').Value := dbedit1.Text;
      adoQuery3.Parameters.ParamByName('B').Value := PriviorName;
      adoquery3.ExecSQL;
我想更新Adm表中Adm_Role列的值为PriviorName的记录,使它的值变成dbedit1.text中的内容,但是调试时发现尽管dbedit1.text和PriviorName有值,但是没有传给A和B,究竟是怎么回事?是不是要将dbedit1.text和PriviorName改成常量才行

解决方案 »

  1.   

    dbedit1.text和PriviorName都是string类型,Adm_Role是varchar类型,应该行的呀,怎么回事啊?
      

  2.   

    1      adoquery3.SQL.Clear;
    2      adoquery3.SQL.Add('Update Adm');
    3      adoquery3.SQL.Add('set Adm_Role = :A');
    4      adoquery3.SQL.Add('where Adm_Role = :B');
    5      adoQuery3.Parameters.ParamByName('A').Value := dbedit1.Text;
    6      adoQuery3.Parameters.ParamByName('B').Value := PriviorName;
    7      adoquery3.ExecSQL;
    你把第5行的dbedit1.text 换为edit1.text试试
      

  3.   

    adoquery3.close;
          adoquery3.SQL.Clear;
          adoquery3.SQL.Add('Update Adm');
          adoquery3.SQL.Add('set Adm_Role = :A');
          adoquery3.SQL.Add('where Adm_Role = :B');
          adoQuery3.Parameters.ParamByName('A').asstring := dbedit1.Text;
          adoQuery3.Parameters.ParamByName('B').asstring := 'PriviorName';
          adoquery3.ExecSQL;
    这样试试。
      

  4.   

    dbedit1.Text;
    PriviorName;问题可能出这两个,你换其他值试一下,再检查一下这两个值。
      

  5.   

    楼上的PriviorName是变量,谢谢
      

  6.   

    adoquery3.close;
    adoquery3.Clear;
    adoquery3.SQL.Text:='update Adm set Adm_role='''+trim(dbedit1.text)+''' '
                      + 'where adm_role='''+priviorname+''' ';
    adoquery3.ExecSQL;
      

  7.   

    adoquery3.close;
          adoquery3.SQL.Clear;
          adoquery3.SQL.Add('Update Adm');
          adoquery3.SQL.Add('set Adm_Role = :A');
          adoquery3.SQL.Add('where Adm_Role = :B');
          adoQuery3.Parameters.ParamByName('A').asstring := //替换成dbedit1.Text指向的数据集字段;
          adoQuery3.Parameters.ParamByName('B').asstring := 'PriviorName';
          adoquery3.ExecSQL;
    这样试试。
      

  8.   

    你这样
    把dbedit1.Text 和 PriviorName都换成常量试试,如果没问题,就说明这两个变量有问题了