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

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 playyuer 的 blog

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('阿姐速度极高')

本文关键:SQL Server 2000 汉字数据简繁转换实例 (COM,.Net)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top