免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1754 | 回复: 2
打印 上一主题 下一主题

在RPG Stored Procedure中如何处理ResultSet [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-20 12:58 |只看该作者 |倒序浏览
请问如果store procedure 是用RPG 或ILE RPG 程序,那如何处理result set?

论坛徽章:
0
2 [报告]
发表于 2004-09-10 09:53 |只看该作者

在RPG Stored Procedure中如何处理ResultSet

很多天了,有消息了吗?

论坛徽章:
0
3 [报告]
发表于 2004-09-10 10:48 |只看该作者

在RPG Stored Procedure中如何处理ResultSet

惭愧,我RPGLE目前正在自学中,所以无法针对你的问题实际解答。
不知道IBM技术支持中心的文章是否可以帮得上忙?

============================================================
        《在Stored Procedure中返回ResultSet.》
       
产品:DB2/400
平台:iSeries
版本:V5RxMx

问题:在Stored Procedure中返回ResultSet.

解答:从R510以后,在UDB/400的SQL Stored Procedure可以支持ResultSet类型的返回值.
       
例:
       
CREATE PROCEDURE QGPL/TEST1
ResultSetS 1 //指定返回的ResultSet的个数
LANGUAGE SQL
BEGIN
DECLARE QGPL/C1 CURSOR WITH RETURN FOR //使用WITH RETURN指定该CURSOR返回ResultSet
SELECT * FROM QGPL/CUSTOMER;
OPEN C1; //和普通的CURSOR处理不同,这里只需要打开CURSOR,不需要FETCH和执行CLOSE CURSOR语句
END;
       
对ResultSet的检查可以使用Client Access Express提供的Operation Navigator中的的run sql script模块检查
       
       
下面是使用Visual Basic编写的使用Stored Procedure的实例:
       
在处理窗口中只有一个列表对象,lstCustomer和一个按钮cmdGetCustName。
当单击该按钮的时候,调用AS/400后台存储过程,并把结果显示在列表控件中.
       
Const cnsSource = <ODBCSource>;  ==〉指定自己定义ODBC data source
Const cnsUserID = <UserID>;  ==〉指定连接用户
Const cnsPasswd = <assword>;  ==〉连接密码
Option Explicit
Dim Cnn As ADODB.Connection  ==〉是用ADO进行数据库连接
Dim Cmd As ADODB.Command
Dim Rs As ADODB.Recordset  ==〉定义Recordset对象接受查询结果
Dim strCnn As String
Dim strSQL As String
       
Private Sub cmdGetCusName_Click()  ==〉单击CustName事件
Set Rs.Source = Cmd
Rs.Open
While Not Rs.EOF
lstCustomer.AddItem Rs(0)
Rs.MoveNext  ==〉移动数据库指针
Wend  ==〉while循环结尾
Rs.Close
End Sub
       
Private Sub Form_Load()  ==〉表单装载事件
Set Cnn = New ADODB.Connection
strCnn = "ROVIDER=MSDASQL;dsn=" & cnsSource & ";uid=" & cnsUserID & ";pwd="
& cnsPasswd & ";"
With Cnn
.ConnectionString = strCnn
.CursorLocation = adUseClient
.Open
End With
strSQL = "{call library.getCusName()}"  ==〉调用存储过程
Set Cmd = New ADODB.Command
Set Cmd.ActiveConnection = Cnn
Cmd.CommandText = strSQL
Cmd.CommandType = adCmdText
Set Rs = New ADODB.Recordset  ==〉把ResultSet传入Rs
Rs.CursorType = adOpenStatic
Rs.LockType = adLockReadOnly
End Sub
       
Private Sub Form_Unload(Cancel As Integer)  ==>;窗口卸载事件
Cnn.Close
Set Cnn = Nothing
Set Cmd = Nothing
Set Rs = Nothing  ==〉释放资源
End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP