- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0 |
最近的一个项目中要用到把输入到系统的内容都转换成繁体存储到另外一个字段,系统是asp+sql2005,本来是想在asp中来实现这个功能,只是asp实现这个貌似有点困难,就想到了微软的一个Microsoft Visual Studio International Pack v1.0,里面就有中文字处理功能,还比较丰富,这里只用简繁转换。Microsoft Visual Studio International Pack v1.0的下载地址:http://download.microsoft.com/download/5/7/3/57345088-ACF8-4E9B-A9A7-EBA35452DEF2/vsintlpack1.zip。解压之后安装CHTCHSConv.msi,安装之后新建一个类库类目,添加对Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool引用。引入Microsoft.SqlServer.Server;
Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
命名空间。
下面是代码:
view plaincopy to clipboardprint?
using Microsoft.SqlServer.Server;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
namespace IMELSChineseConverter
{
public class MelsChineseConverter
{
[SqlFunction(DataAccess = DataAccessKind.None)]
public static string Convert(string text, string Direction)
{
string ctext = string.Empty;
if (Direction.ToLower() == "s2t")
{
ctext = ChineseConverter.Convert(text, ChineseConversionDirection.SimplifiedToTraditional);
}
else if(Direction.ToLower() == "t2s")
{
ctext = ChineseConverter.Convert(text, ChineseConversionDirection.TraditionalToSimplified);
}
return ctext;
}
}
}
using Microsoft.SqlServer.Server;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
namespace IMELSChineseConverter
{
public class MelsChineseConverter
{
[SqlFunction(DataAccess = DataAccessKind.None)]
public static string Convert(string text, string Direction)
{
string ctext = string.Empty;
if (Direction.ToLower() == "s2t")
{
ctext = ChineseConverter.Convert(text, ChineseConversionDirection.SimplifiedToTraditional);
}
else if(Direction.ToLower() == "t2s")
{
ctext = ChineseConverter.Convert(text, ChineseConversionDirection.TraditionalToSimplified);
}
return ctext;
}
}
}
这里要把这个功能集成到SQL2005里去,就要用到SQL2005的CLR集成。现在我们来启用SQL2005的CLR集成:
开始--所有程序--Microsoft SQL Server 2005--配置工具--SQL Server 外围应用配置器--功能的外围应用配置器--CLR集成--启用CLR集成。
之后我们给SQL2005添加这个程序集,假如我们要为DataBaseTest这个数据库来增加此程序集,
在SQL里执行如下语句
USE [DataBaseTest]
GO
ALTER DATABASE [DataBaseTest] SET TRUSTWORTHY ON
create assembly IMELSChineseConverter from 'D:SqlCLRIMELSChineseConverter.dll' WITH PERMISSION_SET = UNSAFE
然后我们再建立一个SQLFunction来应用这个程序
USE [DataBaseTest]
GO
CREATE FUNCTION [dbo].[MelsChineseConverter](@text [nvarchar](max), @Direction [nvarchar](20))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [IMELSChineseConverter].[IMELSChineseConverter.MelsChineseConverter].[Convert]
现在我们就可以应用这个函数来进行简繁转换了
SELECT [dbo].[MelsChineseConverter]('中国','s2t')
结果:中國
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |