刚才发的帖子问错意思了。
表ttmp
id     name          sex     passwd
1      thinbug       男      123456
2      hehe          男      1234567
3      haha          女      iloveyou
--------------------------------------
        sql :='select * from ttmp ';
        ADOQuery1.SQL.Clear;
        ADOQuery1.Close;
        ADOQuery1.SQL.Add(sql) ;
        ADOQuery1.Open;
如何实现DBGrid显示如下:
id   name        passwd   
1    thinbug     FL3XDF1TDH      //这里显示的passwd由我自己的函数repwd('123456')加密的
2    hehe        TXDHUR75DI      //同上repwd('1234567')
3    haha        NKPXD57SDA      //同上repwd('iloveyou')

解决方案 »

  1.   

    在ADOQuery1中建一个caulate字段passwd,再将该字段与dbgrid相连即可procedure TForm1.ADOQuery1name1GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
      Text := repwd(ADOQuery1.FieldByName('passwd').AsString);
    end;
      

  2.   

    恩,我刚才看了你写的,没看懂
    ADOQuery1中建一个caulate字段,这个在哪建立ADOQuery1name1GetText-》这个事件怎么也找不到
      

  3.   

    就是双击ADOQuery..右键添加字段.里面选择类型Calculated
      

  4.   

    1.在ADOQuery1中建一个caulate字段
    双击ADOQuery,
    右键 New field
    填写字段属性,
    选择类型Calculated,
      

  5.   

    有点钻牛角了吧,呵呵,
    楼主说说,你干吗要这样做,有什么别的意思吗。
    meiqingsong(阿飛)说的是啊,能实现。但 “坏坏”和(天下无雪)也有道理啊。
    楼主讲讲。
      

  6.   

    可以在Passwd的 OnGetText里面转换密码。另外,感觉你的想法有些偏差。通常在数据库里面记录的都不是明文密码,而是加密后的,很多是利用MDx这类计算得到的。然后检查的时候把用户提交的密码也作同样的转换,再去数据库核对。mysql里面就是这样。
      

  7.   

    word := ADOQueryLOG.FieldByName('passwd').AsString ;到这里work得不到数据。='';