|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
四班的数据库采用的Latin字符集,非Unicode字符集,导致在使用sql控制台访问时中文不能正常显示,目前位置只能用sql2000的查询分析器才能正常显示中文,在编程时还需把AutoTranlate 设置为false,导致了很多应用的局限性,最近通过sqlserver提供的自定义函数的研究成功的解决这个问题。
以下是我的分享
我使用C#编写了字符转换的Latin2CN.DLL文件
将附件中的文件解压,拷贝至数据库服务器上的 X盘上的XXXXXX目录
然后在四班数据服务器的 SQL Server Management Studio 中执行以下语句
use XXX ----四班数据库名 如:FSDBMR
CREATE ASSEMBLY Latin2CN FROM 'X:\XXXXXX\Latin2CN.dll' ---XXX代表文件所在目录
--解码函数
CREATE FUNCTION dbo.GetdeEncodingText
(
@text nvarchar(70)
)
RETURNS nvarchar(70)
AS EXTERNAL NAME Latin2CN.StrConvert.GetDEEncodingText
--编码函数
CREATE FUNCTION dbo.GetEncodingText
(
@Text nvarchar(70)
)
RETURNS nvarchar(70)
AS EXTERNAL NAME Latin2CN.StrConvert.GetEncodingText
测试sql语句
查询物料描述中包含“凸轮”的所有物料
select top 10 ItemNumber,dbo.GetdeEncodingText(ItemDescription),ItemDescription ItemDescription
from _NoLock_FS_Item
where ItemDescription like '%'+dbo.GetEncodingText(N'凸轮')+'%'
此方法在win2008R2+sql2008 R2上测试通过,个人应该在sql2005也适用。
|
|