系统有SQL数据库,内有字段汉字表达表ParaExpress(有EnglishStr,ChineseStr字段)  
现要配置另外的数据库(可以是任何类型的)后得到数据库所有表的所有字段名(为英文表示),并与SQL数据库中的字段汉字表达表进行比较,如字段名与EnglishStr的某条记录相同,则输出该记录的汉字意思,无则照旧输出  
eg:
SQL数据库表ParaExpress                                          
chineseStr    EnglishStr  
姓名                  name  
班级                  class  
数据库有表student  
name    ID    class      sex  
王          1        1            男  
李          2        1            女  
要输出  
姓名      ID    班级        sex  
王          1        1            男  
李          2        1            女    
采用ADOQuery1连接SQL  
ADOConnection1来连接另外的数据库,请帮我看看怎么在连接后比较输出 ,谢谢!

解决方案 »

  1.   

    楼主的问题还没解决啊?你还是看一下你的设计方案本身是不是就有问题,或者是你没有完全表达清楚(你的ParaExpress表只有字段名定义,那表名呢?所有这些字段都是一个表的字段吗? )帮你顶了 期待高手
      

  2.   

    表名就是paraexpress
    没人解决,可能是太简单了,啊!高手没兴趣,我这是重开的帖子问的
      

  3.   

    数据库有表student  
    name    ID    class      sex  
    王          1        1            男  
    李          2        1            女  
    要输出  
    姓名      ID    班级        sex  
    王          1        1            男  
    李          2        1            女 结果与表一样?
      

  4.   

    楼上的,楼主是要把字段名换成中文显示;
    不过我认为楼主并没有表达清楚他的目的,我问的‘表名’不是指ParaExpress表,这个我当然知道,而是说ParaExpress表中的数据,这些数据其实就是楼主Sql数据库表的字段名,那么这些字段是专属某个表(比如表student )还是针对所有表?当然,这个也不很重要;
    主要没有看太明白楼主的意图,所以不好回答, 如果只是要显示,假设用DBGrid作为显示数据的组件,那就完全可以通过处理DBGrid的Columns[].Title.Caption来完成,通过FieldName到ParaExpress表找出对应的中文名赋值给Title.Caption即可;
    如果是要直接把FieldName替换成中文,就得通过查Sqlserver的sysobjects、syscolumns先找出字段的英文名col1.col2...,再通过paraexpress找出对应的字段中文名chrCol1,chrCol2...,然后组合成select col1 as chrCol1,col2 as chrCol2....from...结构的语句来执行,就可以得到中文作为字段名的结果信息
      

  5.   

    如果是ADO控件,则直接修改字段名的DisplayLabel属性为中文即可。
      

  6.   

    Declare @S varchar(1000)Select @s = 'Select 'Select @s = @s + A.Name + ' as ' + Case When B.chineseStr Is Null then A.Name else B.chineseStr end + ', '
    from SysColumns A
    Left Outer Join ParaExpress B On A.name = B.EnglishStr
     Where A.id = Object_ID('student')Select @s = SubString(@s, 1, len(@s) - 1) + ' From Student'
    Select @sExec(@s)参照上面看看,我这边测试已经好了
      

  7.   

    ParaExpress表中的数据是针对所有表,要把fieldname输出为中文到比如listbox 中,
    我没有说的清,但大家给出的答案给我很大帮助,问题已解决,谢谢大家