Board logo

标题: V5 的 收藏夹的中文 为何显示问号?? [打印本页]

作者: LiYa    时间: 2009-2-25 02:02     标题: V5 的 收藏夹的中文 为何显示问号??

如题。 谁遇到的,如何解决,请 给个回复。谢谢。

提示,是否同 数据库的排序方式不是  Latin1_General_BIN 有关系??


作者: tansj    时间: 2009-2-25 05:58     标题: Re:V5 的 收藏夹的中文 为何显示问号??

Liya遇到的情况应该是MS SQLServer吧?我在Oracle中没有遇到过。


作者: dannis    时间: 2009-2-25 07:17     标题: Re:V5 的 收藏夹的中文 为何显示问号??

我没有遇过这种现象,但是我认为同数据库的Latin1_General_BIN排序有关,我的排序是Chinese_PRC_BIN
作者: sage2009    时间: 2009-2-25 18:32     标题: Re:V5 的 收藏夹的中文 为何显示问号??

SQL数据库排序规则错误。
作者: luoxiong    时间: 2009-2-25 18:34     标题: Re:V5 的 收藏夹的中文 为何显示问号??

的确是数据库排序规则错误。


作者: Jerry.huang    时间: 2009-2-25 22:32     标题: Re:V5 的 收藏夹的中文 为何显示问号??

Liya   , 就是你说的问题。解决方法有一个:不动数据库,直接修改SQL SERVER 2000的排序规则能解决此问题,但带来的恶果是在SQLSERVER 再也打不开表结构。我就是这样的,哈哈。

 


作者: tansj    时间: 2009-3-5 18:49     标题: Re:V5 的 收藏夹的中文 为何显示问号??

大家可以打开console,在solution页面上面有一个database scripts,点这个可以看到console创建数据库时所使用的sql语句。在创建数据库时配置程序自动将排序规则限制为了lartin,故adonix数据库的排序规则自建好后就默认为lartin了。

关于此问题,我想到了解决办法,但是需要装了sqlserver2000的同学帮我做小白鼠,哈哈。

貌似如果安装sqlserver2005中文版就不会有这个问题。

我的解决思路:


1、更改数据库排序规则;
use master;
ALTER DATABASE adonix COLLATE Chinese_PRC_CI_AS

2、读取所有表:
Select
'alter table ',sysobjects.name As Tb_name,' alter column ',
syscolumns.name As Colu_name,
systypes.name As Col_type, '(',
syscolumns.length/2 As Col_len,') collate Chinese_PRC_CI_AS;'
from sysobjects,systypes,syscolumns
where sysobjects.xtype ='U'
and sysobjects.id = syscolumns.id and
    systypes.xtype = syscolumns.xtype and
    systypes.name <> 'sysname' and
    sysobjects.name Like '%' AND systypes.name='nvarchar'
union
Select
'alter table ',sysobjects.name As Tb_name,' alter column ',
syscolumns.name As Colu_name,
systypes.name As Col_type, '(',
syscolumns.length As Col_len,') collate Chinese_PRC_CI_AS;'
from sysobjects,systypes,syscolumns
where sysobjects.xtype ='U'
and sysobjects.id = syscolumns.id and
    systypes.xtype = syscolumns.xtype and
    systypes.name <> 'sysname' and
    sysobjects.name Like '%' AND systypes.name<>'nvarchar'
order by sysobjects.name,syscolumns.name

这一段sql的功能是把syscolumns里面所有类型为varchar/nvarchar的字段读出来,把各字段的排序规则改为Chinese。

为什么要这样做?

第一步:修改数据库的默认排序规则,这样后续这个db中新建的表都将按照新的排序规则来执行;

第二步:系统中原有表的排序规则也要改。因为事实上我们新建表的机会不会太多,修改现有的才是最重要的。

注意:在使用下面一段sql进行排序规则读取和修改的时候,应注意字段是否为空的设置,这个属性也应该带进去。这个设置是在syscolumns.isnull什么的,可以看看syscolumns这个表。

关于alter table修改排序规则的sql语法可以参考sqlserver 查询分析器的说明。

很重要一点:

现在MS已经停止销售sqlserver2000转而推sqlserver2005,我们的客户中使用2000的好像已不太多,基本上已经全部转到2005/oracle后台,更多使用sqlserver2000的是我们自己内部的顾问。这个修改是否有必要继续研究下去还有待商榷。建议有此现象的同学干脆下手狠一点,花点精力把机器重新弄一下,更新到2005/oracle上面来。

欢迎拍砖。。。。

[此帖子已被 tansj 在 2009-3-5 10:53:25 编辑过]


作者: zhihui.chen    时间: 2009-3-5 19:40     标题: Re:V5 的 收藏夹的中文 为何显示问号??

SQL2005如果排序规则是Latin1_General_BIN ,也还是显示问号????。

看来的确是排序规则的问题。


作者: zhihui.chen    时间: 2009-3-5 19:50     标题: Re:Re:V5 的 收藏夹的中文 为何显示问号??

zhihui.chen:

SQL2005如果排序规则是Latin1_General_BIN ,也还是显示问号????。

看来的确是排序规则的问题。

2005修改数据库排序规则很方便,不用研究语句了。数据库--属性---选项修改即OK


作者: tansj    时间: 2009-3-6 02:13     标题: Re:Re:Re:V5 的 收藏夹的中文 为何显示问号??

zhihui.chen:
zhihui.chen:

SQL2005如果排序规则是Latin1_General_BIN ,也还是显示问号????。

看来的确是排序规则的问题。

2005修改数据库排序规则很方便,不用研究语句了。数据库--属性---选项修改即OK

修改数据库的排序规则会同步更新到现有的表字段的排序规则吗?可以把sqlserver的建表sql导出来研究下。我这没有sqlserver2005环境,谁有的麻烦看下。


作者: zhihui.chen    时间: 2009-3-7 19:22     标题: Re:V5 的 收藏夹的中文 为何显示问号??

没有同步更新表字段的排序规则,只在该字段的扩展属性中看到了新改变的排序规则。
作者: LiYa    时间: 2009-3-10 19:20     标题: Re:V5 的 收藏夹的中文 为何显示问号??

谢谢大家的热心解答。 很希望能将这里变成一个实用的知识库。
作者: 扶程星云    时间: 2010-1-20 22:12     标题: Re:V5 的 收藏夹的中文 为何显示问号??

oracle下帐套导入到sql2005后,如果收藏乱码也要在数据库中修改排序规则。

如果出现排序错误,请在数据库修改成中文排序规则后,再把帐套导入一次即可正常,估计是导入的时候重新对数据进行排序了!

[此帖子已被 扶程星云 在 2010-1-25 17:11:42 编辑过]


作者: tansj    时间: 2010-3-30 07:54     标题: Re:V5 的 收藏夹的中文 为何显示问号??






欢迎光临 赛捷软件论坛 (http://sagesoft.cn/bbs/) Powered by Discuz! 7.2