Lotus Notes調(diào)用DB2存儲(chǔ)過程
下面為您介紹的調(diào)用DB2存儲(chǔ)過程方法實(shí)現(xiàn)的是Lotus Notes調(diào)用DB2存儲(chǔ)過程,如果您對(duì)DB2存儲(chǔ)過程方面感興趣的話,不妨一看。
編寫DB2存儲(chǔ)過程和Lotus Notes調(diào)用DB2存儲(chǔ)過程篇
使用DB2存儲(chǔ)過程的應(yīng)用程序必須寫成兩個(gè)獨(dú)立的過程。主程序包含在客戶應(yīng)用程序中,在客戶機(jī)上執(zhí)行。主調(diào)程序可以用任何被支持的宿主語言編寫。存儲(chǔ)過程在數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行,必須用一種支持?jǐn)?shù)據(jù)庫(kù)服務(wù)器的編程語言編寫。
我們可以用Java編寫代理或用DECS、NotesPump實(shí)時(shí)Notes作業(yè)去調(diào)用存儲(chǔ)過程,如COBOL、REXX或Java。
Lotus Notes調(diào)用DB2存儲(chǔ)過程
我們用ExecProcedure方法去調(diào)用命名為testProce存儲(chǔ)過程。首先要在運(yùn)行存儲(chǔ)過程的數(shù)據(jù)庫(kù)中為存儲(chǔ)過程編目,這使用CREATE PROCEDURE SQL語句。可以給存儲(chǔ)過程傳送多達(dá)30個(gè)參數(shù)(這是LotusScript的限制)。這些參數(shù)用于輸入還是輸出,或者是既用于輸入、又用于輸出,取決于為存儲(chǔ)過程編目時(shí)對(duì)參數(shù)的定義。
客戶程序例如LoadEmployee代理在客戶機(jī)上運(yùn)行,執(zhí)行以下動(dòng)作:
1.為可選數(shù)據(jù)結(jié)構(gòu)和主機(jī)變量聲明、分配和初始化存儲(chǔ)空間:
[code:1:3f6f8a2cde]Dim SalaryMedian As Long
Dim WorkDept As String
其中:
SalaryMedian 主機(jī)變量
WorkDept 主機(jī)變量 [/code:1:3f6f8a2cde]
2.連接到數(shù)據(jù)庫(kù):
[code:1:3f6f8a2cde]retcode%=Con.ConnectTo("DEMO","db2admin","db2admin")
其中:
DEMO 創(chuàng)建的訪問DB2的ODBC名稱
db2admin OS/400 user profile
db2admin Login password[/code:1:3f6f8a2cde]
3.通過ExecProcedure調(diào)用存儲(chǔ)過程:
[code:1:3f6f8a2cde]rc=res.ExecProcedure("testProce",SalaryMedian,workdept)
其中:
testProcedure 存儲(chǔ)過程的注冊(cè)名
SalaryMedian一個(gè)輸出變量,接收存儲(chǔ)過程傳遞的值
WorkDept存儲(chǔ)過程的一個(gè)輸出參數(shù)[/code:1:3f6f8a2cde]
4.從存儲(chǔ)過程接收數(shù)據(jù):
[code:1:3f6f8a2cde]doc.SalaryMedian = SalaryMedian[/code:1:3f6f8a2cde]
5.斷開同數(shù)據(jù)庫(kù)的連接,隱式執(zhí)行提交:
[code:1:3f6f8a2cde]If Not Res Is Nothing Then Res.Close(DB_CLOSE)
If Not Con Is Nothing Then Con.Disconnect[/code:1:3f6f8a2cde]
【編輯推薦】