100,希望能够解决我的需求:关于字段中英文转换的问题!
目的很简单:
数据库中各表的字段名称为仍然为英文;但给用户看的时候,或者让用户自行选择导出字段的时候,能够让用户看见的却是中文意思?不想用AS 关键字,因为表特别多,字段也太多了。
记得以前看过别人用Foxpro来做过,但记不起是怎么做的了。
谢谢各位了,先!
问题点数:100、回复次数:16Top
1 楼lsqkeke(可可)回复于 2006-03-06 17:16:10 得分 0
你字段名为英文,要显示为中文
显示时的对应关系也要人为指定的吧!!
select '想写'=col1,
没事 =col2,
col3 as '事情'
from tb
或许我真的不懂 :)
关注........Top
2 楼cqnucsmoon()回复于 2006-03-06 17:20:01 得分 0
楼上写的可能就相当于AS吧?
我在想能不能弄一个参照表之类的Top
3 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2006-03-06 17:26:16 得分 20
可以用参照表,但是这样的操作势必用到动态SQL。Top
4 楼zjcxc(邹建)回复于 2006-03-06 17:27:54 得分 55
这种需求一般是在程序中去实现的
在数据库中使用一个表:
表名 英文名 中文名
然后在程序中, 根据调用的表的情况, 把对应的英文列名变为中文列名.
数据库中不可能直接实现这种需求, 一般也不在数据库中来做这种事Top
5 楼zlp321002(Life Is Good,Let's Shine)回复于 2006-03-06 17:28:25 得分 10
--把每一个表字段和表说明,写清楚,然后直接就可以导出字段名和字段中文名称了。Top
6 楼libin_ftsafe(子陌红尘:TS for Banking Card)回复于 2006-03-06 17:34:10 得分 0
create table test_t1(ID int,name varchar(20))
insert into test_t1 select 1,'AAAA'
insert into test_t1 select 2,'BBBB'
create table test_t2(Ename varchar(20),Cname varchar(20))
insert into test_t2 select 'ID','编号'
insert into test_t2 select 'name','姓名'
declare @s varchar(8000)
set @s=''
select
@s=@s+','+Ename+' as '+Cname
from
syscolumns a,
test_t2 b
where
a.name=b.Ename and a.id=object_id('test_t1')
order by
a.colid
set @s='select '+stuff(@s,1,1,'')+' from test_t1'
exec(@s)
/*
编号 姓名
----------- --------------------
1 AAAA
2 BBBB
*/
drop table test_t1,test_t2Top
7 楼cqnucsmoon()回复于 2006-03-06 17:39:58 得分 0
谢谢楼上的各位朋友
我试试先
一定结帐,呵呵Top
8 楼zjcxc(邹建)回复于 2006-03-06 17:44:33 得分 0
个人觉得在数据库中做这事始终有点勉强, 因为不同的业务需要, 是会从不同的表查询数据, 往往会关联多张表, 如果直接在数据库中来实现这些, 会比较不好控制.
如果是固定的需求, 那不如直接针对这些需求写好视图或者存储过程, 对照表都免了Top
9 楼cqnucsmoon()回复于 2006-03-06 17:50:04 得分 0
zjcxc(邹建):
我最头痛就是查询太多了,按你说的,我的主表基本上只有一个,只是与主表的联合查询比较多;但因有比较多的报表查询、统计查询,还有导出数据,数据字段要求各不一样,非常麻烦,经常要用AS 别名来做。
不过现在大家都给出了不同意思,我基本上明白各种方法的原理。
现在还是同意zjcxc(邹建)的办法,用一个视图,然后在程序中控制动态生成查询语句,操作比较直观,而且也用不着我每次都去自己写代码了。
如果大家还有更好的办法,欢迎发表,再次表示感谢!
今天晚上来结帐,呵呵!Top
10 楼lsqkeke(可可)回复于 2006-03-06 17:52:24 得分 5
子陌兄的解决方案 也是用as 解决的啊Top
11 楼cqnucsmoon()回复于 2006-03-06 18:01:24 得分 0
刚刚由这个问题想到了
顺便问一个问题:
在哪种情况之下用存储过程?我觉得我的数据库中有好多存储过程呀,比较复杂的查询我都用了存储过程,以便应用程序调用,只觉得这样用起比较方便,写的应用程序代码不用变多少,要变就改变一下存储过程就行了,但不知道应不应该这么用。Top
12 楼zjcxc(邹建)回复于 2006-03-06 18:10:25 得分 0
一般来说, 如果查询的方式是固定的就建议使用存储过程.
当然, 还可以加上:
1. 处理的逻辑较为复杂(但不建议把业务逻辑过多的封装在存储过程中)
2. 查询参数较为固定
3. 处理过程多数能利用sql语句实现批处理.
Top
13 楼accpyy(小小鸟儿)回复于 2006-03-06 18:14:06 得分 5
不知道楼主是想用什么控件来显示数据啊?你的意思没有表达明白哦
这么多高手都在,值得关注Top
14 楼accpyy(小小鸟儿)回复于 2006-03-06 18:16:12 得分 0
不好意思弄错地方了,原来是在数据库开发中!还以为在c#下Top
15 楼gaojier1000(V2※高捷)回复于 2006-03-06 18:27:48 得分 5
还是做中英文对照表吧!Top
16 楼cqnucsmoon()回复于 2006-03-06 19:02:54 得分 0
呵呵,谢谢楼上的众多朋友,现在就结帐啦!Top




