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