Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform 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
- Aplikasi melakukan panggilan API ODBC.
- Driver Manager memvalidasi parameter dan mengirimkan panggilan.
- Driver berinteraksi dengan sumber data.
- Hasil mengalir kembali melalui Driver Manager ke aplikasi.
Siklus hidup panggilan fungsi
- Alokasikan handel.
- Atur atribut lingkungan atau koneksi.
- Menyambungkan ke sumber data.
- Menyiapkan atau menjalankan pernyataan SQL.
- Mengikat parameter atau kolom hasil.
- Ambil baris.
- Handel gratis.
Diagnostik dan penanganan kesalahan
Gunakan fungsi diagnostik berikut:
SQLGetDiagRecSQLGetDiagField
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 |