Bagikan melalui


Parameter Pengikatan ODBC

Setiap parameter dalam pernyataan SQL harus dikaitkan, atau terikat, ke variabel dalam aplikasi sebelum pernyataan dijalankan. Ketika aplikasi mengikat variabel ke parameter, aplikasi menjelaskan variabel tersebut - alamat, jenis data C, dan sebagainya - ke driver. Ini juga menjelaskan parameter itu sendiri - jenis data SQL, presisi, dan sebagainya. Driver menyimpan informasi ini dalam struktur yang dikelolanya untuk pernyataan tersebut dan menggunakan informasi untuk mengambil nilai dari variabel ketika pernyataan dijalankan.

Parameter dapat terikat atau rebound kapan saja sebelum pernyataan dijalankan. Jika parameter rebound setelah pernyataan dijalankan, pengikatan tidak berlaku sampai pernyataan dijalankan lagi. Untuk mengikat parameter ke variabel yang berbeda, aplikasi hanya mengikat ulang parameter dengan variabel baru; pengikatan sebelumnya secara otomatis dirilis.

Variabel tetap terikat ke parameter hingga variabel yang berbeda terikat ke parameter, sampai semua parameter tidak terikat dengan memanggil SQLFreeStmt dengan opsi SQL_RESET_PARAMS, atau sampai pernyataan dirilis. Untuk alasan ini, aplikasi harus yakin bahwa variabel tidak dibebaskan sampai setelah tidak terikat. Untuk informasi selengkapnya, lihat Mengalokasikan dan Membebaskan Buffer.

Karena pengikatan parameter hanyalah informasi yang disimpan dalam struktur yang dikelola oleh driver untuk pernyataan, pengikatan parameter dapat diatur dalam urutan apa pun. Mereka juga independen dari pernyataan SQL yang dijalankan. Misalnya, aplikasi mengikat tiga parameter lalu menjalankan pernyataan SQL berikut:

INSERT INTO Parts (PartID, Description, Price) VALUES (?, ?, ?)  

Jika aplikasi kemudian segera menjalankan pernyataan SQL

SELECT * FROM Orders WHERE OrderID = ?, OpenDate = ?, Status = ?  

pada handel pernyataan yang sama, pengikatan parameter untuk pernyataan INSERT digunakan 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_RESET_PARAMS untuk memisahkan semua parameter lama dan kemudian mengikat yang baru.

Bagian ini berisi topik berikut.