首页 > 编程 > .NET > 正文

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

2024-07-10 13:01:38
字体:
来源:转载
供稿:网友
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('阿姐速度极高')

,欢迎访问网页设计爱好者web开发。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表