mssql 存儲(chǔ)過(guò)程調(diào)用C#編寫(xiě)的DLL文件
我把其中的一種思路整理出來(lái):
1. 準(zhǔn)備DLL文件
首先,你需要新建一個(gè)類庫(kù)工程,工程名沒(méi)有要求,隨意取為Test。新建一個(gè)類文件,例如:
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盤(pán),命令提示窗口中,進(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è)試腳本
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)生依賴感。
- C#連接Oracle數(shù)據(jù)庫(kù)使用Oracle.ManagedDataAccess.dll
- 用VB生成DLL封裝ASP連接數(shù)據(jù)庫(kù)的代碼
- C#中實(shí)現(xiàn)在32位、64位系統(tǒng)下自動(dòng)切換不同的SQLite dll文件
- SQL Server 2008 安裝SQLDMO.dll的方法
- SQL 無(wú)法裝載DLL Microsoft原因(無(wú)法修改sa密碼)
- PHP連接SQLServer2005的實(shí)現(xiàn)方法(附ntwdblib.dll下載)
- PHP連接SQLSERVER 注意事項(xiàng)(附dll文件下載)
- PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
- libmysql.dll與php.ini是否真的要拷貝到c:\windows目錄下呢
- Sql Server 數(shù)據(jù)庫(kù)中調(diào)用dll文件的過(guò)程
相關(guān)文章
asp.net下利用JS實(shí)現(xiàn)對(duì)后臺(tái)CS代碼的調(diào)用方法
asp.net下利用JS實(shí)現(xiàn)對(duì)后臺(tái)CS代碼的調(diào)用方法...2007-04-04ASP.NET MVC中HtmlHelper控件7個(gè)大類中各個(gè)控件使用詳解
本文主要介紹HtmlHelper類控件的使用方法,給初涉MVC的朋友一些幫助,有需要的朋友可以參考一下。2016-03-03asp.net中調(diào)用winrar實(shí)現(xiàn)壓縮解壓縮的代碼
asp.net壓縮解壓縮,需要服務(wù)器安裝WinRar,并且把Rar.exe拷貝到網(wǎng)站根目錄。這樣我們就可以方面的執(zhí)行壓縮解壓縮了。2008-09-09在asp.net網(wǎng)頁(yè)中顯示數(shù)學(xué)符號(hào)的代碼
在網(wǎng)頁(yè)中顯示一些符號(hào),如數(shù)學(xué)符號(hào)(Insus.NET僅提供常用符號(hào)),需要的朋友可以參考下2012-10-10ASP.Net中利用CSS實(shí)現(xiàn)多界面的兩種方法
這篇文章主要介紹了ASP.Net中利用CSS實(shí)現(xiàn)多界面的兩種方法,包括動(dòng)態(tài)加載css樣式與動(dòng)態(tài)設(shè)置頁(yè)面同類控件的方法來(lái)實(shí)現(xiàn)該功能,是非常具有實(shí)用價(jià)值的技巧,需要的朋友可以參考下2014-12-12ASP.NET Core使用SkiaSharp實(shí)現(xiàn)驗(yàn)證碼的示例代碼
本篇文章主要介紹了ASP.NET Core使用SkiaSharp實(shí)現(xiàn)驗(yàn)證碼的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12asp.net Linq To Xml上手Descendants、Elements遍歷節(jié)點(diǎn)
C#3.0 Vs2008 RTM 本文介紹如何使用 Descendants、Elements快速遍歷XML節(jié)點(diǎn)2009-07-07一個(gè)ASP.NET的MYSQL的數(shù)據(jù)庫(kù)操作類自己封裝的
這篇文章主要介紹了一個(gè)ASP.NET的MYSQL的數(shù)據(jù)庫(kù)操作類自己封裝的,在數(shù)據(jù)庫(kù)操作類中的連接字符串中記得加上charset=utf8 需要的朋友可以參考下2014-08-08