Handel Deskriptor

Deskriptor adalah kumpulan metadata yang menjelaskan parameter pernyataan SQL atau kolom kumpulan hasil, seperti yang dilihat oleh aplikasi atau driver (juga dikenal sebagai implementasi). Dengan demikian, deskriptor dapat mengisi salah satu dari empat peran:

  • Deskriptor Parameter Aplikasi (APD). Berisi informasi tentang buffer aplikasi yang terikat ke parameter dalam pernyataan SQL, seperti alamat, panjang, dan jenis data C mereka.

  • Deskriptor Parameter Implementasi (IPD). Berisi informasi tentang parameter dalam pernyataan SQL, seperti jenis data SQL, panjang, dan nullabilitasnya.

  • Deskriptor Baris Aplikasi (ARD). Berisi informasi tentang buffer aplikasi yang terikat ke kolom dalam kumpulan hasil, seperti alamat, panjang, dan jenis data C.

  • Deskriptor Baris Implementasi (IRD). Berisi informasi tentang kolom dalam kumpulan hasil, seperti jenis data SQL, panjang, dan nullabilitasnya.

Empat deskriptor (satu mengisi setiap peran) dialokasikan secara otomatis saat pernyataan dialokasikan. Ini dikenal sebagai deskriptor yang dialokasikan secara otomatis dan selalu dikaitkan dengan pernyataan tersebut. Aplikasi juga dapat mengalokasikan deskriptor dengan SQLAllocHandle. Ini dikenal sebagai deskriptor yang dialokasikan secara eksplisit. Mereka dialokasikan pada koneksi dan dapat dikaitkan dengan satu atau beberapa pernyataan pada koneksi tersebut untuk memenuhi peran APD atau ARD pada pernyataan tersebut.

Sebagian besar operasi di ODBC dapat dilakukan tanpa menggunakan deskriptor secara eksplisit oleh aplikasi. Namun, deskriptor menyediakan pintasan yang nyaman untuk beberapa operasi. Misalnya, aplikasi ingin menyisipkan data dari dua set buffer yang berbeda. Untuk menggunakan set buffer pertama, ia akan berulang kali memanggil SQLBindParameter untuk mengikatnya ke parameter dalam pernyataan INSERT lalu menjalankan pernyataan. Untuk menggunakan set buffer kedua, ia akan mengulangi proses ini. Atau, ini dapat mengatur pengikatan ke set buffer pertama dalam satu deskriptor dan ke set buffer kedua di deskriptor lain. Untuk beralih di antara set pengikatan, aplikasi hanya akan memanggil SQLSetStmtAttr dan mengaitkan deskriptor yang benar dengan pernyataan sebagai APD.

Untuk informasi selengkapnya tentang deskriptor, lihat Jenis Deskriptor.