Apa yang Dilakukan Driver
Tabel berikut ini meringkas fungsi dan pernyataan apa yang harus diterapkan driver ODBC 3.x untuk kursor yang dapat diblokir dan dapat digulir.
Fungsi atau atribut pernyataan |
Komentar |
---|---|
SQL_ATTR_ROW_STATUS_PTR | Mengatur alamat array status baris yang diisi oleh SQLFetch dan SQLFetchScroll. Array ini juga diisi oleh SQLSetPos jika SQLSetPos dipanggil dalam status pernyataan S6. Jika SQLSetPos dipanggil dalam status S7, array ini tidak diisi tetapi array yang diarahkan oleh argumen RowStatusArray dari SQLExtendedFetch diisi. Untuk informasi selengkapnya, lihat Transisi Pernyataan di Lampiran B: Tabel Transisi Status ODBC. |
SQL_ATTR_ROWS_FETCHED_PTR | Mengatur alamat buffer tempat SQLFetch dan SQLFetchScroll mengembalikan jumlah baris yang diambil. Jika SQLExtendedFetch dipanggil, buffer ini tidak diisi tetapi argumen RowCountPtr menunjuk ke jumlah baris yang diambil. |
SQL_ATTR_ROW_ARRAY_SIZE | Mengatur ukuran set baris yang digunakan oleh SQLFetch dan SQLFetchScroll. |
SQL_ROWSET_SIZE | Mengatur ukuran set baris yang digunakan oleh SQLExtendedFetch. Driver ODBC 3.x menerapkan ini jika mereka ingin bekerja dengan aplikasi ODBC 2.x yang memanggil SQLExtendedFetch atau SQLSetPos. |
SQLBulkOperations | Jika driver ODBC 3.x harus bekerja dengan aplikasi ODBC 2.x yang menggunakan SQLSetPos dengan Operasi SQL_ADD, driver harus mendukung SQLSetPos dengan Operasi SQL_ADD selain SQLBulkOperations dengan Operasi SQL_ADD. |
SQLExtendedFetch | Mengembalikan set baris yang ditentukan. Driver ODBC 3.x menerapkan ini jika mereka ingin bekerja dengan aplikasi ODBC 2.x yang memanggil SQLExtendedFetch atau SQLSetPos. Berikut ini adalah detail implementasi: - Driver mengambil ukuran set baris dari nilai atribut pernyataan SQL_ROWSET_SIZE. - Driver mengambil alamat array status baris dari argumen RowStatusArray , bukan atribut pernyataan SQL_ATTR_ROW_STATUS_PTR. Argumen RowStatusArray dalam panggilan ke SQLExtendedFetch tidak boleh berupa pointer null. (Perhatikan bahwa dalam ODBC 3.x, atribut pernyataan SQL_ATTR_ROW_STATUS_PTR dapat berupa pointer null.) - Driver mengambil alamat baris yang diambil buffer dari argumen RowCountPtr , bukan atribut pernyataan SQL_ATTR_ROWS_FETCHED_PTR. - Driver mengembalikan SQLSTATE 01S01 (Kesalahan berturut-turut) untuk menunjukkan bahwa kesalahan telah terjadi saat baris diambil oleh panggilan ke SQLExtendedFetch. Driver ODBC 3.x harus mengembalikan SQLSTATE 01S01 (Kesalahan berturut-turut) hanya ketika SQLExtendedFetch dipanggil, bukan ketika SQLFetch atau SQLFetchScroll dipanggil. Untuk mempertahankan kompatibilitas mundur, ketika SQLSTATE 01S01 (Kesalahan berturut-turut) dikembalikan oleh SQLExtendedFetch, Manajer Driver tidak memesan rekaman status dalam antrean kesalahan sesuai dengan aturan yang dinyatakan di bagian "Urutan Rekaman Status" dari SQLGetDiagField. |
SQLFetch | Mengembalikan set baris berikutnya. Berikut ini adalah detail implementasi: - Driver mengambil ukuran set baris dari nilai atribut pernyataan SQL_ATTR_ROW_ARRAY_SIZE. - Driver mengambil alamat array status baris dari atribut pernyataan SQL_ATTR_ROW_STATUS_PTR. - Driver mengambil alamat baris yang diambil buffer dari atribut pernyataan SQL_ATTR_ROWS_FETCHED_PTR. - Aplikasi ini dapat mencampur panggilan antara SQLFetchScroll dan SQLFetch. - SQLFetch mengembalikan marka buku jika kolom 0 terikat. - SQLFetch dapat dipanggil untuk mengembalikan lebih dari satu baris. - Driver tidak mengembalikan SQLSTATE 01S01 (Kesalahan berturut-turut) untuk menunjukkan bahwa kesalahan telah terjadi saat baris diambil oleh panggilan ke SQLFetch. |
SQLFetchScroll | Mengembalikan set baris yang ditentukan. Berikut ini adalah detail implementasi: - Driver mengambil ukuran set baris dari atribut pernyataan SQL_ATTR_ROW_ARRAY_SIZE. - Driver mengambil alamat array status baris dari atribut pernyataan SQL_ATTR_ROW_STATUS_PTR. - Driver mengambil alamat baris yang diambil buffer dari atribut pernyataan SQL_ATTR_ROWS_FETCHED_PTR. - Aplikasi ini dapat mencampur panggilan antara SQLFetchScroll dan SQLFetch. - Driver tidak mengembalikan SQLSTATE 01S01 (Kesalahan berturut-turut) untuk menunjukkan bahwa kesalahan telah terjadi saat baris diambil oleh panggilan ke SQLFetchScroll. |
SQLSetPos | Melakukan berbagai operasi yang diposisikan. Berikut ini adalah detail implementasi: - Ini dapat dipanggil dalam pernyataan menyatakan S6 atau S7. Untuk detail selengkapnya, lihat Transisi Pernyataan di Lampiran B: Tabel Transisi Status ODBC. - Jika ini dipanggil dalam status pernyataan S5 atau S6, driver mengambil ukuran set baris dari atribut pernyataan SQL_ATTR_ROWS_FETCHED_PTR dan alamat array status baris dari atribut pernyataan SQL_ATTR_ROW_STATUS_PTR. - Jika ini disebut dalam status pernyataan S7, driver mengambil ukuran set baris dari atribut pernyataan SQL_ROWSET_SIZE dan alamat array status baris dari argumen RowStatusArray dari SQLExtendedFetch. - Driver mengembalikan SQLSTATE 01S01 (Kesalahan berturut-turut) hanya untuk menunjukkan bahwa kesalahan telah terjadi saat baris diambil oleh panggilan ke SQLSetPos untuk melakukan operasi massal ketika fungsi dipanggil dalam status S7. Untuk mempertahankan kompatibilitas mundur, jika SQLSTATE 01S01 (Kesalahan berturut-turut) dikembalikan oleh SQLSetPos, Manajer Driver tidak memesan rekaman status dalam antrean kesalahan sesuai dengan aturan yang dinyatakan di bagian "Urutan Rekaman Status" dari SQLGetDiagField. - Jika driver harus bekerja dengan aplikasi ODBC 2.x yang memanggil SQLSetPos dengan argumen Operasi SQL_ADD, driver harus mendukung SQLSetPos dengan argumen Operasi SQL_ADD. |