sql >> Base de Datos >  >> RDS >> Oracle

Función de llamada VBA a través de VBA y ADO

Obtener el valor de retorno de la función con OLEDB

Busqué esto por todas partes, pero finalmente resolví el problema yo mismo.
Mi solución está en VBScript, pero la he representado en el código (no probado) a continuación.

El truco es que el el primer parámetro es el valor devuelto .

Private Sub test()
Dim Oracon As ADODB.Connection
Dim cmd As New ADODB.Command
Dim param1 As New ADODB.Parameter
Dim param0 As New ADODB.Parameter
Dim objErr As ADODB.Error

Set Oracon = CreateObject("ADODB.Connection")
mujuser = "xxxx"
mujPWD = "xxxxx"

  strConn = "UID=" & mujuser & ";PWD=" & mujPWD & ";driver={Microsoft ODBC for Oracle};" & _
              "SERVER=xx.xxx;"
Oracon.ConnectionString = strConn
Oracon.Open
cmd.ActiveConnection = Oracon
 cmd.CommandText = "el_test"
   cmd.CommandType = adCmdStoredProc

Set param0 = cmd.CreateParameter("P0", adLongVarChar, adParamReturnValue, 256)
Set param1 = cmd.CreateParameter("P1", adLongVarChar, adParamInput, 256)
cmd.Parameters.Append param0
cmd.Parameters.Append param1

cmd.Execute

Dim result As String
result = param0.Value  ' Use the variable you set. Same as cmd.Parameters(1).Value '

End Sub