viernes, 26 de febrero de 2010

Ejecutar un procedimiento almacenado Oracle 10 con VB 6.

Bueno como todo en la programación no se si esta sera la mejor forma pero es la que me funciono despues de probar de varias formas.

declaro la variable en el formulario.

Private cmmProc As New ADODB.Command


En un procedimiento inicializarComando le borro y le vuelvo a ingresar los parametros.

en el procedimiento te pongo ejeomplos de varios tipos de datos y parametro de entrada y salida.

Private Sub inicializarComando()


Dim j As Integer
Set cmmProc = New ADODB.Command
With cmmProc
.ActiveConnection = V_Cnn 'Variable con la conexion abierta
.CommandText = "INTER.GUARDAR_FALLA" 'Con el esquema
.CommandType = adCmdStoredProc
End With
For j = cmmProc.Parameters.Count - 1 To 0 Step -1
cmmProc.Parameters.Delete (j)
Next j
cmmProc.Parameters.Append cmmProc.CreateParameter("P_CODF", adUnsignedBigInt, adParamOutput)
cmmProc.Parameters.Append cmmProc.CreateParameter("P_ID_TIPOACC", adInteger, adParamInput)
cmmProc.Parameters.Append cmmProc.CreateParameter("P_DIRECC", adVariant, adParamInput)
cmmProc.Parameters.Append cmmProc.CreateParameter("P_FECHAINICIO", adBSTR, adParamInput)
cmmProc.Parameters.Append cmmProc.CreateParameter("P_COMENTARIOS", adVariant, adParamInput)
End Sub


y la parte donde lo llamo y cargo los valores de los parametros.
Public Sub cmdNuevo_Click()

inicializarComando
cmmProc("P_CODF") = Null
cmmProc("P_ID_TIPOACC") = Val(cboAccion.BoundText)
cmmProc("P_DIRECC") = Trim(txtDirecc.Text)
cmmProc("P_FECHAINICIO") = txtFechaI.DisplayText + " " + txtHoraI.DisplayText

cmmProc("P_COMENTARIOS") = txtComentarios.Text
cmmProc.Execute
V_llave = cmmProc("P_CODF")

end sub


Bueno espero les sirva, a mi me funciono.