SQLDriverConnect

El controlador ODBC de SQL Server Native Client define atributos de conexión que o reemplazan o mejoran las palabras clave de cadena de conexión. Algunas palabras clave de cadena de conexión tienen valores predeterminados que especifica el controlador ODBC de SQL Server Native Client.

Para obtener una lista de las palabras clave disponibles en el controlador ODBC de SQL Server Native Client, vea Usar palabras clave de cadena de conexión con SQL Server Native Client.

Para obtener más información sobre los atributos de conexión de SQL Server y los comportamientos predeterminados del controlador, vea SQLSetConnectAttr.

Para obtener una explicación de las palabras clave de cadena de conexión que son válidas para SQL Server Native Client, vea Usar palabras clave de cadena de conexión con SQL Server Native Client.

Cuando el valor del parámetro DriverCompletion de SQLDriverConnect es SQL_DRIVER_PROMPT, SQL_DRIVER_COMPLETE o SQL_DRIVER_COMPLETE_REQUIRED, el controlador ODBC de SQL Server Native Client recupera los valores de palabra clave del cuadro de diálogo mostrado. Si el valor de palabra clave se pasa en la cadena de conexión y el usuario no modifica el valor de la palabra clave en el cuadro de diálogo, el controlador ODBC de SQL Server Native Client utiliza el valor de la cadena de conexión. Si el valor no está establecido en la cadena de conexión y el usuario no realiza ninguna asignación en el cuadro de diálogo, el controlador utiliza el valor predeterminado.

Se debe asignar a SQLDriverConnect un valor WindowHandle válido cuando un valor DriverCompletion requiera (o pueda requerir) la presentación del cuadro de diálogo de conexión del controlador. Un identificador no válido devuelve SQL_ERROR.

Especifique las palabras clave DRIVER o DSN. Si se indican ambas, ODBC especifica que un controlador utiliza la palabra clave del extremo izquierdo y omite la otra. Si se especifica DRIVER o es la palabra clave del extremo izquierdo y el valor del parámetro DriverCompletion de SQLDriverConnect es SQL_DRIVER_NOPROMPT, se requiere la palabra clave SERVER y un valor adecuado.

Cuando se especifica SQL_DRIVER_NOPROMPT, las palabras clave de autenticación de usuario deben estar presentes con valores. El controlador garantiza que la cadena "Trusted_Connection=yes" o que las palabras clave UID y PWD están presentes.

Si el valor del parámetro DriverCompletion es SQL_DRIVER_NOPROMPT o SQL_DRIVER_COMPLETE_REQUIRED y el lenguaje o la base de datos proceden de la cadena de conexión o no son válidos, SQLDriverConnect devuelve SQL_ERROR.

Si el valor del parámetro DriverCompletion es SQL_DRIVER_NOPROMPT o SQL_DRIVER_COMPLETE_REQUIRED y el lenguaje o la base de datos proceden de las definiciones de origen de datos ODBC y no son válidos, SQLDriverConnect utiliza el lenguaje o base de datos predeterminado para el Id. de usuario especificado y devuelve SQL_SUCCESS_WITH_INFO.

Si el valor del parámetro DriverCompletion es SQL_DRIVER_COMPLETE o SQL_DRIVER_PROMPT y el lenguaje o la base de datos no son válidos, SQLDriverConnect vuelve a mostrar el cuadro de diálogo.

Compatibilidad de SQLDriverConnect con los Nombres principales de servicio (SPN)

SQLDDriverConnect utilizará el cuadro de diálogo Inicio de sesión de ODBC si están habilitados los mensajes. Esto permite escribir SPN tanto para el servidor principal como para su asociado de conmutación por error.

SQLDriverConnect aceptará las nuevas palabras clave de cadena de conexión ServerSPN y FailoverPartnerSPNy reconocerá los nuevos atributos de conexión SQL_COPT_SS_SERVER_SPN y SQL_COPT_SS_FAILOVER_PARTNER_SPN.

Cuando un valor de atributo de conexión se especifica más de una vez, el valor que se establece mediante programación tiene prioridad sobre el valor de un DSN y el valor de una cadena de conexión. El valor de un DSN tiene prioridad sobre el valor de una cadena de conexión.

Cuando se abre una conexión, SQL Server Native Client establece SQL_COPT_SS_MUTUALLY_AUTHENTICATED y SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD en el método de autenticación que se utiliza para abrir la conexión.

Para obtener más información acerca de los SPN, vea Nombres de entidad de seguridad del servicio (SPN) en conexiones de cliente (ODBC).

Ejemplos

La llamada siguiente muestra la menor cantidad de datos que requiere SQLDriverConnect:

SQLDriverConnect(hdbc, hwnd,
    (SQLTCHAR*) TEXT("DRIVER={SQL Server Native Client 10};"), SQL_NTS, szOutConn,
    MAX_CONN_OUT, &cbOutConn, SQL_DRIVER_COMPLETE);

Las siguientes cadenas de conexión muestran los datos mínimos necesarios cuando el valor de parámetro de DriverCompletion es SQL_DRIVER_NOPROMPT:

"DSN=Human Resources;Trusted_Connection=yes"

"FILEDSN=HR_FDSN;Trusted_Connection=yes"

"DRIVER={SQL Server Native Client 10};SERVER=(local);Trusted_Connection=yes"