• Domingo 22 de Diciembre de 2024, 21:43

Autor Tema:  Consumir Datos Tipo Array Con Vb6 Desde Oracle 10g  (Leído 3701 veces)

Teddys Lopez G

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Consumir Datos Tipo Array Con Vb6 Desde Oracle 10g
« en: Martes 19 de Febrero de 2008, 20:11 »
0
Estamos tratando de consumir datos generados desde un Procedimiento almacenado en Oracle 10g. La conexión la hacemos usando OraOLEDB.Oracle.1 y con eso no tenemos ningun inconveniente, ni con los procedimientos que retornan datos tipo cursor. El problema se nos presenta cuando tratamos de ejecutar un procedimiento que retorna datos tipo Array.

El encabezado del procedimiento que invocamos es le siguiente:

P_Nombre(V_ACT_PADRE ACT.CODIGO%TYPE,
                V_CFG_OFERTA NODOS_ACT.CFG_OFE_CONSECUTIVO%TYPE,
                V_CONS_DET_EVE2 DET_EVENTOS.CONSECUTIVO%TYPE,
                V_NVL OUT NOCOPY T_RES_NVL,
                V_CNS OUT NOCOPY T_RES_CNS,
                V_CNP OUT NOCOPY T_RES_CNP,
                V_ACT OUT NOCOPY T_RES_ACT,
                V_CON OUT NOCOPY T_RES_CON,
                V_ERROR OUT NUMBER)

Los tipos de datos referenciados son los siguientes:
TYPE T_RES_NVL IS TABLE OF INTEGER
  INDEX BY BINARY_INTEGER;
TYPE T_RES_CNS IS TABLE OF INTEGER
  INDEX BY BINARY_INTEGER;
TYPE T_RES_CNP IS TABLE OF INTEGER
  INDEX BY BINARY_INTEGER;
TYPE T_RES_ACT IS TABLE OF ACT.NOMBRE%TYPE
  INDEX BY BINARY_INTEGER;
TYPE T_RES_CON IS TABLE OF NODOS_ACT.CONSECUTIVO%TYPE
  INDEX BY BINARY_INTEGER;

El código que usamos desde Vb6.0 para invocar este procidimiento, es el siguiente:

CPw1.ActiveConnection = GConexion
CPw1.CommandType = adCmdStoredProc
 
  With CPw1
    QSQL = "P_Nombre"
    .Parameters.Append .CreateParameter("V_ACT_PADRE", adNumeric, adParamInput, , param1)
    .Parameters.Append .CreateParameter("V_CFG_OFERTA", adNumeric, adParamInput, , param2)
    .Parameters.Append .CreateParameter("V_CONS_DET_EVE2", adNumeric, adParamInput, , param3)
    .Parameters.Append .CreateParameter("V_NVL", adArray Or adNumeric, adParamOutput)
    .Parameters.Append .CreateParameter("V_CNS", adArray Or adNumeric, adParamOutput)
    .Parameters.Append .CreateParameter("V_CNP", adArray Or adNumeric, adParamOutput)
    .Parameters.Append .CreateParameter("V_ACT", adArray Or adVarChar, adParamOutput)
    .Parameters.Append .CreateParameter("V_CON", adArray Or adNumeric, adParamOutput)
    .Parameters.Append .CreateParameter("V_ERROR", adNumeric, adParamOutput):  Retorno = 2
  End With
 
  CPw1.Properties("PLSQLRSet") = True
 
  CPw1.CommandText = QSQL
 
  CPw1.Execute
  'CPw1.Properties("PLSQLRSet") = False

Al ejecutar este código nos genera el siguiente mensaje de error:
-2147467259. ?|?
y no dice más.

Les agradezco toda la colaboración que en este sentido nos puedan prestar.

Teddys Lopez G

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Consumir Datos Tipo Array Con Vb6 Desde Oracle 10g
« Respuesta #1 en: Jueves 28 de Febrero de 2008, 16:50 »
0
Buenos dias Señores:
Muchas gracias por toda la colaboración prestada. Ya resolvimos el problema planteado en esta discusion. La verdad, es muy facil responder lo que ya todo el mundo sabe, lo dificil y lo que se agradece es la ayuda sobre aquellos temas que pocos saben.
Un saludo,
Teddys Lopez G.