中英文字段查询时的转换问题。

abc10 2003-08-22 12:21:16
在sql 2000中的表所有字段都是英文的,为了显示方便,显示的结果字段要变成中文,因为查询时会牵涉到多个表,多个字段,所以产生的SQL查询语句会很长,如果用
"select ID as 编号 from..."
"select tableA.id as 编号,tableB.name as 名称..."
这种办法在程序中一个一个去写代码很麻烦,而且里面的字段是用户自己点中自动实现查询。
我的思路是写一个转换函数,再另建一个字段一一对应表,表的字段为ID,中文字段名,英文字段名,先将标准的SQL语句(如"select tableA.id ,tableB.name as 名称...")传递到这个函数,再由该函数根据这个语句涉及的每个字段,查询刚才的对应表,转换成可以显示中文的SQL语句,)最后用这个SQL语句进行查询。
我这程思路应该可行,但还是麻烦,请问一下大家一般用什么好的办法?
...全文
108 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xghim 2003-08-22
  • 打赏
  • 举报
回复
用Scripting.Dictionary将中英文字段名都取出来,放在字典对象里,
可以这样设置“表名_英文字段”,对应的值为中文字段名
在程序运行时一次性取出数据来,然后在查询结果显示时,将每个表的字段对应的中文字段名替换掉,应该就可以了。这样做只是多占了点内存,效率方面应该差不多。
这只是我的设想而已。具体实施还得看情况。
WQ771211 2003-08-22
  • 打赏
  • 举报
回复
在数据库中加一个表
存放中英文的对照关系,这样事半功倍
abc10 2003-08-22
  • 打赏
  • 举报
回复
谢谢,我再试试。
of123 2003-08-22
  • 打赏
  • 举报
回复
在形成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

完成的语句再做语法分析比较困难。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