Бөлісу құралы:


Выделение дескрипторов и соединение с SQL Server (ODBC)

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

Выделение дескрипторов и соединение с SQL Server

  1. Включите файлы заголовка ODBC Sql.h, Sqlext.h, Sqltypes.h.

  2. Включите файл заголовка для драйвера SQL Server, Odbcss.h.

  3. ВызовИТЕ SQLAllocHandle с помощью HandleType SQL_HANDLE_ENV, чтобы инициализировать ODBC и выделить дескриптор среды.

  4. Вызов SQLSetEnvAttr с набором атрибутов для SQL_ATTR_ODBC_VERSION и ValuePtr, заданных для SQL_OV_ODBC3, чтобы указать, что приложение будет использовать вызовы функций ODBC 3.x.

  5. При необходимости вызовите SQLSetEnvAttr, чтобы задать другие параметры среды или вызвать SQLGetEnvAttr, чтобы получить параметры среды.

  6. ВызовИТЕ SQLAllocHandle с помощью HandleType SQL_HANDLE_DBC, чтобы выделить дескриптор подключения.

  7. При необходимости вызовите SQLSetConnectAttr, чтобы задать параметры подключения или вызвать SQLGetConnectAttr, чтобы получить параметры подключения.

  8. Вызовите SQLConnect, чтобы использовать существующий источник данных для подключения к SQL Server.

    Or

    Вызовите SQLDriverConnect, чтобы использовать строка подключения для подключения к SQL Server.

    Минимальный полный строка подключения SQL Server имеет одну из двух форм:

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

    Если строка подключения не завершено, SQLDriverConnect может запрашивать необходимые сведения. Это управляется значением, указанным для параметра DriverCompletion .

    - или -

    ВызовИТЕ SQLBrowseConnect несколько раз в итеративном режиме, чтобы создать строка подключения и подключиться к SQL Server.

  9. При необходимости вызовите SQLGetInfo , чтобы получить атрибуты и поведение драйвера для источника данных SQL Server.

  10. Выделите и используйте инструкции.

  11. ВызовИТЕ SQLDisconnect, чтобы отключиться от SQL Server и сделать дескриптор подключения доступным для нового подключения.

  12. ВызовИТЕ SQLFreeHandle с помощью HandleType SQL_HANDLE_DBC, чтобы освободить дескриптор подключения.

  13. ВызовИТЕ SQLFreeHandle с помощью HandleType SQL_HANDLE_ENV, чтобы освободить дескриптор среды.

Внимание

По возможности используйте аутентификацию Windows. Если проверка подлинности Windows недоступна, запросите у пользователя ввод учетных данных во время выполнения. Избегайте хранения учетных данных в файле. Если необходимо сохранить учетные данные, зашифруйте их с помощью API-интерфейса шифрования Win32.

Пример

В этом примере показано вызов SQLDriverConnect для подключения к экземпляру SQL Server, не требуя существующего источника данных ODBC. Передав неполный строка подключения в SQLDriverConnect, драйвер ODBC предложит пользователю ввести недостающие сведения.

#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);