Información de conexión específicos del controlador
SQLConnect da por hecho que un nombre de origen de datos, un identificador de usuario y una contraseña son suficientes para conectarse a un origen de datos y que toda la demás información de conexión se puede almacenar en el sistema. Esto no suele ser así. Por ejemplo, un controlador podría necesitar un identificador de usuario y una contraseña para iniciar sesión en un servidor y un identificador de usuario y una contraseña diferentes para iniciar sesión en un DBMS. Dado que SQLConnect acepta un identificador de usuario único y una contraseña, esto significa que el otro identificador de usuario y contraseña se deben almacenar con la información del origen de datos en el sistema si se va a usar SQLConnect. Se trata de una posible vulneración de seguridad y debe evitarse a menos que la contraseña esté cifrada.
SQLDriverConnect permite al controlador definir una cantidad arbitraria de información de conexión en los pares de palabra clave-valor de la cadena de conexión. Por ejemplo, supongamos que un controlador requiere un nombre de origen de datos, un identificador de usuario y una contraseña para el servidor, y un identificador de usuario y una contraseña para DBMS. Un programa personalizado que siempre usa el origen de datos XYZ Corp podría pedir al usuario identificadores y contraseñas y crear el siguiente conjunto de pares de palabra clave-valor o cadena de conexión para pasar a SQLDriverConnect:
Nota:
Si se conecta a un proveedor de orígenes de datos que admite autenticación de Windows, debe especificar Trusted_Connection=yes
en lugar de la información de identificador de usuario y contraseña en la cadena de conexión.
DSN={MyDataSourceName};UID={MyUserID};PWD={MyServerPassword};UIDDBMS={MyDBMSUserID};PWDDBMS={MyDBMSUserPassword};
La palabra clave DSN (Nombre de origen de datos) denomina el origen de datos, las palabras clave UID y PWD especifican el identificador de usuario y la contraseña del servidor, y las palabras clave UIDDBMS y PWDDBMS especifican el identificador de usuario y la contraseña de DBMS. Observe que el punto y coma final es opcional. SQLDriverConnect analiza esta cadena. Usa el nombre del origen de datos XYZ Corp para recuperar información de conexión adicional del sistema, como la dirección del servidor, e inicia sesión en el servidor y DBMS mediante los identificadores de usuario y contraseñas especificados.
Los pares de palabra clave-valor en SQLDriverConnect deben seguir ciertas reglas de sintaxis. Las palabras clave y sus valores no deben contener caracteres []{}(),;?*=!@. El valor de la palabra clave DSN no puede constar solo de espacios en blanco y no debe contener espacios en blanco iniciales. Debido a la gramática del registro, las palabras clave y los nombres de origen de datos no pueden contener el carácter de barra diagonal inversa (\). No se permiten espacios alrededor del signo igual en el par palabra clave-valor.
La palabra clave FILEDSN se puede usar en una llamada a SQLDriverConnect para especificar el nombre de un archivo que contiene información del origen de datos (vea Conexión mediante orígenes de datos de archivo, más adelante en esta sección). La palabra clave SAVEFILE se puede usar para especificar el nombre de un archivo .dsn en el que se guardarán los pares de palabra clave-valor de una conexión correcta realizada por la llamada a SQLDriverConnect. Para obtener más información sobre los orígenes de datos de archivo, vea la descripción de la función SQLDriverConnect.