1、我在Access数据库中的字段都有中文标题,请问如何读出?
   比如字段名:rq,标题是‘日期’,我用adodataset读:
   adodataset1.commandtext:='select rq from A';
   adodataset1.open;
   showmessage(adodataset1.fields[0].displaylabel);
   结果显示还是'rq',而不是我想要的'日期'
   请问如何读出Access表中的标题?2、在VFP中的Brow语句中有一个很好用的功能,计算结果,比如我有A,B,C
   3个字段,其中C是A*B的结果,在vfp中我可以写成:
   brow a,b:v=kkk(),c
   ........
   function kkk()
       repl c with a*b
   endfun
   当输入了b字段回车后,就会自动把a*b的值填充到c中,
   在SQL的SELECT语句中有没有实现这种功能的用法?

解决方案 »

  1.   

    1.我不知道怎么读取,但能不能转换呢?
      自己写个过程  遇到“rq”的转换成“日期”
    2.select a,b,a*b as c form 表名
      

  2.   

    楼上的老哥,select a,b,a*b as c from AAA
    得到的c是个计算字段,不是数据表中的字段。
    而且,在vfp我所写的brow例子中,只要b字段
    不更新,不会触发修改c字段的内容。
      

  3.   

    1 可以用ADOX访问表的列的扩展属性,但是似乎在目前的Jet/ADO下不能访问。建议还是用DAO来访问。
    http://blog.csdn.net/jiangsheng/archive/2004/03/15/3799.aspx
    http://www.blogcn.com/User3/jiangsheng/index.html?id=1275772&run=.0F8ED5D
    2 可以用触发器来做冗余计算字段,但是我不知道VFP是否支持
      

  4.   

    adodataset1.fields[0].displaylabel;
    这一句输出的结果肯定是rq了
    它输出的上数据表中的字段
    你只有自己定义了
    if adodataset1.fields[0].displaylabel='rq' then
      showmessage('日期');
      

  5.   

    update table 
    set c = a*bselect a,b ,c from table
      

  6.   

    你通过给dbgrid的标题栏重新赋值!!
      

  7.   

    是的 你在access里面用拼音  在dbgrid的 title 里canption里用汉语直接写啊!
      

  8.   

    1、select rq an 日期 from a
      

  9.   

    写错了,不好意思    select rq as 日期 from a
      

  10.   

    to henreash(虫子):
    select rq as 日期 from ...
    后,要是我要对rq字段进行计算,比如我下面
    todayis:=rq;  能不能用
    或者是要写成:
    todayis:=日期 
    请告知!
    我自己做了一个笨方法,写了一个过程:
    procedure ColumnsTitle(DBGrid:TDBGrid;DataSource:TDataSource);
    const
      EFieldTitle1='rq......zh......zqdm....zqmc....cz......gs......dj......cjje....ckje....bz......czh.....';
      CFieldTitle2='日期    帐号    证券代码证券名称操作    成交股数成交价  成交金额参考金额备注    帐户名称';
    var
      s:widestring;
      i,j:Integer;
    begin
      for i:=0 to DBGrid.Columns.Count-1 do
      begin
        j:=pos(DBGrid.Columns[i].Title.Caption,EFieldTitle1);
        if j>0 then
        s:=copy(CFieldTitle2,j,8);
        DBGrid.Columns[i].Title.Caption:=s;
      end;
    end;