Compartir a través de


Efectos de las opciones ISO

La norma ODBC está estrechamente relacionada con la norma ISO, y las aplicaciones ODBC esperan de los controladores ODBC un comportamiento estándar. Para que su comportamiento se ajuste con más exactitud a lo establecido en la norma ODBC, el controlador ODBC de SQL Server Native Client utiliza siempre las opciones ISO disponibles en la versión de SQL Server a la que se conecta.

Cuando el controlador ODBC de SQL Server Native Client se conecta a una instancia de SQL Server, el servidor detecta que el cliente está utilizando el controlador ODBC de SQL Server Native Client y activa varias opciones.

El propio controlador emite estas instrucciones; la aplicación ODBC no hace nada para solicitarlas. Cuando se establecen estas opciones, las aplicaciones ODBC que usan el controlador pueden ser más portables porque el comportamiento del servidor se ajusta a la norma ISO.

Las aplicaciones basadas en DB-Library no suelen activar estas opciones. El hecho de que haya sitios que observen un comportamiento diferente entre los clientes de ODBC o DB-Library al ejecutar la misma instrucción SQL, no se debe entender como una indicación de un problema con el controlador ODBC de SQL Server Native Client. Primero deben volver a ejecutar la instrucción en el entorno de DB-Library con las mismas opciones SET que utilizaría el controlador ODBC de SQL Server Native Client.

Puesto que los usuarios y las aplicaciones pueden activar y desactivar las opciones SET en cualquier momento, los programadores de procedimientos almacenados y desencadenadores también deben tomar la precaución de probar sus procedimientos y desencadenadores con las opciones SET anteriormente indicadas tanto activadas como desactivadas. De esta forma se garantiza que los procedimientos y los desencadenadores funcionan correctamente, independientemente de las opciones que pueda tener configuradas una conexión concreta al llamar al procedimiento o el desencadenador. Los desencadenadores o procedimientos almacenados que requieren un valor determinado para una de estas opciones deben emitir una instrucción SET al comienzo del desencadenador o procedimiento almacenado. Esta instrucción SET sólo permanece vigente durante la ejecución del desencadenador o del procedimiento almacenado; cuando se complete la acción del procedimiento o del desencadenador, se restablecerá la configuración original.

Al conectar a una instancia de SQL Server, también se activa una cuarta opción SET, CONCAT_NULL_YIELDS_NULL. El controlador ODBC de SQL Server Native Client no activa esas opciones si se especifica AnsiNPW=NO en el origen de datos o en SQLDriverConnect o SQLBrowseConnect.

Como ocurre con las opciones ISO mencionadas anteriormente, el controlador ODBC de SQL Server Native Client no activa la opción QUOTED_IDENTIFIER si se especifica QuotedID=NO en el origen de datos o en SQLDriverConnect o SQLBrowseConnect.

Para que al controlador pueda conocer el estado actual de las opciones SET, las aplicaciones ODBC no deben utilizar la instrucción SET de Transact-SQL para establecer estas opciones. Solo deben establecerlas usando el origen de datos o las opciones de conexión. Si la aplicación emite instrucciones SET, el controlador puede generar instrucciones SQL incorrectas.