用字段编辑器 建立字段 Sex 填写它的 GetText 事件 如下所示(已 test ok)
procedure TForm1.Table1SexGetText(Sender: TField; var Text: String;
  DisplayText: Boolean);
begin
 if Sender.AsInteger=0 then Text:='男' else text:='女';
end;

解决方案 »

  1.   

    方法不唯一,可以用视图。最简单用一条SQL语句:
    select SUBSTRING('女男', UserSex + 1, 1) from MyTable
      where UserID>100
    UserSex是性别字段,可为0或1。
      

  2.   

    将“男”“女”放在参数档中进行 Lookup 也行
      

  3.   

    我觉得lwm8246(lwm8246)的方法比较好,ether(void)的法子还得修改数据库,而且lwm8246(lwm8246)的办法还可以进行SetText,不仅用于读取
      

  4.   

    还可以建立一计算字段sex (string) 显示男女:
    在dbgrid的数据源添加field,field type设置为calculated;在dbgrid的数据源的CalcFields事件中
    if dataset.fieldbyname('usersex')=0 then
      dataset.fieldbyname('sex').asstring:='男';
    end
    else begin
      dataset.fieldbyname('sex').asstring:='女';
    end;
      

  5.   

    我也是用的计算方法,就像liuchcn(michael) 说的
      

  6.   

    to: cybercobra
    谁说要修改数据库的?我的方法对数据库不用作任何修改,只是一条select语句而已。
    而且这个对访问数据库的客户放开发工具无任何特殊要求。
    select SUBSTRING('女男', UserSex + 1, 1) as ChnShow from MyTable
      where UserID>100
    就象有一个叫ChnShow的字段一样,用起来很方便的。
      

  7.   

    使用Case(详细用法见SQL7帮助),下面是帮助中的一个例子:SELECT Category = 
    CASE type
    WHEN 'popular_comp' THEN 'Popular Computing'
    WHEN 'mod_cook' THEN 'Modern Cooking'
    WHEN 'business' THEN 'Business'
    WHEN 'psychology' THEN 'Psychology'
    WHEN 'trad_cook' THEN 'Traditional Cooking'
    ELSE 'Not yet categorized'
    END,
    CAST(title AS varchar(25)) AS 'Shortened Title',
    price AS Price
    FROM titles
    WHERE price IS NOT NULL
    ORDER BY type, price
    COMPUTE AVG(price) BY type
    GO
      

  8.   

    select 性别=
          case Sex
              when 0 then '男' else '女'
          end
    from
    Table111