Penanda Parameter Pengikatan

Aplikasi mengikat parameter dengan memanggil SQLBindParameter. SQLBindParameter mengikat satu parameter pada satu waktu. Dengan itu, aplikasi menentukan hal-hal berikut:

  • Nomor parameter. Parameter diberi nomor dalam meningkatkan urutan parameter dalam pernyataan SQL, dimulai dengan angka 1. Meskipun legal untuk menentukan nomor parameter yang lebih tinggi dari jumlah parameter dalam pernyataan SQL, nilai parameter akan diabaikan ketika pernyataan dijalankan.

  • Jenis parameter (input, input/output, atau output). Kecuali untuk parameter dalam panggilan prosedur, semua parameter adalah parameter input. Untuk informasi selengkapnya, lihat Parameter Prosedur, nanti di bagian ini.

  • Jenis data C, alamat, dan panjang byte variabel yang terikat ke parameter . Driver harus dapat mengonversi data dari jenis data C ke jenis data SQL atau kesalahan dikembalikan. Untuk daftar konversi yang didukung, lihat Mengonversi Data dari C ke Jenis Data SQL di Lampiran D: Jenis Data.

  • Jenis data SQL, presisi, dan skala parameter itu sendiri.

  • Alamat buffer panjang/indikator. Ini menyediakan panjang byte data biner atau karakter, menentukan bahwa data adalah NULL, atau menentukan bahwa data akan dikirim dengan SQLPutData. Untuk informasi selengkapnya, lihat Menggunakan Nilai Panjang/Indikator.

Misalnya, kode berikut mengikat SalesPerson dan CustID ke parameter untuk kolom SalesPerson dan CustID. Karena SalesPerson berisi data karakter, yang merupakan panjang variabel, kode menentukan panjang byte SalesPerson (11) dan mengikat SalesPersonLenOrInd untuk berisi panjang byte data di SalesPerson. Informasi ini tidak diperlukan untuk CustID karena berisi data bilangan bulat, yang memiliki panjang tetap.

SQLCHAR       SalesPerson[11];  
SQLINTEGER    SalesPersonLenOrInd, CustIDInd;  
SQLUINTEGER   CustID;  
  
// Bind SalesPerson to the parameter for the SalesPerson column and  
// CustID to the parameter for the CustID column.  
SQLBindParameter(hstmt1, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 10, 0,  
                  SalesPerson, sizeof(SalesPerson), &SalesPersonLenOrInd);  
SQLBindParameter(hstmt1, 2, SQL_PARAM_INPUT, SQL_C_ULONG, SQL_INTEGER, 10, 0,  
                  &CustID, 0, &CustIDInd);  
  
// Set values of salesperson and customer ID and length/indicators.  
strcpy_s((char*)SalesPerson, _countof(SalesPerson), "Garcia");  
SalesPersonLenOrInd = SQL_NTS;  
CustID = 1331;  
CustIDInd = 0;  
  
// Execute a statement to get data for all orders made to the specified  
// customer by the specified salesperson.  
SQLExecDirect(hstmt1,"SELECT * FROM Orders WHERE SalesPerson=? AND CustID=?",SQL_NTS);  

Ketika SQLBindParameter dipanggil, driver menyimpan informasi ini dalam struktur untuk pernyataan tersebut. Ketika pernyataan dijalankan, pernyataan menggunakan informasi untuk mengambil data parameter dan mengirimkannya ke sumber data.

Catatan

Di ODBC 1.0, parameter terikat dengan SQLSetParam. Driver Manager memetakan panggilan antara SQLSetParam dan SQLBindParameter, tergantung pada versi ODBC yang digunakan oleh aplikasi dan driver.