有一个表A它存放着很多英文字段,然后有很多表,存着A表字段对应着的汉语意思
比如说A中又一个字段叫RYBH,然后有一个RY_BH表其中就有2个字段,一个是英文字段
与A表对应,另一个就是它的汉语意思字段
现在我想用DBGRID把A表的字段全部显示出来,但显示出来的是汉语而不是英文
该怎么办?
我说的明白吗?哥哥姐姐们帮我!

解决方案 »

  1.   

    CSDN的大侠们都钻哪个窝里了?
      

  2.   

    //假定RY_BH表的两个字段是RY_BH1(英文字段)和RY_BH2(汉语意思)
    //在FORM中放三个控件:QUERY1、DBGRID1、DataSource1
    //将DBGRID、DataSource1、QUERY1相关连
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
      i:integer;s:string;
    begin
      with query1 do
      begin
        close;
        SQL.Clear;
        sql.Add('select * from A');
        open;
        for i:=0 to Fields.Count-1 do
          s:=s+','+#39+Fields.Fields[i].FieldName+#39;
        s:='('+copy(s,2,length(s)-1)+')';
        close;
        sql.Clear;
        sql.Add('select * from RY_BH where RY_BH1 in '+s);
        open;
        s:='';
        for i:=0 to RecordCount do
          s:=s:+','+fields.Fields[0].AsString+' as '+fields.Fields[1].AsString;
        s:=copy(s,2,length(s)-1);
        close;
        sql.Clear;
        sql.Add('select '+s+' from a');
        open;
      end;end;
      

  3.   

    我在最后的两个open之前加把sql.text show了出来,
    如下:
    1.select * from RY_BH where rybh in ('bh','dw','lx','ck','jsr','bgy','sh','shr','bz','hz','rck','date')
    2.select  as  from rdk
    在第二个open之后出错
    显然从第一个就开始出线问题,值与字段变量怎么可能是in的关系,要知道'bh','dw'...
    都是字段名,因此导致第二个语句select 为空了
    我现在想用union一条sql语句解决,你的这种方法思路很好,但我觉得对数据库压力太大了
    谢谢!