在 SQL Server 的儲存過程中呼叫 Com 元件 (轉)

worldblog發表於2007-12-05
在 SQL Server 的儲存過程中呼叫 Com 元件 (轉)[@more@]

在 SERVER 的過程中

關鍵詞:

在 SQL Server 的儲存過程中呼叫 Com 元件


/**
 ***
 豆腐製作 都是精品
 888 豆腐技術站
 如轉載 請 註明出處
 */

 SQL server 的 T-Sql 語言的功能是 非常的強大,但是有個時候 也確實是有些限制和不方便,一天,豆腐想為什麼不象 asp 一樣大量的借用元件呢?說幹就幹,我這就 開始在 Sql online book 中查詢,呵呵終於找到了一個Sql的儲存過程sp_OACreate,下面大家就和豆腐一起去看看這個儲存過程的神奇之處吧

 首先我們先用作一個最簡單的元件 ,因為是介紹性的文章,所以這個元件是非常的的簡單,在具體的工作中,可以寫個比這個業務複雜的多的元件
Project Name: testSQLCOM
Class Name: TestMath
Public Function AddMe(a As Long, b As Long) As Long
 AddMe = a + b
End Function
編譯生成後,我們就可以在 Sql Server 中對這個 Com 元件進行呼叫了
declare @i int
declare @intRet int
declare @intRetCode int
DECLARE @strErr varchar (255)
DECLARE @strErr1 varchar (255)
/* 首先建立Com 例項 */
exec @ret_code = sp_OACreate "testSQLCOM.TestMath", @i out
IF @intRetCode <> 0
BEGIN
 /* 建立例項 失敗 */
 EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
 PRINT "建立例項失敗,失敗的原因是:: " + @strErr + " " + @strErr1
 RETURN
END

/* 建立成功,開始呼叫 */
EXEC @intRetCode = sp_OAMethod @i,'AddMe',@ret OUT,100,200
IF @intRetCode <> 0
BEGIN
 /* 呼叫方法出錯 */
 EXEC sp_OAGetErrorInfo @i, @strErr OUT, @strErr1 OUT
 PRINT "呼叫方法失敗,失敗的原因是:: " + @strErr + " " + @strErr1
 EXEC sp_OADestroy @i
 RETURN
END
PRINT "返回的結果是" + Str(@intRet)
exec sp_OADestroy @i

以前是儲存過程的輸出

Step 4:
返回的結果是 300

我們在這篇文章中介紹了在 Sql server 中使用元件的方法,具體的幫助大家請檢視SQL Onlone Book


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988586/,如需轉載,請註明出處,否則將追究法律責任。

相關文章