SQL Server 2000 漢字?jǐn)?shù)據(jù)簡(jiǎn)繁轉(zhuǎn)換案例 (COM,.Net)
發(fā)表時(shí)間:2023-08-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]SQL Server 2000 漢字?jǐn)?shù)據(jù)簡(jiǎn)繁轉(zhuǎn)換實(shí)例 (COM,.Net)首先確認(rèn)在 Windows (當(dāng)然只是 SQL Server 的服務(wù)器端) 上安裝了 .Net Framework 1.1 ...
SQL Server 2000 漢字?jǐn)?shù)據(jù)簡(jiǎn)繁轉(zhuǎn)換實(shí)例 (COM,.Net)
首先確認(rèn)在 Windows (當(dāng)然只是 SQL Server 的服務(wù)器端) 上安裝了 .Net Framework 1.1 !
確認(rèn)成功安裝后:
1.用 sn -k 為該類庫(kù)創(chuàng)建一個(gè)強(qiáng)名密鑰文件:
在安裝 Microsoft .Net Framework SDK 的所在目錄下的 v1.1\Bin\ 子目錄下執(zhí)行如下命令行:
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);
// //繁簡(jiǎn)轉(zhuǎn)換亦可 StringConvert 再加參數(shù)控制,不贅述
}
}
}
3.在 Windows 下 運(yùn)行 cmd 進(jìn)入命令行控制臺(tái),執(zhí)行如下命令行:
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
如有錯(cuò)誤,參考 csc.exe /? 幫助,或 MSDN 修正!
確認(rèn)正確執(zhí)行后,本例將生成: C:\Microshaoft.dll 文件!
4.再執(zhí)行如下命令行:
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\regasm.exe c:\microshaoft.dll /tlb:microshaoft.tlb /codebase
確認(rèn)正確執(zhí)行后,類型庫(kù)注冊(cè)成功,將生成: C:\Microshaoft.tlb 文件!
5.編寫如下 T-SQL 創(chuàng)建 函數(shù) 及 測(cè)試查詢(sysadmin 的成員 如 sa 才行):
(T-SQL 調(diào)用 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('阿姐速度極高')