Pregunta: | 28812 - ACCEDER A LOS PROCEDIMIENTOS ALMACENADOS DE ORACLE |
Autor: | Jaime Martin de la Fuente |
Estoy desarrollando una página con ASP y necesito, acceder a los procedimientos almacenados en Oracle.
He intentado por varios métodos, sin conseguirlo. ¿Alguien me puede ayudar?... Muchas gracias por Anticipado... |
Respuesta: | Mar Alique del Rio |
Desde el ASP llamas a una función que será la que llame al procedimiento almacenado de la forma:
function nombre(parametros_entrada,parametros_salida ) Set cmdStoredProc = Server.CreateObject("ADODB.Command") Set cmdStoredProc.ActiveConnection = ConexBD donde ConexBD es la conexion a la BD cmdStoredProc.CommandText = "Inserciones.AltaAnticiposal" cmdStoredProc.CommandType = 4 'Response.write "<br>" & "acuenta:" & InParameters(0) & "<br>" 'Response.write "sueldo:" & InParameters(1) & "<br>" 'Response.write "anticipos:" & InParameters(2) & "<br>" 'Response.write "irpf:" & InParameters(3) & "<br>" 'Response.write "importe:" & InParameters(4) & "<br>" 'Response.write "cantmaxn:" & InParameters(5) & "<br>" 'Response.write "cantmaxp:" & InParameters(6) & "<br>" 'Response.write "abono:" & InParameters(7) & "<br>" 'Response.write "oficina:" & InParameters(8) & "<br>" 'Response.write "entidad:" & InParameters(9) & "<br>" 'Response.write "DC:" & InParameters(10) & "<br>" 'Response.write "NC1:" & InParameters(11) & "<br>" 'Response.write "comments:" & InParameters(12) & "<br>" 'Response.write "userid:" & InParameters(13) & "<br>" 'Response.write "host:" & InParameters(14) '****************** LLamada a procedimiento CreateParameter: Name Type Direction Size Value cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("acuenta",adInteger,adParamInput,,InParameters(0)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("sueldo",adDouble,adParamInput,,InParameters(1)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("anticipo",adDouble,adParamInput,,InParameters(2)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("irpf",adDouble,adParamInput,,InParameters(3)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("importe",adDouble,adParamInput,,InParameters(4)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("cantmaxn",adDouble,adParamInput,,InParameters(5)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("cantmaxp",adDouble,adParamInput,,InParameters(6)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("abono",adInteger,adParamInput,,InParameters(7)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("ofic",adInteger,adParamInput,,InParameters(8)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("enti",adInteger,adParamInput,,InParameters(9)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("DC",adInteger,adParamInput,,InParameters(10)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("NC1",adDouble,adParamInput,,InParameters(11)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("Remarks",adVarChar,adParamInput,1000,InParameters(12)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("UserId",adInteger,adParamInput,,InParameters(13)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("Host",adVarChar,adParamInput,20,InParameters(14)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("Nombre",adVarChar,adParamInput,40,InParameters(15)) cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter("p_DocId",adInteger,adParamOutput) cmdStoredProc.Execute p_DocId = cmdStoredProc.Parameters("p_DocId").value Set cmdStoredProc = nothing end function |
Respuesta: | Mar Alique del Rio |
Desde el ASP llamas a una función que será la que llame al procedimiento almacenado de la forma:
function nombre(parametros_entrada,parametros_salida ) Set cmdStoredProc = Server.CreateObject("ADODB.Command") Set cmdStoredProc.ActiveConnection = ConexBD donde ConexBD es la conexion a la BD Ahora llamas al procedimiento almacenado de la forma: cmdStoredProc.CommandText = "Nombre_Paquete.NombreProcedure" cmdStoredProc.CommandType = 4 Creas lo parametros de entrada de la forma (en caso de que los tuviera); cmdStoredProc.Parameters.Append cmdStoredProc.CreateParameter(Name, Type , Direction , Size, Value ) Tantas veces como parámetros haya (de entrada y de salida) Ejecutamos el procedure; cmdStoredProc.Execute y recogemos los de salida en caso de que los haya: parametro_salida = cmdStoredProc.Parameters("campo").value Set cmdStoredProc = nothing end function |