Hi.

No need to wonder, still some people are using RDO like me, eventhough we know 
ADO.net still we have some projects which has been built and supported on RDO.

Anyway, hope this function will help you.

-Srinivas

Public Function gfExecuteSP(ByVal aStrSPName As String, ByRef aArrType(), ByRef 
aArrValue()) As Boolean

On Error GoTo gfExecuteSP_Err
Dim prdySP As rdoQuery
Dim pstrSQL As String
Dim rst As rdoResultset
Dim pintParamCnt As Integer
Dim pstrParamChr As String
Dim pintloop As Integer
Dim pblnOnTrans As Boolean


    For pintloop = LBound(aArrType) To UBound(aArrType)
        pstrParamChr = pstrParamChr & "?, "
    Next
        
    pstrParamChr = Left(pstrParamChr, Len(pstrParamChr) - 2)
        
    pstrSQL = "{call " & aStrSPName & "(" & pstrParamChr & ") }"
    Set prdySP = cnMSTT.CreateQuery(aStrSPName, pstrSQL)
                            
    ' Set Parameter "direction" for each output
    ' and return value parameter.
    
    For pintloop = LBound(aArrType) To UBound(aArrType)
        prdySP(pintloop).Direction = aArrType(pintloop)
        If aArrType(pintloop) = 0 Or aArrType(pintloop) = 1 Then 'Input or 
InputOutput
            prdySP(pintloop).Value = aArrValue(pintloop)
        End If
    Next pintloop
    
            
    ' Create the result set and populate the Ps values.
    cnMSTT.BeginTrans
    pblnOnTrans = True
    Set rst= prdySP.OpenResultset(rdOpenStatic)
    
    If prdySP(0) = 0 And IsNull(prdySP(1)) And IsNull(prdySP(2)) Then
        cnMSTT.CommitTrans
        gfExecuteSP = True
        pblnOnTrans = False
    Else
        cnMSTT.RollbackTrans
        pblnOnTrans = False
        gfExecuteSP = False
        
        aArrValue(0) = prdySP(0)
        aArrValue(1) = prdySP(1)
        aArrValue(2) = prdySP(2)
        
        If IsNull(prdySP(1)) Then
            MsgBox prdySP(2), vbCritical, "Error While Executing SP -" & 
aStrSPName
        Else
            MsgBox prdySP(1) & vbCr & prdySP(2), vbCritical, "Error While 
Executing SP -" & aStrSPName
        End If
        
        GoTo Cleanup
    End If
        
Cleanup:
    Set prdySP = Nothing
    Set rst= Nothing
    Exit Function

gfExecuteSP_Err:
    If pblnOnTrans Then
        cnMSTT.RollbackTrans
        Set prdySP = Nothing
        Set rst  = Nothing
    End If
    MsgBox Err.Description, vbExclamation

End Function

*************************************************************************************************

Good day friends!

I was wondering if anyone has a code snippet to call an SQL stored 
procedure from within VB using RDO.

Thanks so much!



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

[Non-text portions of this message have been removed]






'// =======================================================
    Rules : http://ReliableAnswers.com/List/Rules.asp
    Home  : http://groups.yahoo.com/group/vbHelp/
    =======================================================
    Post  : [email protected]
    Join  : [EMAIL PROTECTED]
    Leave : [EMAIL PROTECTED]
'// =======================================================
 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/vbhelp/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to