Tengo una instrucción INSERT muy simple que se ejecuta desde un script PHP que se ejecuta en un servidor web Apache de Linux. Puedo ejecutar bien la consulta desde SQL Management Studio y normalmente funciona bien desde PHP también. Sin embargo, de vez en cuando obtengo un mensaje de error de mi script PHP que dice que la consulta falló y la función mssql_get_last_message() devuelve 'La declaración ha sido cancelada'.¿Qué hace que SQL Server devuelva el mensaje 'La declaración ha finalizado'?
¿Qué fuentes pueden hacer que este mensaje sea devuelto por SQL Server?
Entonces, con su ejemplo, si detecto mi mensaje 'La declaración ha finalizado', ¿debería poder enviar la consulta que proporcionó para obtener el código de error? –
No importa, su solución, en teoría, suena bien. Sin embargo, la variable @@ ERROR se sobrescribirá si otra consulta ingresa en la base de datos antes de que pueda consultarla. En un servidor ocupado esto es muy probable. –
El problema que está teniendo es aparentemente un problema conocido con el controlador mssql. Mire http://php.net/manual/en/function.mssql-get-last-message.php, especialmente los comentarios en la parte inferior.La gente ha estado luchando con este problema durante mucho tiempo. – Gary