我想问一下,dbgrid如果读取数据表里面的一个整型字符段state(值为1,2,3),但要在数据表格上显示这样的对应:1-超级管理员,2-注册用户,3-普通游客.....这个需要在那里进行定义呢,要怎么定义才行呢,谢谢!

解决方案 »

  1.   

    另外再定义一张表,然后用select查询就可以实现了;
      

  2.   

    只能在数据库里面变换
      给DataSet构造一个计算字段NewField
       在DataSet.OnCalcFields中加入代码:
         case DataSet.FieldbyName('State').AsInteger of 
         1:
          dataSet.FieldByName('NewField').AsString:='1-超级管理员';
         .....
         end;   在dbgrid中只显示NewField字段,不显示State字段
             
      

  3.   

    在adoquery的field的ongettext事件中处理试试
      

  4.   

    做个对照表也可以啊,
    例如:
    登录表
    序号  登录ID  登录时间   
    01     1        2004-10-16
    01     2        2004-10-16
    01     3        2004-10-16
    用户表
    用户ID    用户名称 
    1        超级管理员
    2        注册用户
    3        普通游客查询的时候这样写:
    select b.用户名称,a.登录时间 from 登录表 a,用户表 b where a.登录ID=b.用户ID 
    这样做虽然麻烦点,但是比较直接、灵活啊