Bagikan melalui


Detail implementasi ODBC API

Berlaku untuk:SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics AnalyticsPlatform System (PDW)

Open Database Connectivity (ODBC) adalah API Microsoft Win32 yang memungkinkan aplikasi mengakses data di sumber data yang mematuhi ODBC. Artikel ini menjelaskan bagaimana ODBC memproses panggilan fungsi, mengelola handel, berinteraksi dengan driver, dan menyediakan diagnostik. Ini memberi pengembang pemahaman yang lebih jelas tentang bagaimana ODBC beroperasi antara aplikasi, Driver Manager, dan driver database.

Referensi driver ODBC Klien Asli SQL Server tidak mendokumen setiap fungsi ODBC. Ini hanya mencakup fungsi-fungsi tersebut dengan parameter atau perilaku yang unik untuk driver ODBC SQL Server Native Client.

Driver ODBC SQL Server Native Client mematuhi spesifikasi ODBC 3.51. Untuk materi referensi lengkap, unduh SDK Komponen Akses Data Microsoft dari Pusat Pengembang Akses Data dan Penyimpanan atau lihat Referensi Programmer ODBC.

Cara kerja ODBC API

ODBC menyediakan antarmuka standar antara aplikasi dan driver database. Saat aplikasi Anda memanggil fungsi ODBC, panggilan melewati beberapa lapisan sebelum mencapai sumber data. Memahami arsitektur ini membantu Anda menulis kode yang lebih efisien dan memecahkan masalah konektivitas.

Model handel ODBC

ODBC menggunakan empat jenis handel hierarkis untuk mengelola status:

Jenis handel Tujuan
Lingkungan (HENV) Pengaturan dan penerapan versi ODBC global
Koneksi (HDBC) Mewakili koneksi ke sumber data tertentu
Pernyataan (HSTMT) Mengelola pernyataan, parameter, dan tataan hasil SQL
Deskriptor (HDESC) Menyimpan metadata untuk parameter dan kolom

Manajer driver dan interaksi driver

  1. Aplikasi melakukan panggilan API ODBC.
  2. Driver Manager memvalidasi parameter dan mengirimkan panggilan.
  3. Driver berinteraksi dengan sumber data.
  4. Hasil mengalir kembali melalui Driver Manager ke aplikasi.

Siklus hidup panggilan fungsi

  1. Alokasikan handel.
  2. Atur atribut lingkungan atau koneksi.
  3. Menyambungkan ke sumber data.
  4. Menyiapkan atau menjalankan pernyataan SQL.
  5. Mengikat parameter atau kolom hasil.
  6. Ambil baris.
  7. Handel gratis.

Diagnostik dan penanganan kesalahan

Gunakan fungsi diagnostik berikut:

  • SQLGetDiagRec
  • SQLGetDiagField

Diagnostik mungkin berlaku untuk pegangan lingkungan, koneksi, atau pernyataan.

Panggilan Unicode vs. ANSI

ODBC menyediakan dua jenis fungsi:

  • Fungsi ANSI seperti SQLExecDirectA
  • Fungsi Unicode seperti SQLExecDirectW

Gunakan API Unicode untuk aplikasi modern.

Threading dan pooling

  • Keamanan utas tergantung pada cara aplikasi mengonfigurasi driver dan Driver Manager.
  • Untuk mengurangi overhead koneksi, aktifkan pengumpulan koneksi di kedua tingkat.

Referensi ODBC API

Bagian berikut mengelompokkan fungsi ODBC API menurut tugas. Setiap entri menautkan ke halaman referensi terperinci untuk driver SQL Server Native Client.

Koneksi dan sumber data

Gunakan fungsi-fungsi ini untuk membuat, mengonfigurasi, dan mengelola koneksi ke SQL Server.

Function Description
SQLConnect Membuat koneksi ke sumber data menggunakan DSN, ID pengguna, dan kata sandi
SQLDriverConnect Menyambungkan menggunakan string koneksi dengan kata kunci khusus driver
SQLBrowseConnect Menemukan atribut koneksi secara interaktif untuk membangun string koneksi
SQLConfigDataSource Membuat, memodifikasi, atau menghapus nama sumber data (DSN) secara terprogram
SQLDrivers Mencantumkan semua driver ODBC yang diinstal dan atributnya
SQLGetConnectAttr Mengambil nilai atribut koneksi saat ini
SQLSetConnectAttr Mengonfigurasi perilaku koneksi seperti batas waktu dan isolasi transaksi

Menjalankan pernyataan SQL

Gunakan fungsi-fungsi ini untuk menyiapkan, menjalankan, dan mengelola pernyataan SQL.

Function Description
SQLExecDirect Menjalankan pernyataan SQL segera tanpa persiapan
SQLExecute Menjalankan pernyataan SQL yang disiapkan sebelumnya
SQLCancel Membatalkan eksekusi pernyataan yang sedang berlangsung
SQLNativeSql Menerjemahkan sintaks ODBC SQL ke dialek SQL asli driver
SQLEndTran Menerapkan atau mengembalikan transaksi pada koneksi atau lingkungan

Mengikat parameter dan kolom

