在sql 2000中的表所有字段都是英文的,为了显示方便,显示的结果字段要变成中文,因为查询时会牵涉到多个表,多个字段,所以产生的SQL查询语句会很长,如果用
"select ID as 编号 from..."
"select tableA.id as 编号,tableB.name as 名称..."
这种办法在程序中一个一个去写代码很麻烦,而且里面的字段是用户自己点中自动实现查询。
    我的思路是写一个转换函数,再另建一个字段一一对应表,表的字段为ID,中文字段名,英文字段名,先将标准的SQL语句(如"select tableA.id ,tableB.name as 名称...")传递到这个函数,再由该函数根据这个语句涉及的每个字段,查询刚才的对应表,转换成可以显示中文的SQL语句,)最后用这个SQL语句进行查询。
    我这程思路应该可行,但还是麻烦,请问一下大家一般用什么好的办法?

解决方案 »

  1.   

    用Scripting.Dictionary将中英文字段名都取出来,放在字典对象里,
    可以这样设置“表名_英文字段”,对应的值为中文字段名
    在程序运行时一次性取出数据来,然后在查询结果显示时,将每个表的字段对应的中文字段名替换掉,应该就可以了。这样做只是多占了点内存,效率方面应该差不多。
    这只是我的设想而已。具体实施还得看情况。
      

  2.   

    在形成SQL语句的时候拼装,例如:
    strSQL = "select "
    for i = 1 to NumberofFields
        strSQL = strSQL & eFieldName & " as " & cFieldName & ","
    Next i
    strSQL = left(strSQL, Len(strSQL) - 1)
    strSQL = strSQL & " form " & TableName & " " & WhereSub
    strSQL = strSQL  & " order by " & SortedFieldList完成的语句再做语法分析比较困难。