Bagikan melalui


SQLSetDescField dan SQLSetDescRec (Pustaka Kursor)

Penting

Fitur ini akan dihapus dalam versi Windows yang akan datang. Hindari menggunakan fitur ini dalam pekerjaan pengembangan baru dan rencanakan untuk memodifikasi aplikasi yang saat ini menggunakan fitur ini. Microsoft merekomendasikan penggunaan fungsionalitas kursor driver.

Topik ini membahas penggunaan fungsi SQLSetDescField dan SQLSetDescRec di pustaka kursor. Untuk informasi umum tentang fungsi-fungsi ini, lihat Fungsi SQLSetDescField dan Fungsi SQLSetDescRec.

Pustaka kursor menjalankan SQLSetDescField saat dipanggil untuk mengembalikan nilai bidang yang ditetapkan untuk kolom marka buku:

SQL_DESC_DATA_PTR

SQL_DESC_INDICATOR_PTR

SQL_DESC_OCTET_LENGTH_PTR

SQL_DESC_LENGTH

SQL_DESC_OCTET_LENGTH

SQL_DESC_DATETIME_INTERVAL_CODE

SQL_DESC_SCALE

SQL_DESC_PRECISION

SQL_DESC_TYPE

SQL_DESC_NAME

SQL_DESC_UNNAMED

SQL_DESC_NULLABLE

Pustaka kursor menjalankan panggilan ke SQLSetDescRec untuk kolom bookmark.

Saat bekerja dengan driver ODBC 2.x , pustaka kursor mengembalikan SQLSTATE HY090 (String tidak valid atau panjang buffer) ketika SQLSetDescField atau SQLSetDescRec dipanggil untuk mengatur bidang SQL_DESC_OCTET_LENGTH untuk catatan bookmark ARD ke nilai yang tidak sama dengan 4. Saat bekerja dengan driver ODBC 3.x , pustaka kursor memungkinkan buffer untuk menjadi ukuran apa pun.

Pustaka kursor menjalankan SQLSetDescField saat dipanggil untuk mengembalikan nilai bidang SQL_DESC_BIND_OFFSET_PTR, SQL_DESC_BIND_TYPE, SQL_DESC_ROW_ARRAY_SIZE, atau SQL_DESC_ROW_STATUS_PTR. Bidang ini dapat dikembalikan untuk baris apa pun, bukan hanya baris bookmark.

Pustaka kursor tidak menjalankan SQLSetDescField untuk mengubah bidang deskriptor apa pun selain bidang yang disebutkan sebelumnya. Jika aplikasi memanggil SQLSetDescField untuk mengatur bidang lain saat pustaka kursor dimuat, panggilan diteruskan ke driver.

Pustaka kursor mendukung perubahan bidang SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR, dan SQL_DESC_OCTET_LENGTH_PTR baris deskriptor baris aplikasi secara dinamis (setelah panggilan ke SQLExtendedFetch, SQLFetch, atau SQLFetchScroll). Bidang SQL_DESC_OCTET_LENGTH_PTR dapat diubah menjadi penunjuk null hanya untuk membatalkan ikatan buffer panjang untuk kolom.

Pustaka kursor tidak mendukung perubahan bidang SQL_DESC_BIND_TYPE di APD atau ARD saat kursor terbuka. Bidang SQL_DESC_BIND_TYPE hanya dapat diubah setelah kursor ditutup dan sebelum kursor baru dibuka. Satu-satunya bidang deskriptor yang didukung pustaka kursor berubah saat kursor terbuka SQL_DESC_ARRAY_STATUS_PTR, SQL_DESC_BIND_OFFSET_PTR, SQL_DESC_DATA_PTR, SQL_DESC_INDICATOR_PTR, SQL_DESC_OCTET_LENGTH_PTR, dan SQL_DESC_ROWS_PROCESSED_PTR.

Pustaka kursor tidak mendukung modifikasi bidang SQL_DESC_COUNT ARD setelah SQLExtendedFetch atau SQLFetchScroll telah dipanggil dan sebelum kursor ditutup.