This topic has been archived. It cannot be replied.
-
工作学习 / IT杂谈 / 以前用MS ACCESS 时一切都正常, 现在换成MS SQL 2000就有问题了,
用中文登记的用户名(例如,洋洋), 在密码验证时用户名查不到,但数据库里有.为什么中文名查不到? 英文用户名正常. 请帮助,谢谢!! (用ASP, MS SQL2000)
-fengvan(Sunny);
2002-6-26
(#602119@0)
-
有些数据库处理字段值没到定义的长度,会加空格补充的,你在select语句中用rtrim函数处理该字段,或是用like试试
-rabbitbug(兔八哥);
2002-6-26
(#602143@0)
-
I use "nvarchar" for user name
-fengvan(Sunny);
2002-6-26
(#602169@0)
-
你用了nvarchar,那么该字段后面是没有空格的,那你存储的中文会不会与你输入的有区别?要么是数据库设置问题了
-rabbitbug(兔八哥);
2002-6-26
(#602473@0)
-
是不是倒数据的时候被加上了什么不可见字符?
-antmm(xiao ant);
2002-6-26
(#602148@0)
-
from ACCESS 2000 transfer to MS SQL 2000, and then export data to my host server.
-fengvan(Sunny);
2002-6-26
(#602175@0)
-
象兔八哥所说,你先查询"洋洋",然后加ltrim, rtrim再查询,如果加trim能查的出来而前面的查不出来就是被加上了了不可见字符.
-antmm(xiao ant);
2002-6-26
(#602181@0)
-
ltrim能去掉除空格之外的不可见字符吗?历害。在比较时SQL Server 2000会忽略掉空格的,不用trim
-miketany(MIKE老狼);
2002-6-26
(#602204@0)
-
@@ 糊涂了:( 应该是用like来测试.想不起来SQL server代替字符是用什么符号来表示了,"?" or "*" ?
-antmm(xiao ant);
2002-6-26
(#602209@0)
-
我的SEARCH功能使用LIKE, 用中文关键字, 查询文章标题时, 返回的结果也有问题, 结果不包含我要找的关键字. 全是中文有问题, 但以前用ACCESS 时没有.
-fengvan(Sunny);
2002-6-26
(#602227@0)
-
原有的中文名和新注册的中文名都查不到, 但中文名可以显示,
-fengvan(Sunny);
2002-6-26
(#602183@0)
-
在数据库里看的到么?
-antmm(xiao ant);
2002-6-26
(#602198@0)
-
在数据库里可以看到中文名, 在IE里也可以显示中文名.
-fengvan(Sunny);
2002-6-26
(#602212@0)
-
select * from table1 where name like "%洋洋%" 搜索结果怎样呢?
-antmm(xiao ant);
2002-6-26
(#602221@0)
-
单引号才对吧?
-simonp(simonp);
2002-6-26
(#602235@0)
-
@@ 高手来了,我撤.........
-antmm(xiao ant);
2002-6-26
(#602240@0)
-
咱都是用户而已。写产品的人才是高手呀。
-simonp(simonp);
2002-6-26
(#602580@0)
-
not work
-fengvan(Sunny);
2002-6-26
(#602251@0)
-
有什么提示呀?
-antmm(xiao ant);
2002-6-26
(#602253@0)
-
程序没有错误, 所以没有错误提示,
-fengvan(Sunny);
2002-6-26
(#602264@0)
-
用单引号, 不能查到.
-fengvan(Sunny);
2002-6-26
(#602254@0)
-
用什么查的?SQL query analyzer直接写的?没有查到是指出错信息还是指语法错误?
-simonp(simonp);
2002-6-26
(#602266@0)
-
use ASP, 如果数据库到底, 就反馈没有此用户.
-fengvan(Sunny);
2002-6-26
(#602281@0)
-
My 3 cents,参考:
-simonp(simonp);
2002-6-26
{860}
(#602455@0)
-
刚刚测试了一下:ROLIA现在就不能handle中文注册名,和中文密码。这是省心省力的方法建议使用。
-simonp(simonp);
2002-6-26
(#602610@0)
-
但是文章查找要用中文关键字怎办?
-fengvan(Sunny);
2002-6-26
(#602634@0)
-
呵呵,全文查询麻烦一点,SQL2000如果所有字段<8000 (unicode nvarchar<4000)你尚可以用select语句,>8000就是text/ntext就得采用全文索引了。原则是注意客户端(asp/ado)到数据库的传输码和数据库中的存储码匹配。(参考)
-simonp(simonp);
2002-6-26
(#602690@0)
-
charset=utf-8? 以前我写的一直是gb_2312-80.
-antmm(xiao ant);
2002-6-27
(#602997@0)
-
BTW,啰嗦一句,设计数据库的时候怎么不设计ID字段?
-antmm(xiao ant);
2002-6-26
(#602155@0)
-
查一下你server的collation setting是什么.collation setting 直接影响到T-SQL statement中对特定语言character的识别.SQL 2000以前的版本如果要改collation 只有重新install sql server,不过从SQL 2000 以后可以在install 以后改动.
-yangn(Raymond);
2002-6-26
(#602225@0)
-
跟operation system有没有关系呢?
-antmm(xiao ant);
2002-6-26
(#602236@0)
-
I don't think this issue is related to the OS. Here the OS just provides the installation with the default setting of the collation.When you install sql server, the installation will detect the type of the locale the windows is running and display that as the default SQL collation.
The sql collation controls the rules governing how SQL Server sorts and compares characters stored in both Unicode and non-Unicode data types.
-yangn(Raymond);
2002-6-26
{294}
(#602270@0)
-
既然数据库和I.E.客户端能正常显示,那么不该是collation问题。现在问题是你使用什么客户端against 数据库?大体上该注意测试string函数的unicode问题。用profiler debug效率最高,可以马上知道结果。
-simonp(simonp);
2002-6-26
(#602249@0)
-
对了,你怎么知道I.E.可以正常显示??你写了什么ASP代码做的测试吗?
-simonp(simonp);
2002-6-26
(#602260@0)
-
用户维护程序, 可以显示全部用户名, 包括中文用户名. 显示正常.
-fengvan(Sunny);
2002-6-26
(#602273@0)
-
唉.看来还是得多一句嘴啦.collation 决定的不是显示(the list of select)而是比较和排序(in the where and order by statement).
-yangn(Raymond);
2002-6-26
(#602282@0)
-
奥,我要说的是针对#602225贴。
-simonp(simonp);
2002-6-26
(#602354@0)
-
用户能从IE和Query analyzer看到table内的中文string,只能说明nvarchar的作用,而要验证user和password,这是characters之间的comparison,是由collation决定的. 也就是我在602225所说的识别问题.在此例中,database sort order ID 必须是198或199或203.换言之,如果collation设定的是default Dictionary order, case-insensitive, for use with the 437 (U.S. English) character set (sort order ID =34),就没法对两组chinese characters 进行正确的比较.这也就是为什么他在search时,所有的中文都出错.
-yangn(Raymond);
2002-6-26
{232}
(#602406@0)
-
真是高手, 多谢了. 再次感谢!!! 在建立数据库时设置database sort order ID =198, 现在一切都正常了. 中文查询和中文用户名都可以用了. 再请问高手,我将一个数据库从server A 传到 server B, 数据都可以正常传送, 但数据库的缺省值不能传送, 该如何解决. 谢谢!
-fengvan(Sunny);
2002-6-27
{103}
(#603232@0)
-
There are at least two solutions.
-yangn(Raymond);
2002-6-27
{1150}
(#603309@0)