Foros del Web » Programando para Internet » PHP »

Error al ejecutar SP de SQL Server por ODBC

Estas en el tema de Error al ejecutar SP de SQL Server por ODBC en el foro de PHP en Foros del Web. Hola a todos, estoy intentando ejecutar un SP de SQL Server desde un scrip PHP la conexión la he establecido por ODBC pero al ejecutar ...
  #1 (permalink)  
Antiguo 02/02/2013, 09:20
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Error al ejecutar SP de SQL Server por ODBC

Hola a todos, estoy intentando ejecutar un SP de SQL Server desde un scrip PHP la conexión la he establecido por ODBC pero al ejecutar el scrip me genera los siguientes errores

En un ambiente Windows recibo estos Warning

Warning: odbc_execute(): in C:\xampp\htdocs\AS400\sql.php on line 15

Warning: odbc_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\AS400\sql.php on line 16

el codigo php es el siguiente

$dbconect = odbc_connect("SQLServer", $usuario, $contrasena);
if ($dbconect == 0) {
echo("Ha fallado la conexión a la base de datos.");
$sqlerror = odbc_errormsg($dbconect);
echo($sqlerror);
}else{
$sql="{CALL SP_A_EJECUTAR ('0000004401230','01/01/2012','31/12/2012')}";
$res = odbc_prepare($dbconect,$sql);
$result=odbc_execute($res)or die(exit("Error en odbc_exec"));
$row=odbc_fetch_array($result);
echo "<pre>";
print_r($row);
echo "</pre>";

Pero en un ambiente linux recibo esto otro

Warning: odbc_execute(): SQL error: [unixODBC][FreeTDS][SQL Server]Error converting data type varchar to datetime., SQL state 37000 in SQLExecute in /var/www/sql.php on line 13 Error en odbc

Entiendo que este warning es por la forma en que envío los parametros de fecha pero he intentado enviarlo de distintas formas pero siempre recibo el mismo warning
Cuando cambio la cadena y lo ejecuto como
$sql='{CALL SP_A_EJECUTAR ("0000004401230","01/01/2012","31/12/2012")}';

Siempre me sucede lo mismo



Agradeceré su ayuda.

Última edición por alex1084; 02/02/2013 a las 09:36
  #2 (permalink)  
Antiguo 02/02/2013, 14:57
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Error al ejecutar SP de SQL Server por ODBC

Tal vez te sirva leer esto: http://anubhavg.wordpress.com/2009/0...l-server-2005/
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 04/02/2013, 08:54
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Error al ejecutar SP de SQL Server por ODBC

Hola, gracias por tu aporte, aún no logro hacerlo funcionar....

Les comento algo adicional, si ejecuto la cadena
SP_A_EJECUTAR '0000004401230','01/01/2012','31/12/2012' directamente en sqlServer el SP se ejecuta sin problemas no me genera ningún error de conversión de datos, pero si esa cadena la mando a ejecutar desde PHP me genera los warning que les comentaba....
Porque sera??????
  #4 (permalink)  
Antiguo 04/02/2013, 12:13
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años
Puntos: 47
Respuesta: Error al ejecutar SP de SQL Server por ODBC

Ya logre que me funcione cuando lo ejecuto en windows, me imagino que ahora el problema es a nivel de plataformas...

El servidor es SQLServer 2008 es un server remoto, y mi pc tiene instalado el xamp y el odbc lo cree con el asistente de windows, ahi pude ejecutar el codigo php sin problemas ya pude recuperar información de SQLServer y mostrarla en la pagina que tengo de pruebas, pero cuando el mismo codigo lo ejecuto en un ambiente linux ahi me sigue generando el warning

Warning: odbc_execute(): SQL error: [unixODBC][FreeTDS][SQL Server]Error converting data type varchar to datetime., SQL state 37000 in SQLExecute in /var/www/sql.php on line 13 Error en odbc

Alguien tiene una idea del porque se genera este warning al correr en linux????

Etiquetas: odbc, server, sql
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 23:00.