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

3 篇文章 0 订阅
<script language="javascript" src="httP://www.chinaitpower.com/images/ad.js" type="text/javascript" charset="utf-8"> </script>

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值