sql >> Database >  >> RDS >> Oracle

VBA-oproepfunctie via VBA en ADO

Haal de functie-retourwaarde op met OLEDB

Ik heb hier lang naar gezocht, maar heb het probleem uiteindelijk zelf opgelost.
Mijn oplossing is in VBScript, maar ik heb het weergegeven in de (niet-geteste) code hieronder.

De truc is dat de eerste parameter is de retourwaarde .

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


  1. Aanwezigheidsrecord klassikaal SQL Query

  2. Foreign Key zonder primaire sleutel om te verwijzen

  3. Waarom retourneert mysql_query() TRUE met een SELECT-instructie?

  4. Wat is het verschil tussen de grootte van de ORM/query builder-bibliotheekverbinding en de grootte van de pgbouncer-verbindingspool?