求字段属性DisplayLabel显示字段别名的方法。  在数据开发中住住需要设一个字段的别名(因为字段以英文命名,别名一般显示给用户,一般为中文)。
为了在设计阶段减少重复输入字段别名的工作,我希望在ADOtable1添加字段时(设置完Connection属性和Tablename属性)显示字段别名。数据库中有一个aa表记录了字段的别名:
    tablename    fieldname  fieldalias
      table1       bb1        单号请大家发表一下高见,当然包括实现同样结果的其它方法。

解决方案 »

  1.   

    本人建议用数据库中视图实现,即给table1表建一个视图:
    CREATE VIEW dbo.V_table1
    AS
    SELECT bb1 as 单号
    FROM dbo.table1
    大致如此,程序直接调用视图
      

  2.   

    定义一个循环添加字段的别名到属性DisplayLabel里。
      

  3.   

    zg0958(阿斌)仁兄说的有道理,这样可以解决别名问题,但这样做fieldname成了文,这样在开发过程中会频繁使用中文字段,且在多语言开发时也会很做很多转换。leesheng(编程很辛苦,但很有意思啊!)仁兄能否话的具体点。
     
    但我还是想通过改造VCL源代码和存储过程实现,但这样难度是大的,凭现在功夫我还不够,还想各位大虾帮忙出主意
      

  4.   

    Table1.FieldByName('City').DisplayLabel:='城市';
    在编程时用这样的语句可把字段名为City的字段在网格中显示为"城市"
    你可以在编程时用这种方法来实现
      

  5.   

    很少写数据库程序,以前有一个程序用了这种方法:
    就是动态的设置字段的DISPLAYLABLE值。。function FieldNameToDisplay(aFieldName:string):string;
    begin
    //  ....
    //这儿可以用IF条件判断,或者用TSTRINGLIST读一个文本文件..end;procedure SetFieldsDisplayLabel(aFields:TFields);
    var
      i:Integer;
      fldName:string;
    begin  for i :=0  to aFields.Count-1 do
      begin
        fldName:=aFields.Fields[i].FieldName;
        aFields.Fields[i].DisplayLabel:=FieldNameToDisplay(fldName);
      end;end;procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      with DataSet1 do
      begin
        DisableControls;
        Open;
        SetFieldsDisplayLabel(Fields);
        EnableControls;
      end;
    end;