1. 準(zhǔn)備DLL文件 首先,你需要新建一個(gè)類庫(kù)工程,工程名沒(méi)有要求,隨意取為Test。新建一個(gè) " /> 国产免费av一区二区三区,波多野结衣在线观看,六月天综合网

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

mssql 存儲(chǔ)過(guò)程調(diào)用C#編寫的DLL文件

網(wǎng)上很有多類似的文章,但描述不完整,在某些關(guān)鍵的地方,少了相應(yīng)的補(bǔ)充,以至于那些例子都無(wú)法測(cè)試通過(guò)。
我把其中的一種思路整理出來(lái):

1. 準(zhǔn)備DLL文件
首先,你需要新建一個(gè)類庫(kù)工程,工程名沒(méi)有要求,隨意取為Test。新建一個(gè)類文件,例如:
復(fù)制代碼 代碼如下:
using System;

namespace Test
{
public class SayHello
{
public SayHello()
{
}

public string Hi()
{
return "Hello!";
}

public string Hey(string name)
{
return "Hey!" + name;
}
}
}

編譯類庫(kù)工程得到DLL文件。

2. 注冊(cè)DLL
將DLL文件拷貝到數(shù)據(jù)庫(kù)服務(wù)器,例如:將Test.dll拷貝到D盤,命令提示窗口中,進(jìn)入到.NET framework 1.1的目錄下,c:/windows/Microsoft.NET/Framework/v1.1.4322>,使用命令:
regasm d:/Test.dll /codebase
窗口提示: 成功注冊(cè)了類型(或Types registered successfully)
則說(shuō)明注冊(cè)成功。
3. 測(cè)試腳本
復(fù)制代碼 代碼如下:
DECLARE @object int
DECLARE @hr int
DECLARE @property varchar(255)
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)

-- 創(chuàng)建對(duì)象實(shí)例, sp_OACreate 后引號(hào)內(nèi)為'命名空間.類名'
EXEC @hr = sp_OACreate 'Test.SayHello', @object OUT
IF @hr <> 0
BEGIN
goto info
END

-- 調(diào)用對(duì)象方法, sp_OAMetohd 參數(shù)為方法名,要求該方法屬于公共類型(public),且不能是靜態(tài)方法(即被static修飾)
EXEC @hr = sp_OAMethod @object, 'Hi', @return OUT

-- EXEC @hr = sp_OAMethod @object, 'Hey', @return OUT, 'Baby' -- 帶參數(shù)的方法的調(diào)用,多個(gè)參數(shù),依次累加在后

IF @hr <> 0
BEGIN
goto info
END

-- 查看結(jié)果
print @return


EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
goto info
END

--info:
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc

4. 補(bǔ)充說(shuō)明
以上步驟,在sql server 2000下測(cè)試通過(guò),不支持其他關(guān)系數(shù)據(jù)庫(kù)。

sql server 2005中可以使用“CLR函數(shù)”來(lái)達(dá)到上述效果,圖形化操作,非常簡(jiǎn)便,不得不說(shuō)微軟的產(chǎn)品容易讓人產(chǎn)生依賴感。

AspNet技術(shù)mssql 存儲(chǔ)過(guò)程調(diào)用C#編寫的DLL文件,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 蒙山县| 察隅县| 南康市| 八宿县| 罗城| 孝义市| 河池市| 青铜峡市| 依安县| 海门市| 波密县| 获嘉县| 井陉县| 栖霞市| 商南县| 中西区| 铜川市| 丰台区| 西林县| 施秉县| 潼南县| 连州市| 武陟县| 定襄县| 易门县| 宾阳县| 诏安县| 丹东市| 亳州市| 伊宁市| 普兰县| 东宁县| 平利县| 松原市| 米易县| 大竹县| 木里| 宁蒗| 富平县| 宣威市| 盐源县|