就是         旧密码:{ edit1   }
             新密码:[ edit2   ]
             确认密码:[ edit3 ] 
               确认     取消 这种模块的密码更改,应该怎么做?怎么以新密码替代旧密码?
         
          

解决方案 »

  1.   

    用Update~~
    SQL.Add('Update Table1 Set Field1='+#39+Edit2.Text+#39)
    SQL.Add('Where UserName='+#39+StringUserName+#39)
      

  2.   

    up,update的用法帮助上讲的不明白,书上也没有,哪位能讲讲它的用法?
      

  3.   

    帮助上有
    在local sql的帮助上
      

  4.   

     to chris2019(牛虻---与兔共舞版) 
    看来你革命的道路还很长啊,
    还有,好多东西尽量自己动脑筋解决,
    这样可以培养你解决问题的能力,
    而这种能力是编程人员最重要的能力
      

  5.   

    救命,系统总是报错:unternimate string ,光标停在1处,紧贴着1
    原吗:buttonclick下:
    begin
    if edit1.text='' then
            application.messagebox('原密码不能为空','提示',mb_ok)
      else
        begin
        data.qu_kl.parambyname('passwd').value:=edit1.text;
          if (data.qu_klgg.recordcount=1) and  (edit2.text=edit3.text)  then
            begin
    1,#######SQL.Add('Update Tbl_pass Set Field[2]='+#39+Edit2.Text+#39')
              SQL.Add('Where UserName='+#39+StringUserName+#39')
              edit1.text:='';
              edit2.text:='';
              edit3.text:='';        end
         else
           application.messagebox('原密码不存在或新密码前后错误','提示',mb_ok);
           edit1.text:='';
           edit2.text:='';
           edit3.text:='';
         end;end;
      

  6.   

    sql是TQuery控件的一个属性,
    你把TQuery控件的名称给漏了
      

  7.   

    1,#######SQL.Add('Update Tbl_pass Set Field[2]='+#39+Edit2.Text+#39)
              SQL.Add('Where UserName='+#39+StringUserName+#39)没有最后的那一个分号~~~~~~
      

  8.   

    with Query1 do
    begin
    close;
    SQL.Clear;
    SQL.Add('Update Tbl_pass Set Field[2]='+#39+Edit2.Text+#39);
    SQL.Add('Where UserName='+#39+StringUserName+#39);
    execsql;
    end
      

  9.   

    哈哈,居然我也把分号给看漏了,
    顺便又发现了一个问题,
    是真正产生这个错误的原因,
    就是 SQL.Add('Update Tbl_pass Set Field[2]='+#39+Edit2.Text+#39')最后括号前的单引号是多余的,
    呵呵,
    当然会报unternimate string 错误不少啊
      

  10.   

    离成功似乎总差一步,代码可以运行,但运行后测试总说“源密码不存在或密码前后错误”
    我用2个query:qu_klgg,qu_kl
    原吗:
    begin
    if edit1.text='' then
            application.messagebox('原密码不能为空','提示',mb_ok)
      else
        begin
          data.qu_klgg.parambyname('passwd').value:=edit2.text;
          data.qu_klgg.execsql;
          if (data.qu_klgg.recordcount=1) and  (edit2.text=edit3.text)  then
            begin
              data.qu_kl.close;
              data.qu_kl.SQL.Clear;
              data.qu_kl.SQL.Add('Update Tbl_pass Set Field[2]     ='+#39+Edit2.Text+#39);
              data.qu_kl.SQL.Add('Where passwd='+#39+edit1.text+#39);
              data.qu_kl.execsql;
              edit1.text:='';
              edit2.text:='';
              edit3.text:='';        end
         else
           application.messagebox('原密码不存在或新密码前后错误','提示',mb_ok);
           edit1.text:='';
           edit2.text:='';
           edit3.text:='';
         end;end;   
      

  11.   

    data.qu_klgg.execsql;
          
    改成data.qu_klgg.open;
      

  12.   

    如果我没猜错
    你那data.qu_klgg 的sql 语句应该是
     select * from Tbl_pass where passwd=:passwdselect 语句必须用open,
     delete,update,insert 必须用 execsql
      

  13.   

    你应该学会跟踪,
    一跟踪你就会发觉 data.qu_klgg.recordcount=0,
    当然也就执行else 里的代码了,
    回答了这么多,可惜没分
      

  14.   

    怎么跟踪呢?偶用f7,虽然停在那里,但偶看不出data.qu_klgg.recordcount=0,tell me
    薪水补发:200分,以后每周都有,不要嫌偶菜就行
      

  15.   

    或者使用 run菜单的inspect,
    不过变量名称一定要输入完整,
    特别对于某些对象的属性,一定要把对象名称也要输入进去
      

  16.   

    偶要疯了,玩到现在,还是“原密码不存在或新密码前后错误”
    但是跟踪表明recordcount=0,不过,也没有能出错的地方了,哇哇哇,受步了了
    begin
    if edit1.text='' then
            application.messagebox('原密码不能为空','提示',mb_ok)
      else
        begin
           data.qu_klgg.parambyname('passwd').value:=edit1.text;
           data.Qu_klgg.open;
          if (data.qu_klgg.recordcount=1) and (edit2.text=edit3.text) then
            begin
              data.qu_kl.close;
              data.qu_kl.SQL.Clear;
              data.qu_kl.SQL.Add('Update Tbl_pass Set Field[2]='+#39+Edit2.Text+#39);
              data.qu_kl.SQL.Add('Where passwd='+#39+edit1.text+#39);
              data.qu_kl.execsql;
              edit1.text:='';
              edit2.text:='';
              edit3.text:='';        end
         else
           application.messagebox('原密码不存在或新密码前后错误','提示',mb_ok);
           edit1.text:='';
           edit2.text:='';
           edit3.text:='';
         end;end;
      

  17.   

    data.qu_kl.SQL.Add('Update Tbl_pass Set Field[2]='+#39+Edit2.Text+#39);
    这个Field[2]是什么???????????????
      

  18.   

    如果是Qu_klgg的字段Field[2]~~~~则需要这样data.qu_kl.SQL.Add('Update Tbl_pass Set '+Field[2].AsString+'='+#39+Edit2.Text+#39);
      

  19.   

    老大你还在呀?感激涕零……
    filed[2]是passwd的字段序号
      

  20.   

    还有呀~~data.qu_kl.SQL.Add('Where passwd='+#39+edit1.text+#39);怎么没有UserName??是不是应该这样??data.qu_kl.SQL.Add('Where passwd='+#39+edit1.text+#39+' and UserName='+#39+'chris2019(牛虻---与兔共舞版)'+#39);
              
              
      

  21.   

    如果是Qu_klgg的字段Field[2]~~~~则需要这样data.qu_kl.SQL.Add('Update Tbl_pass Set '+Field[2].AsString+'='+#39+Edit2.Text+#39); 
      

  22.   

    窗体        旧密码:  { edit1  }
                新密码: [ edit2  ]
                确认密码:[ edit3 ] 
                  确认    取消 中,没有设username可否省去?
      

  23.   

    系统光标停在了field之后,说:undeclare idenfitier 'field"
      

  24.   

    要不然万一几个用户的密码相同~~
    data.qu_kl.SQL.Add('Update Tbl_pass Set '+Field[2].AsString+'='+#39+Edit2.Text+#39); 这个就把他们的密码都给修改了~~
      

  25.   

    data.qu_kl.SQL.Add('Update Tbl_pass Set '+qu_klgg.Field[2].AsString+'='+#39+Edit2.Text+#39); //呵呵~~忘了写了~~
    是qu_klgg.Field[2].AsString
      

  26.   

    qu_klgg.Fields[2].asstring~~~~~~~~~~~~
    真是TMD低级错误~~呵呵~~少写了一个“S”~~~~~~~Fields