Compartir a través de


Asignar controladores y conectarse con SQL Server (ODBC)

Para asignar identificadores y conectarse a SQL Server

  1. Incluya los archivos de encabezado ODBC Sql.h, Sqlext.h, Sqltypes.h.

  2. Incluya el archivo de encabezado específico del controlador de SQL Server, Odbcss.h.

  3. Llame a SQLAllocHandle con un HandleType de SQL_HANDLE_ENV para inicializar ODBC y asignar un identificador de entorno.

  4. Llame a SQLSetEnvAttr con Attribute establecido en SQL_ATTR_ODBC_VERSION y ValuePtr establezca en SQL_OV_ODBC3 para indicar que la aplicación usará llamadas de función con formato ODBC 3.x.

  5. Opcionalmente, llame a SQLSetEnvAttr para establecer otras opciones de entorno o llame a SQLGetEnvAttr para obtener las opciones de entorno.

  6. Llame a SQLAllocHandle con un HandleType de SQL_HANDLE_DBC para asignar un identificador de conexión.

  7. Opcionalmente, llame a SQLSetConnectAttr para establecer las opciones de conexión o llame a SQLGetConnectAttr para obtener las opciones de conexión.

  8. Llame a SQLConnect para usar un origen de datos existente para conectarse a SQL Server.

    O bien,

    Llame a SQLDriverConnect para usar una cadena de conexión para conectarse a SQL Server.

    Una cadena de conexión de SQL Server completa mínima tiene una de estas dos formas:

    DSN=dsn_name;Trusted_connection=yes;  
    DRIVER={SQL Server Native Client 10.0};SERVER=server;Trusted_connection=yes;  
    

    Si la cadena de conexión no está completa, SQLDriverConnect puede solicitar la información necesaria. Esto se controla mediante el valor especificado para el parámetro DriverCompletion .

    - o -

    Llame a SQLBrowseConnect varias veces de forma iterativa para compilar la cadena de conexión y conectarse a SQL Server.

  9. Opcionalmente, llame a SQLGetInfo para obtener atributos de controlador y comportamiento para el origen de datos de SQL Server.

  10. Asignar y usar instrucciones.

  11. Llame a SQLDisconnect para desconectar de SQL Server y haga que el identificador de conexión esté disponible para una nueva conexión.

  12. Llame a SQLFreeHandle con un HandleType de SQL_HANDLE_DBC para liberar el identificador de conexión.

  13. Llame SQLFreeHandle a con un HandleType de SQL_HANDLE_ENV para liberar el identificador del entorno.

Importante

Siempre que sea posible, utilice la autenticación de Windows. Si la autenticación de Windows no está disponible, pida a los usuarios que escriban sus credenciales en tiempo de ejecución. Evite almacenar credenciales en un archivo. Si debe conservar las credenciales, debe cifrarlas con la API de cifrado win32.

Ejemplo

En este ejemplo se muestra una llamada a SQLDriverConnect para conectarse a una instancia de SQL Server sin necesidad de un origen de datos ODBC existente. Al pasar una cadena de conexión incompleta a SQLDriverConnect, hace que el controlador ODBC pida al usuario que escriba la información que falta.

#define MAXBUFLEN   255  
  
SQLHENV      henv = SQL_NULL_HENV;  
SQLHDBC      hdbc1 = SQL_NULL_HDBC;  
SQLHSTMT      hstmt1 = SQL_NULL_HSTMT;  
  
SQLCHAR      ConnStrIn[MAXBUFLEN] =  
         "DRIVER={SQL Server Native Client 10.0};SERVER=MyServer";  
  
SQLCHAR      ConnStrOut[MAXBUFLEN];  
SQLSMALLINT   cbConnStrOut = 0;  
  
// Make connection without data source. Ask that driver   
// prompt if insufficient information. Driver returns  
// SQL_ERROR and application prompts user  
// for missing information. Window handle not needed for  
// SQL_DRIVER_NOPROMPT.  
retcode = SQLDriverConnect(hdbc1,      // Connection handle  
                  NULL,         // Window handle  
                  ConnStrIn,      // Input connect string  
                  SQL_NTS,         // Null-terminated string  
                  ConnStrOut,      // Address of output buffer  
                  MAXBUFLEN,      // Size of output buffer  
                  &cbConnStrOut,   // Address of output length  
                  SQL_DRIVER_PROMPT);