表ttmp
id     name          sex
1      thinbug       男
2      hehe          男
3      haha          女
--------------------------------------
        sql :='select * from ttmp ';
        ADOQuery1.SQL.Clear;
        ADOQuery1.Close;
        ADOQuery1.SQL.Add(sql) ;
        ADOQuery1.Open;
如何实现DBGrid显示如下:
id   name           
1    thinbug(男)    
2    hehe(男)       
3    haha(女)

解决方案 »

  1.   

    sql :='select id,name=name+'+#39+'('+#39+'+sex+'+#39+')'+#39 from ttmp ';
      

  2.   

    不好意思少个'
    sql :='select id,name=name+'+#39+'('+#39+'+sex+'+#39+')'+#39+' from ttmp ';
      

  3.   

    select id, rtrim(name) + '(' + rtrim(sex) + ')' as name
    from ttmp
    用这条语句替换原来的SQL
      

  4.   

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

  5.   

    SQL:= 'select id, rtrim(name) + ''('' + rtrim(sex) + '')'' as name from test';
    ADOQuery1.SQL.Clear;
    ADOQuery1.SQL.Add(SQL);
    ADOQuery1.Open;
      

  6.   

    你说的在NAME 这一栏里,显示名字并显示他的性别吗?
    把SQL改一下就行了,已通过测试。
     SQL ;= 'select ID ,name = NAME + '(' + SEX + ')' from  ttmp';id   name           
    1    thinbug(男)    
    2    hehe(男)       
    3    haha(女)