Alokasikan Handel dan Sambungkan ke SQL Server (ODBC)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
Untuk mengalokasikan handel dan menyambungkan ke SQL Server
Sertakan file header ODBC Sql.h, Sqlext.h, Sqltypes.h.
Sertakan file header khusus driver SQL Server, Odbcss.h.
Panggil SQLAllocHandle dengan HandleType SQL_HANDLE_ENV untuk menginisialisasi ODBC dan mengalokasikan handel lingkungan.
Panggil SQLSetEnvAttr dengan Atribut yang diatur ke SQL_ATTR_ODBC_VERSION dan ValuePtr diatur ke SQL_OV_ODBC3 untuk menunjukkan bahwa aplikasi akan menggunakan panggilan fungsi berformat ODBC 3.x.
Secara opsional, panggil SQLSetEnvAttr untuk mengatur opsi lingkungan lain, atau panggil SQLGetEnvAttr untuk mendapatkan opsi lingkungan.
Panggil SQLAllocHandle dengan HandleType SQL_HANDLE_DBC untuk mengalokasikan handel koneksi.
Secara opsional, panggil SQLSetConnectAttr untuk mengatur opsi koneksi, atau panggil SQLGetConnectAttr untuk mendapatkan opsi koneksi.
Panggil SQLConnect untuk menggunakan sumber data yang ada untuk menyambungkan ke SQL Server.
Atau
Panggil SQLDriverConnect untuk menggunakan string koneksi untuk menyambungkan ke SQL Server.
SQL Server lengkap minimum string koneksi memiliki salah satu dari dua formulir:
DSN=dsn_name;Trusted_connection=yes; DRIVER={SQL Server Native Client 10.0};SERVER=server;Trusted_connection=yes;
Jika string koneksi tidak selesai, SQLDriverConnect dapat meminta informasi yang diperlukan. Ini dikontrol oleh nilai yang ditentukan untuk parameter DriverCompletion .
- atau -
Panggil SQLBrowseConnect beberapa kali dengan cara berulang untuk membangun string koneksi dan menyambungkan ke SQL Server.
Secara opsional, panggil SQLGetInfo untuk mendapatkan atribut dan perilaku driver untuk sumber data SQL Server.
Mengalokasikan dan menggunakan pernyataan.
Panggil SQLDisconnect untuk memutuskan sambungan dari SQL Server dan buat handel koneksi tersedia untuk koneksi baru.
Panggil SQLFreeHandle dengan HandleType SQL_HANDLE_DBC untuk membebaskan handel koneksi.
Panggil SQLFreeHandle dengan HandleType SQL_HANDLE_ENV untuk membebaskan handel lingkungan.
Penting
Jika memungkinkan, gunakan Autentikasi Windows. Jika Autentikasi Windows tidak tersedia, minta pengguna untuk memasukkan kredensial mereka pada waktu proses. Hindari menyimpan kredensial dalam file. Jika Anda harus mempertahankan kredensial, Anda harus mengenkripsinya dengan API kripto Win32.
Contoh
Contoh ini memperlihatkan panggilan ke SQLDriverConnect untuk menyambungkan ke instans SQL Server tanpa memerlukan sumber data ODBC yang ada. Dengan meneruskan string koneksi yang tidak lengkap ke SQLDriverConnect, itu menyebabkan driver ODBC meminta pengguna untuk memasukkan informasi yang hilang.
#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);