Bagikan melalui


Apa yang Dilakukan Manajer Driver

Tabel berikut ini meringkas bagaimana ODBC 3.x Driver Manager memetakan panggilan ke driver ODBC 2.x dan ODBC 3.x .

Fungsi atau

atribut pernyataan
Komentar
SQL_ATTR_FETCH_BOOKMARK_PTR Arahkan ke marka buku untuk digunakan dengan SQLFetchScroll. Berikut ini adalah detail implementasi:

- Ketika aplikasi mengatur ini dalam driver ODBC 2.x , Manajer Driver ODBC 3.x menyimpannya. Ini mendereferensikan pointer dan meneruskan nilai ke driver ODBC 2.x dalam argumen FetchOffset SQLExtendedFetch ketika SQLFetchScroll kemudian dipanggil oleh aplikasi.
- Ketika aplikasi mengatur ini dalam driver ODBC 3.x , Manajer Driver ODBC 3.x meneruskan panggilan ke driver.
SQL_ATTR_ROW_STATUS_PTR Menunjuk ke array status baris yang diisi oleh SQLFetch, SQLFetchScroll, SQLBulkOperations, dan SQLSetPos. Berikut ini adalah detail implementasi:

- Ketika aplikasi mengatur ini dalam driver ODBC 2.x , Manajer Driver ODBC 3.x menyimpan nilainya. Ini meneruskan nilai ini ke driver ODBC 2.x dalam argumen RowStatusArray dari SQLExtendedFetch ketika SQLFetchScroll atau SQLFetch dipanggil.
- Ketika aplikasi mengatur ini dalam driver ODBC 3.x , Manajer Driver ODBC 3.x meneruskan panggilan ke driver.
- Dalam status S6, jika aplikasi menetapkan SQL_ATTR_ROW_STATUS_PTR dan kemudian memanggil SQLBulkOperations (dengan Operasi SQL_ADD) atau SQLSetPos tanpa terlebih dahulu memanggil SQLFetch atau SQLFetchScroll, SQLSTATE HY011 (Atribut tidak dapat diatur sekarang) dikembalikan.
SQL_ATTR_ROWS_FETCHED_PTR Menunjuk ke buffer tempat SQLFetch dan SQLFetchScroll mengembalikan jumlah baris yang diambil. Berikut ini adalah detail implementasi:

- Ketika aplikasi mengatur ini dalam driver ODBC 2.x , Manajer Driver ODBC 3.x menyimpan nilainya. Ini meneruskan nilai ini ke driver ODBC 2.x dalam argumen RowCountPtr dari SQLExtendedFetch ketika SQLFetch atau SQLFetchScroll dipanggil oleh aplikasi.
- Ketika aplikasi mengatur ini dalam driver ODBC 3.x , Manajer Driver ODBC 3.x meneruskan panggilan ke driver.
SQL_ATTR_ROW_ARRAY_SIZE Mengatur ukuran set baris. Berikut ini adalah detail implementasi:

- Ketika aplikasi menetapkan ini dalam driver ODBC 2.x , Manajer Driver ODBC 3.x memetakannya ke atribut pernyataan SQL_ROWSET_SIZE.
- Ketika aplikasi mengatur ini dalam driver ODBC 3.x , Manajer Driver ODBC 3.x meneruskan panggilan ke driver.
- Ketika aplikasi yang bekerja dengan driver ODBC 3.x memanggil SQLSetScrollOptions, SQL_ROWSET_SIZE diatur ke nilai dalam argumen RowsetSize jika driver yang mendasarinya tidak mendukung SQLSetScrollOptions.
SQL_ROWSET_SIZE Mengatur ukuran set baris yang digunakan oleh SQLExtendedFetch saat SQLExtendedFetch dipanggil oleh aplikasi ODBC 2.x . Berikut ini adalah detail implementasi:

- Ketika aplikasi mengatur ini, Odbc 3.x Driver Manager meneruskan panggilan ke driver, terlepas dari versi driver.
- Ketika aplikasi yang bekerja dengan driver ODBC 2.x memanggil SQLSetScrollOptions, SQL_ROWSET_SIZE diatur ke nilai dalam argumen RowsetSize.
SQLBulkOperations Melakukan operasi penyisipan, atau memperbarui, menghapus, atau mengambil berdasarkan operasi marka buku. Berikut ini adalah detail implementasi:

