SQL Server 2000 汉字数据简繁转换实例 (COM,.Net)

王朝mssql·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

SQL Server 2000 汉字数据简繁转换实例 (COM,.Net)

首先确认在 Windows (当然只是 SQL Server 的服务器端) 上安装了 .Net Framework 1.1 !

确认成功安装后:

1.用 sn -k 为该类库创建一个强名密钥文件:

在安装 Microsoft .Net Framework SDK 的所在目录下的 v1.1\Bin\ 子目录下执行如下命令行:

sn.exe -k c:\snkey.snk

2.打开记事本(NotePad.exe)编写如下 C# 程序,并保存为 C:\Microshaoft.cs 的文件:

using System;

using System.Runtime.InteropServices;

using System.Reflection;

using System.Runtime.CompilerServices;

[assembly: AssemblyKeyFile("snKey.snk")]

namespace Microshaoft

{

public interface IStrings

{

string StringConvert(string x);

}

[ClassInterface(ClassInterfaceType.AutoDual)]

public class Strings : IStrings

{

public string StringConvert(string x)

{

return Microsoft.VisualBasic.Strings.StrConv(x,Microsoft.VisualBasic.VbStrConv.TraditionalChinese,System.Globalization.CultureInfo.CurrentCulture.LCID);

// //繁简转换亦可 StringConvert 再加参数控制,不赘述

}

}

}

3.在 Windows 下 运行 cmd 进入命令行控制台,执行如下命令行:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe /t:library /out:C:\Microshaoft.dll C:\Microshaoft.cs /r:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Microsoft.VisualBasic.dll

如有错误,参考 csc.exe /? 帮助,或 MSDN 修正!

确认正确执行后,本例将生成: C:\Microshaoft.dll 文件!

4.再执行如下命令行:

C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\regasm.exe c:\microshaoft.dll /tlb:microshaoft.tlb /codebase

确认正确执行后,类型库注册成功,将生成: C:\Microshaoft.tlb 文件!

5.编写如下 T-SQL 创建 函数 及 测试查询(sysadmin 的成员 如 sa 才行):

(T-SQL 调用 COM 组件的 CSDN 文章有很多可供参考)

create function UDF_StringConvert(@ varchar(8000))

returns varchar(8000)

as

begin

--DECLARE @ varchar(8000)

--set @ = '阿姐速度极高'

DECLARE @object int

DECLARE @hr int

DECLARE @source varchar(255), @description varchar(255)

DECLARE @Return varchar(8000)

set @return = ''

EXEC @hr = sp_OACreate 'microshaoft.strings', @object OUT

IF @hr = 0

begin

EXEC @hr = sp_OAMethod @object, 'StringConvert',@return OUT,@

IF @hr <> 0

begin

EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT

set @return = @object + ' ' + @source + ' ' + @description

end

end

else

begin

EXEC @hr = sp_OAGetErrorInfo @object, @source OUT, @description OUT

set @return = @object + ' ' + @source + ' ' + @description

end

EXEC @hr = sp_OADestroy @object

--select @return

--select dbo.UDF_StringConvert('阿姐速度极高')

return @return

end

go

select dbo.UDF_StringConvert('阿姐速度极高')

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航