Bagikan melalui


Mengikat Kolom Tataan Hasil

Aplikasi dapat mengikat kolom hasil sebanyak yang mereka pilih, termasuk mengikat tidak ada kolom sama sekali. Saat baris data diambil, driver mengembalikan data untuk kolom terikat ke aplikasi. Apakah aplikasi mengikat semua kolom dalam tataan hasil bergantung pada aplikasi. Misalnya, aplikasi yang menghasilkan laporan biasanya memiliki format tetap; aplikasi tersebut membuat kumpulan hasil yang berisi semua kolom yang digunakan dalam laporan lalu mengikat dan mengambil data untuk semua kolom ini. Aplikasi yang menampilkan layar penuh data terkadang memungkinkan pengguna untuk memutuskan kolom mana yang akan ditampilkan; aplikasi tersebut membuat kumpulan hasil yang berisi semua kolom yang mungkin diinginkan pengguna, tetapi mengikat dan mengambil data hanya untuk kolom yang dipilih oleh pengguna.

Data dapat diambil dari kolom yang tidak terikat dengan memanggil SQLGetData. Ini biasanya dipanggil untuk mengambil data panjang, yang sering melebihi panjang satu buffer dan harus diambil di beberapa bagian.

Kolom dapat diikat kapan saja, bahkan setelah baris diambil. Namun, pengikatan baru tidak berlaku sampai lain kali baris diambil; mereka tidak diterapkan ke data dari baris yang sudah diambil.

Variabel tetap terikat ke kolom hingga variabel yang berbeda terikat ke kolom, hingga kolom tidak terikat dengan memanggil SQLBindCol dengan pointer null sebagai alamat variabel, hingga semua kolom tidak terikat dengan memanggil SQLFreeStmt dengan opsi SQL_UNBIND, atau sampai pernyataan dirilis. Untuk alasan ini, aplikasi harus yakin bahwa semua variabel terikat tetap valid selama terikat. Untuk informasi selengkapnya, lihat Mengalokasikan dan Membebaskan Buffer.

Karena pengikatan kolom hanyalah informasi yang terkait dengan struktur pernyataan, pengikatan kolom dapat diatur dalam urutan apa pun. Mereka juga independen dari tataan hasil. Misalnya, aplikasi mengikat kolom kumpulan hasil yang dihasilkan oleh pernyataan SQL berikut:

SELECT * FROM Orders  

Jika aplikasi kemudian menjalankan pernyataan SQL

SELECT * FROM Lines  

pada handel pernyataan yang sama, pengikatan kolom untuk kumpulan hasil pertama masih berlaku karena itu adalah pengikatan yang disimpan dalam struktur pernyataan. Dalam kebanyakan kasus, ini adalah praktik pemrograman yang buruk dan harus dihindari. Sebagai gantinya, aplikasi harus memanggil SQLFreeStmt dengan opsi SQL_UNBIND untuk memisahkan semua kolom lama dan kemudian mengikat yang baru.