- Ketika aplikasi memanggil SQLBulkOperations dengan Operasi SQL_ADD dalam driver ODBC 2.x, Manajer Driver ODBC 3.x memetakannya ke SQLSetPos dengan Operasi SQL_ADD.
- Ketika bekerja dengan driver ODBC 2.x yang tidak mendukung SQLSetPos dengan Operasi SQL_ADD, Manajer Driver ODBC 3.x tidak memetakan SQLSetPos dengan Operasi SQL_ADD ke SQLBulkOperations dengan Operasi SQL_ADD. Ini karena SQLBulkOperations tidak dapat dipanggil dalam status S7, yang dalam ODBC 2.x adalah satu-satunya status di mana SQLSetPos dapat dipanggil.
- Jika aplikasi memanggil SQLBulkOperations dengan Operasi SQL_ADD di driver ODBC 2.x sebelum memanggil SQLFetchScroll, Manajer Driver ODBC 3.x mengembalikan kesalahan.
SQLExtendedFetch Mengembalikan set baris yang ditentukan. Kecuali untuk pembatasan yang baru saja dicatat, Manajer Driver ODBC 3.x meneruskan panggilan ke SQLExtendedFetch ke driver, terlepas dari versi driver.
SQLFetch Mengembalikan set baris berikutnya. Berikut ini adalah detail implementasi:

- Ketika aplikasi memanggil SQLFetch dalam driver ODBC 2.x , Manajer Driver ODBC 3.x memetakannya ke SQLExtendedFetch. Argumen FetchOrientation dari SQLExtendedFetch diatur ke SQL_FETCH_NEXT. Driver Manager menggunakan nilai cache atribut pernyataan SQL_ATTR_ROW_STATUS_PTR untuk argumen RowStatusArray dan nilai cache atribut pernyataan SQL_ATTR_ROWS_FETCHED_PTR untuk argumen RowCountPtr .
- Aplikasi ODBC 3.x dapat mencampur panggilan ke SQLFetch dan SQLFetchScroll di driver ODBC 2.x karena Manajer Driver ODBC 3.x memetakan SQLFetch ke SQLExtendedFetch ketika aplikasi memanggilnya dalam driver ODBC 2.x .
- Jika driver ODBC 2.x tidak mendukung SQLExtendedFetch, Manajer Driver ODBC 3.x tidak memetakan SQLFetch atau SQLFetchScroll ke SQLExtendedFetch ketika aplikasi memanggilnya di driver tersebut. Jika aplikasi mencoba mengatur SQL_ATTR_ROW_ARRAY_SIZE ke nilai yang lebih besar dari 1, SQLSTATE HYC00 (Fitur opsional tidak diimplementasikan) dikembalikan.
- Kecuali untuk pembatasan yang baru saja dicatat, Manajer Driver ODBC 3.x meneruskan panggilan ke SQLFetch ke driver, terlepas dari versi driver.
SQLFetchScroll Mengembalikan set baris yang ditentukan. Berikut ini adalah detail implementasi:

- Ketika aplikasi memanggil SQLFetchScroll di driver ODBC 2.x , Manajer Driver ODBC 3.x memetakannya ke SQLExtendedFetch. Ini menggunakan nilai cache atribut pernyataan SQL_ATTR_ROW_STATUS_PTR untuk argumen RowStatusArray dan nilai cache atribut pernyataan SQL_ATTR_ROWS_FETCHED_PTR untuk argumen RowCountPtr . Jika argumen FetchOrientation di SQLFetchScroll SQL_FETCH_BOOKMARK, argumen ini menggunakan nilai cache atribut pernyataan SQL_ATTR_FETCH_BOOKMARK_PTR untuk argumen FetchOffset dan mengembalikan kesalahan jika argumen FetchOffset SQLFetchScroll bukan 0.
- Ketika aplikasi memanggil ini dalam driver ODBC 3.x , Manajer Driver ODBC 3.x meneruskan panggilan ke driver.
SQLSetPos Melakukan berbagai operasi yang diposisikan. Manajer Driver ODBC 3.x meneruskan panggilan ke SQLSetPos ke driver, terlepas dari versi drivernya.
SQLSetScrollOptions Ketika Manajer Driver memetakan SQLSetScrollOptions untuk aplikasi yang bekerja dengan driver ODBC 3.x yang tidak mendukung SQLSetScrollOptions, Manajer Driver mengatur opsi pernyataan SQL_ROWSET_SIZE, bukan atribut pernyataan SQL_ATTR_ROW_ARRAY_SIZE, ke argumen RowsetSize di SQLSetScrollOption. Akibatnya, SQLSetScrollOptions tidak dapat digunakan oleh aplikasi saat mengambil beberapa baris dengan panggilan ke SQLFetch atau SQLFetchScroll. Ini hanya dapat digunakan saat mengambil beberapa baris dengan panggilan ke SQLExtendedFetch.