Gunakan fungsi-fungsi ini untuk mengikat variabel aplikasi ke parameter SQL dan kolom tataan hasil.

Function Description
SQLBindParameter Mengikat buffer aplikasi ke penanda parameter pernyataan SQL
SQLBindCol Mengikat buffer aplikasi ke kolom kumpulan hasil
SQLParamData Dapatkan parameter berikutnya yang membutuhkan data selama operasi data-at-execution
SQLPutData Mengirim data parameter dalam gugus selama eksekusi pernyataan
SQLDescribeParam Mengambil jenis data dan ukuran penanda parameter
SQLNumParams Menghitung jumlah parameter dalam pernyataan yang disiapkan

Mengambil dan memproses hasil

Gunakan fungsi-fungsi ini untuk mengambil data dari kumpulan hasil dan memproses hasil kueri.

Function Description
SQLFetch Mengambil kumpulan baris data berikutnya dan mengembalikan nilai kolom terikat
SQLFetchScroll Mengambil set baris pada posisi absolut atau relatif dalam tataan hasil
SQLGetData Mengambil data untuk satu kolom yang tidak terikat atau data besar dalam gugus
SQLMoreResults Pindah ke tataan hasil berikutnya saat pernyataan mengembalikan beberapa hasil
SQLRowCount Mendapatkan jumlah baris yang terpengaruh oleh pernyataan INSERT, UPDATE, atau DELETE
SQLCloseCursor Tutup kursor dan buang hasil yang tertunda
SQLGetCursorName Mengambil nama yang terkait dengan kursor pernyataan

Menemukan skema dan metadata

Gunakan fungsi ini untuk mengkueri informasi skema database seperti tabel, kolom, dan kunci.

Function Description
SQLTables Mencantumkan tabel, tampilan, dan objek seperti tabel lainnya di sumber data
SQLColumns Mencantumkan kolom dan atributnya untuk tabel tertentu
SQLPrimaryKeys Mengambil kolom kunci utama untuk tabel
SQLForeignKeys Mencantumkan kunci asing untuk tabel atau kunci asing dalam tabel lain yang mereferensikannya
SQLSpecialColumns Mengidentifikasi kolom yang secara unik mengidentifikasi baris atau memperbarui secara otomatis
SQLStatistics Mengambil informasi indeks dan statistik tabel
SQLProcedures Mencantumkan prosedur tersimpan yang tersedia di sumber data
SQLProcedureColumns Menjelaskan parameter input/output dan kolom hasil untuk prosedur tersimpan

Metadata kumpulan kolom dan hasil

Gunakan fungsi-fungsi ini untuk memeriksa struktur tataan hasil dan atribut kolom.

Function Description
SQLDescribeCol Mendapatkan nama kolom, jenis, ukuran, dan nullability untuk kolom hasil
SQLColAttribute Mengambil atribut tertentu dari kolom kumpulan hasil
SQLNumResultCols Menghitung jumlah kolom dalam tataan hasil
SQLGetTypeInfo Mencantumkan jenis data SQL yang didukung oleh sumber data

Hak istimewa dan keamanan

Gunakan fungsi-fungsi ini untuk mengambil informasi izin untuk objek database.

Function Description
SQLTablePrivileges Daftar hak istimewa yang diberikan pada tabel di sumber data
SQLColumnPrivileges Daftar hak istimewa yang diberikan pada kolom tabel tertentu

Atribut lingkungan dan pernyataan

Gunakan fungsi-fungsi ini untuk mengonfigurasi lingkungan ODBC dan perilaku pernyataan.

Function Description
SQLSetEnvAttr Mengatur atribut lingkungan seperti versi ODBC dan pengumpulan koneksi
SQLGetStmtAttr Mengambil nilai atribut pernyataan saat ini
SQLSetStmtAttr Mengonfigurasi perilaku pernyataan seperti jenis kursor dan batas waktu kueri

Deskriptor

Gunakan fungsi-fungsi ini untuk memanipulasi rekaman deskriptor secara langsung untuk penanganan parameter dan kolom tingkat lanjut.

Function Description
SQLGetDescField Mengambil satu bidang dari rekaman deskriptor
SQLSetDescField Mengatur satu bidang dalam catatan deskriptor
SQLSetDescRec Mengatur beberapa bidang dalam catatan deskriptor dengan satu panggilan

Informasi diagnostik dan driver

Gunakan fungsi-fungsi ini untuk mengambil informasi kesalahan dan kemampuan driver kueri.

Function Description
SQLGetDiagField Mengambil bidang diagnostik dari lingkungan, koneksi, atau pernyataan
SQLGetInfo Mendapatkan informasi umum tentang kemampuan driver dan sumber data
SQLGetFunctions Menentukan fungsi ODBC mana yang didukung driver

Pembersihan sumber daya

Gunakan fungsi-fungsi ini untuk merilis handel dan sumber daya gratis.

Function Description
SQLFreeHandle Merilis lingkungan, koneksi, pernyataan, atau handel deskriptor
SQLFreeStmt Sumber daya pernyataan gratis, kursor tutup, atau parameter dan kolom yang tidak terikat