rdo
在vb中如何用rdo来调用sql server 的存贮过程 问题点数:100、回复次数:1Top
1 楼fbwt()回复于 2002-04-04 17:39:49 得分 100
Function Execproc(procName As String, InPutParaMeterNum As Integer, InPutParaMeter())
'功能:远行Proc
'参数:procName存储过程的名称,InPutParaMeterNum输入参数的个数(存储过程要用的参数的个数);
' InPutParaMeter输入参数数组,参数直,数据的个数是 InPutParaMeterNum-1
' 输出参数的个数只能为1个;
' OutPutParaMeter输出参数数直,这个数给用户处理
'要求:对于参数来说,前面的一定要为输入参数,后面的为输出参数;输出参数的个数只能为1个.存储过程最少有一个输入参数,一个输出参数
'返回:输出参数数
Dim en As rdoEnvironment
Dim Cn As New rdoConnection '用完后要放回这个联接,不然多了,会消耗更多的系统资源
Dim CPw As rdoQuery, QSQL As String
Dim i As Integer
Set en = rdoEnvironments(0)
Call RdoConnectDatabase
Set Cn = en.OpenConnection(dsname:="", Prompt:=rdDriverNoPrompt, Connect:=Conn)
QSQL$ = "{ call " & procName & ""
QSQL$ = QSQL$ + "("
For i = 2 To InPutParaMeterNum
QSQL$ = QSQL$ + "?,"
Next
QSQL$ = QSQL$ + "?"
QSQL$ = QSQL$ + ")}"
Set CPw = Cn.CreateQuery("strInsert", QSQL$)
'返回的数据类型
CPw.rdoParameters(InPutParaMeterNum - 1).Direction = rdParamReturnValue
'参数据附值
For i = 0 To InPutParaMeterNum - 2
CPw(i) = InPutParaMeter(i)
Next
CPw.Execute
'获取返回值:
Execproc = CPw.rdoParameters(InPutParaMeterNum - 1)
Set Cn = Nothing
Set CPw = Nothing
End FunctionTop




