下面为您介绍的调用DB2存储过程方法实现的是Lotus Notes调用DB2存储过程,如果您对DB2存储过程方面感兴趣的话,不妨一看。
编写DB2存储过程和Lotus Notes调用DB2存储过程篇
使用DB2存储过程的应用程序必须写成两个独立的过程。主程序包含在客户应用程序中,在客户机上执行。主调程序可以用任何被支持的宿主语言编写。存储过程在数据库服务器上执行,必须用一种支持数据库服务器的编程语言编写。
我们可以用Java编写代理或用DECS、NotesPump实时Notes作业去调用存储过程,如COBOL、REXX或Java。
Lotus Notes调用DB2存储过程
我们用ExecProcedure方法去调用命名为testProce存储过程。首先要在运行存储过程的数据库中为存储过程编目,这使用CREATE PROCEDURE SQL语句。可以给存储过程传送多达30个参数(这是LotusScript的限制)。这些参数用于输入还是输出,或者是既用于输入、又用于输出,取决于为存储过程编目时对参数的定义。
客户程序例如LoadEmployee代理在客户机上运行,执行以下动作:
1.为可选数据结构和主机变量声明、分配和初始化存储空间:
[code:1:3f6f8a2cde]Dim SalaryMedian As Long
Dim WorkDept As String
其中:
SalaryMedian 主机变量
WorkDept 主机变量 [/code:1:3f6f8a2cde]
2.连接到数据库:
[code:1:3f6f8a2cde]retcode%=Con.ConnectTo("DEMO","db2admin","db2admin")
其中:
DEMO 创建的访问DB2的ODBC名称
db2admin OS/400 user profile
db2admin Login password[/code:1:3f6f8a2cde]
3.通过ExecProcedure调用存储过程:
[code:1:3f6f8a2cde]rc=res.ExecProcedure("testProce",SalaryMedian,workdept)
其中:
testProcedure 存储过程的注册名
SalaryMedian一个输出变量,接收存储过程传递的值
WorkDept存储过程的一个输出参数[/code:1:3f6f8a2cde]
4.从存储过程接收数据:
[code:1:3f6f8a2cde]doc.SalaryMedian = SalaryMedian[/code:1:3f6f8a2cde]
5.断开同数据库的连接,隐式执行提交:
[code:1:3f6f8a2cde]If Not Res Is Nothing Then Res.Close(DB_CLOSE)
If Not Con Is Nothing Then Con.Disconnect[/code:1:3f6f8a2cde]