最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2009年05月26日 02:34:18   作者:  
有時(shí)候,我們會(huì)遇到這樣需求:存儲(chǔ)過程要調(diào)用外部的動(dòng)態(tài)鏈接庫文件,來實(shí)現(xiàn)某個(gè)功能。
網(wǎng)上很有多類似的文章,但描述不完整,在某些關(guān)鍵的地方,少了相應(yīng)的補(bǔ)充,以至于那些例子都無法測(cè)試通過。
我把其中的一種思路整理出來:

1. 準(zhǔn)備DLL文件
首先,你需要新建一個(gè)類庫工程,工程名沒有要求,隨意取為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;
}
}
}

編譯類庫工程得到DLL文件。

2. 注冊(cè)DLL
將DLL文件拷貝到數(shù)據(jù)庫服務(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)
則說明注冊(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ǔ)充說明
以上步驟,在sql server 2000下測(cè)試通過,不支持其他關(guān)系數(shù)據(jù)庫。

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

相關(guān)文章

最新評(píng)論

汕头市| 上犹县| 罗甸县| 台东县| 田东县| 法库县| 青冈县| 兰西县| 綦江县| 西宁市| 宁化县| 新疆| 济源市| 睢宁县| 昭平县| 新和县| 防城港市| 洞口县| 长寿区| 筠连县| 绥中县| 绥阳县| 扎赉特旗| 射洪县| 博野县| 诏安县| 鹤庆县| 西乌珠穆沁旗| 罗田县| 霍城县| 长乐市| 清新县| 白玉县| 察哈| 太谷县| 安多县| 莱芜市| 湖南省| 庆阳市| 甘肃省| 和政县|