Ver Mensaje Individual
  #10 (permalink)  
Antiguo 20/08/2014, 12:18
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error al insertar registro en mssql server

Cita:
An invalid parameter was passed to sqlsrv_query.
Hay un parámetro incorrecto en la función invocada. Así de simple.

¿Solución?



Bueno, usualmente todos nosotros vamos al manual de referencia para ver qué escribimos mal.... ¿Lo probaste?

Mira, si la línea que dispara el error es esta:
Código PHP:
Ver original
  1. $ins = sqlsrv_query( $conn, $sql);

Hay dos posibilidades: O no está abierta la conexión, o la query está mal formada.
Si la conexión ya la comprobaste, sólo restaría pensar que la query tiene algún problema, y para solucionarlo lo primero es ver cómo quedó armada. Algo que puedes hacer simplemente con un echo:

Código SQL:
Ver original
  1. $sql = "INSERT INTO correoa (archivo,fecha,codigo) values (' $fileName ' , ' $fecha ' , ' $codigo ')";
  2. // ver la query antes de enviarla.
  3. echo $sql;
  4.  
  5. $ins = sqlsrv_query( $conn, $sql);
Este paso es importante porque puede darse que los datos sean correctos, pero el formato de los mismos no lo sea, o bien que generen errores al ejecutarse, por incompatibilidad de tipos de dato.
Para saberlo con certeza lo mejor es capturar el error de salida de la llamada:
Código SQL:
Ver original
  1. $sql = "INSERT INTO correoa (archivo,fecha,codigo) values (' $fileName ' , ' $fecha ' , ' $codigo ')";
  2. // ver la query antes de enviarla.
  3. echo $sql;
  4.  
  5. $ins = sqlsrv_query( $conn, $sql);
  6. IF( $ins === FALSE ) {
  7.     IF( ($errors = sqlsrv_errors() ) != NULL) {
  8.         foreach( $errors AS $error ) {
  9.             echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />";
  10.             echo "code: ".$error[ 'code']."<br />";
  11.             echo "message: ".$error[ 'message']."<br />";
  12.         }
  13.     }
  14. }

Por otro lado, yo pensaría si esos espacios en blanco que rodean los datos no están trayendo problemas... Especialmente en la fecha.

Código SQL:
Ver original
  1. $sql = "INSERT INTO correoa (archivo,fecha,codigo)
  2. values ('$fileName ' , ' $fecha' , ' $codigo')";
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)