Выделение дескрипторов и соединение с SQL Server (ODBC)
Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)
Выделение дескрипторов и соединение с SQL Server
Включите файлы заголовка ODBC Sql.h, Sqlext.h, Sqltypes.h.
Включите файл заголовка для драйвера SQL Server, Odbcss.h.
ВызовИТЕ SQLAllocHandle с помощью HandleType SQL_HANDLE_ENV, чтобы инициализировать ODBC и выделить дескриптор среды.
Вызов SQLSetEnvAttr с набором атрибутов для SQL_ATTR_ODBC_VERSION и ValuePtr, заданных для SQL_OV_ODBC3, чтобы указать, что приложение будет использовать вызовы функций ODBC 3.x.
При необходимости вызовите SQLSetEnvAttr, чтобы задать другие параметры среды или вызвать SQLGetEnvAttr, чтобы получить параметры среды.
ВызовИТЕ SQLAllocHandle с помощью HandleType SQL_HANDLE_DBC, чтобы выделить дескриптор подключения.
При необходимости вызовите SQLSetConnectAttr, чтобы задать параметры подключения или вызвать SQLGetConnectAttr, чтобы получить параметры подключения.
Вызовите 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.
При необходимости вызовите SQLGetInfo , чтобы получить атрибуты и поведение драйвера для источника данных SQL Server.
Выделите и используйте инструкции.
ВызовИТЕ SQLDisconnect, чтобы отключиться от SQL Server и сделать дескриптор подключения доступным для нового подключения.
ВызовИТЕ SQLFreeHandle с помощью HandleType SQL_HANDLE_DBC, чтобы освободить дескриптор подключения.
ВызовИТЕ 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);