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;
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