Alokasikan Handel dan Sambungkan ke SQL Server (ODBC)

Berlaku untuk: SQL Server (semua versi yang didukung) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Untuk mengalokasikan handel dan menyambungkan ke SQL Server

  1. Sertakan file header ODBC Sql.h, Sqlext.h, Sqltypes.h.

  2. Sertakan file header khusus driver SQL Server, Odbcss.h.

  3. Panggil SQLAllocHandle dengan HandleType SQL_HANDLE_ENV untuk menginisialisasi ODBC dan mengalokasikan handel lingkungan.

  4. Panggil SQLSetEnvAttr dengan Atribut diatur ke SQL_ATTR_ODBC_VERSION dan ValuePtr diatur ke SQL_OV_ODBC3 untuk menunjukkan aplikasi akan menggunakan panggilan fungsi format ODBC 3.x.

  5. Secara opsional, panggil SQLSetEnvAttr untuk mengatur opsi lingkungan lain, atau panggil SQLGetEnvAttr untuk mendapatkan opsi lingkungan.

  6. Panggil SQLAllocHandle dengan HandleType SQL_HANDLE_DBC untuk mengalokasikan handel koneksi.

  7. Secara opsional, panggil SQLSetConnectAttr untuk mengatur opsi koneksi, atau panggil SQLGetConnectAttr untuk mendapatkan opsi koneksi.

  8. Panggil SQLConnect untuk menggunakan sumber data yang sudah ada untuk menyambungkan ke SQL Server.

    Atau

    Panggil SQLDriverConnect untuk menggunakan string koneksi untuk menyambungkan ke SQL Server.

    String koneksi SQL Server lengkap minimum memiliki salah satu dari dua bentuk:

    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 terhubung ke SQL Server.

  9. Secara opsional, panggil SQLGetInfo untuk mendapatkan atribut dan perilaku driver untuk sumber data SQL Server.

  10. Mengalokasikan dan menggunakan pernyataan.

  11. Panggil SQLDisconnect untuk memutuskan sambungan dari SQL Server dan membuat handel koneksi tersedia untuk koneksi baru.

  12. Panggil SQLFreeHandle dengan HandleType SQL_HANDLE_DBC untuk membebaskan handel koneksi.

  13. 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 durasi. 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);