select password from tablename where user=:用户名

解决方案 »

  1.   

    找到旧密码
    select password from tablename where user=用户名
    更改后
    update tablename set password=新密码 where user=用户名
      

  2.   

    这两句可否写在一个query里?
      

  3.   

    update tablename set password=新密码
     where user=用户名 and password=旧密码
      

  4.   

    系统总是给 set password=新密码 报错,‘=新密码’是参数吗?
    怎样把 =新密码 与edit.text联系起来?
      

  5.   

    SQL.Add('update tablename set password='+#39+Edit2.Text+#39);
    edit2。text是你的新密码~~~
      

  6.   

    老千终于来了,有加班费
    偶想把sql语句移到query的sql里,上面的语句该怎么写呢?
    偶这样写,query.active:=true时,报错
    update pass
    set passwd=:passwd
    where name=:name
    说第二行有错误另外不移入sql时,偶想把
    sql.add(where……
    中加入username,但语法总是有错,尤其+#'的用法,一点不懂,怎么版?
      

  7.   

    if edit2.text<> edit3.text then
    begin
        ShowMessage('密码和确认密码不一样');
        exit;
    end;
    query1.close;
    query1.sql.clear;
    query1.sql.add('select * from tablename where user=:user and password=:password');
    query1.fieldbyname('user').asstring:=edit4.text;
    query1.fieldbyname('password').asstring:=edit1.text;
    try
       query1.open
    except
       ShowMessage('数据库错误');
       exit;
    end;
      if not (query1.eof and query1.bof) then
      begin
        ShowMessage('用户不存在或者密码错误');
        exit;
      end;
      query1.close;
      query1.sql.clear;
      query1.sql.add('update tablename set password=:password');
      query1.sql.add(' where user=:user');
      query1.parambyname('password').asstring:=edit2.text;
      query1.parambyname('user').asstring:=edit4.text;
      try
        query1.execsql;
      except
       showmessage('数据库错误');
        exit;
      end; 
      

  8.   

    用你登录的用户名到后台数据库查找相应的旧密码,先认证,再把新密码覆盖旧密码
    sql.add('select password from userinfo where username=:name')
    name:=loginname
    然后在更新
    update..........
      

  9.   

    用你登录的用户名到后台数据库查找相应的旧密码,先认证,再把新密码覆盖旧密码
    sql.add('select password from userinfo where username=:name')
    name:=loginname
    然后在更新
    update..........
      

  10.   

    各位,我快要疯了……
    小昂上述的和老千前一贴所写的,我试了,都可以运行,
    只是,一旦我把 
    query1.sql.add('……
    那两句,写入query的sql里,如下
    update tblname
    set passwd=:passwd
    where user=:user
    当把query的active置于true时,
    报错:error creating cursor handle这个过程没什么特别的,怎么就不行呢……以头抢地,疯了
      

  11.   

    不要用~~~把query的active置于true时,数据库的修改或者是更新操作是不能返回数据集的~所以不能Active=True~~~只能用Query1.ExecSQL;执行SQL语句~~
      

  12.   

    好好看看angshuangxi(小昂) 给你写的~~只有当用Select语句返回数据集的时候才可以Open或者Active=True~~
      

  13.   

    谢谢,我又长知识了。
    那么只有用运行期间的
    query.sql.add('……
    了吗?
    偶如果不把active:=true,在query.sql里填上:update…… 
    这样也能运行,就是使用时报错,
    能不能设计期间指定sql语句?
      

  14.   

    当然可以在设计期间写Sql语句~~
    Query有一个属性~~就是SQl,写SQL语句用的~~呵呵~~建议你看看Delphi的Demo~~
      

  15.   

    老千呀,老千:
    update tblname
    set passwd=:passwd
    where user=:user
    就是我在query.sql里写的语句,databasename也指对了,两个参数也指定了类型,
    就是active:=true时,出现了你所说的问题,
    偶明白了:不返回数据集的操作语句,不可把active:=true,
    但是,不指定active:=true,这样也能运行,就是不能用,报错,怎么回事呢?
    或者,请你指教一下设计期间怎么update?
    预付50分~~
      

  16.   

    一般在设计期间给Query写SQL语句是为了能够打开数据库~从而给Query增加永久字段的~~
      

  17.   

    一切全明白了,哈哈哈哈~~~~~~,我真该死,我是蠢……
    首先,我那么写完全对的(运行好了),就是把query.sql.clear忘删了,一直
    留在程序里作怪,哇呀呀~~
    还有,哈哈,老千,让徒弟教你一回:sql查询语句都可写进query的sql里,
    在设计期间并执行,只是在运行时调用执行,因此小昂写的运行时指定查询,完全可以
    改为设计时指定查询,都因为上述原因和我此前不知道不返回数据集的查询,query的
    active不可置于true,才耽误至今,吐血三升~~~
      
      

  18.   

    update tablename set passwd = newpasswd  where (user= nusername)  and (passwd= oldpasswd)