Foros del Web » Programando para Internet » PHP »

Procedimientos almacenados

Estas en el tema de Procedimientos almacenados en el foro de PHP en Foros del Web. Como puedo llamar usando una coneccion ODBC un procedimiento almacenado (stored procedure) he visto solamente las funciones de odbc llamadas odbc_procedures y odbc_procedurecolumns que trae ...
  #1 (permalink)  
Antiguo 06/06/2002, 18:01
 
Fecha de Ingreso: junio-2002
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Procedimientos almacenados

Como puedo llamar usando una coneccion ODBC un procedimiento almacenado (stored procedure) he visto solamente las funciones de odbc llamadas odbc_procedures y odbc_procedurecolumns que trae ( resource connection_id [, string qualifier [, string owner [, string proc [, string column]]]])

pero no se donde le mando los parametros, como los cuantifico es decir como sabe cuantos recibe y como guardo el resultado del procedimiento

Si alguien tiene algun ejemplo lo puede postear, solo lo he hecho en asp por si a alguien le interesa conectandome a informix con un odbc
  #2 (permalink)  
Antiguo 07/06/2002, 09:08
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Procedimientos almacenados

Hola.
Yo tuve hace unos días la misma duda y encontré un modo de hacerlo siempre y cuando no me devolviera parámetros.
Primero creo una sentencia con la llamada al procedimiento y los parámetros de entrada.
Código:
 $param1=loQueSea;
       $param2=OtraCosa;
[CODE] $procedimiento="NombreProcedimiento($param1,$ param2)";[code]
Código:
  $sentencia = "begin $procedimiento; end;";
Código:
$correcto=odbc_exec($conexion,$sentencia);
En teoria (y en la práctica, a mi también) se ejecuta el procedimiento. Pero eso sí, todavía no he logrado ejecutar un procedimiento que con parámetros de salida.
Un saludo y espero que te sirva de algo.
Cristina



  #3 (permalink)  
Antiguo 07/06/2002, 14:21
 
Fecha de Ingreso: junio-2002
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Re: Procedimientos almacenados

que significa la instruccion
Código:
 que colocas ahi ???

lo probe sin esa instruccion enviando 2 parametros y me manda un warning que dice: Warning: No array passed to odbc_execute() in C:\nuevos\asp\procedure.php on line 14

mi codigo es:


<HTML>
<HEAD>
<TITLE>procedimiento</TITLE>
</HEAD>
<body bgcolor="#3366FF" text="#FFFFFF">
<?php
$param1 = ltrim($a);
$param2 = ltrim($b);
echo $param1;
echo $param2;
$conexion = odbc_connect("basepro", "contact", "passwd3");
$procedimiento="grabaserie($param1,$param2)";
$sentencia = "begin $procedimiento; end;";
$correcto=odbc_execute($conexion,$sentencia); 
echo odbc_error();
?>
</BODY>
</HTML>


he pintado los parametros y si los lee pero a la hora de ejecutar me manda el mensaje, no se si hace falta algo dentro del code, el procedimiento lee el parametro a y b y los inserta en una tabla, este mismo lo hice en asp y si me funciona pero aqui no se si me falta algo.
Gracias
  #4 (permalink)  
Antiguo 10/06/2002, 01:30
 
Fecha de Ingreso: febrero-2002
Ubicación: Guadalajara
Mensajes: 103
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: Procedimientos almacenados

HOla de nuevo.
He comprobado tu código y a mi tb me da el warning que te da a ti. He cambiado el odbc_execute por odbc_exec y tira perfectamente. Así, que prueba poniendo tan solo odbc_exec. A mi me funciona.
Si no te va, ya lo intentaremos de otro modo.

Saludos
Cristina
  #5 (permalink)  
Antiguo 01/11/2005, 06:57
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 971
Antigüedad: 13 años, 7 meses
Puntos: 2
Hola gente, Estoy probando con el codigo de este post, pero me aparecen los siguientes errores:

Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in C:\server\web\phpDW\ejemplos\pruebas\storesProcedu re.php on line 12

Warning: odbc_exec(): supplied argument is not a valid ODBC-Link resource in C:\server\web\phpDW\ejemplos\pruebas\storesProcedu re.php on line 15
IM002

tengo creada la coneccion odbc y funciona.

este es mi codigo:
<?php
$conexion = odbc_connect("mysqlODBC", "root", "pass"); //mysqlodbc es el nombre de mi coneccion odbc, es correcto?

$procedimiento="V100_SP_tb_prueba_Listar()";
$sentencia = "begin $procedimiento; end;";
$correcto=odbc_exec($conexion,$sentencia);
echo odbc_error();
?>

muchas gracias de antemano
  #6 (permalink)  
Antiguo 02/11/2005, 05:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues el error te dice que tu conexión ODBC no conecta. Te estás conectando a MS SQL Server? .. si es así . .usa mejor las funciones de MS SQL Server directas:

www.php.net/mssql
Ganaras sobre todo en rendimiento y accesibilidad de tu BD (sobre todo si tienes tu BD en un servidor diferente al que corres PHP)

Un saludo,
  #7 (permalink)  
Antiguo 02/11/2005, 05:43
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 971
Antigüedad: 13 años, 7 meses
Puntos: 2
Hola, gracias por la respuesta. Estoy usando mysql 5 Sobre xp. Cuando armo la coneccion odbc el testeo me dice que conecta, Por eso creo que debo tener algun error en el codigo y no en la coneccion ODBC.
saludos
  #8 (permalink)  
Antiguo 02/11/2005, 07:31
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues yo insisto:
Cita:
SQL error: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in
Un saludo,
  #9 (permalink)  
Antiguo 02/11/2005, 08:41
Avatar de moron  
Fecha de Ingreso: mayo-2004
Mensajes: 971
Antigüedad: 13 años, 7 meses
Puntos: 2
Porque el odbc lo cree con el driver manager de guindous, pero se conecta con mysql. (Creo haber interpretado tu apreciación correctamente).
De todas formas voy a probar con mysqli que ya me esta dando problemas, (Call to undefined function mysqli_connect() siendo que esta descomentado en el php ini el uso de msqli, tengo todos los dll copiados como corresponde en system32 y corriendo apache y el mysql) Pero bueno, ya encontraré la solución
Saludos y gracias por tus aportes tan valiosos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:04.