Bagikan melalui


Menggunakan Parameter Pernyataan - Parameter Pengikatan

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Setiap penanda parameter dalam pernyataan SQL harus dikaitkan, atau terikat, ke variabel dalam aplikasi sebelum pernyataan dapat dijalankan. Ini dilakukan dengan memanggil fungsi SQLBindParameter . SQLBindParameter menjelaskan variabel program (alamat, jenis data C, dan sebagainya) ke driver. Ini juga mengidentifikasi penanda parameter dengan menunjukkan nilai ordinalnya dan kemudian menjelaskan karakteristik objek SQL yang diwakilinya (jenis data SQL, presisi, dan sebagainya).

Penanda parameter dapat terikat atau rebound kapan saja sebelum pernyataan dijalankan. Pengikatan parameter tetap berlaku hingga salah satu hal berikut ini terjadi:

  • Panggilan ke SQLFreeStmt dengan parameter Opsi yang diatur ke SQL_RESET_PARAMS membebaskan semua parameter yang terikat ke handel pernyataan.

  • Panggilan ke SQLBindParameter dengan ParameterNumber diatur ke ordinal penanda parameter terikat secara otomatis merilis pengikatan sebelumnya.

Aplikasi juga dapat mengikat parameter ke array variabel program untuk memproses pernyataan SQL dalam batch. Ada dua jenis pengikatan array:

  • Pengikatan kolom dilakukan ketika setiap parameter individual terikat ke array variabelnya sendiri.

    Pengikatan kolom ditentukan dengan memanggil SQLSetStmtAttr dengan Atribut diatur ke SQL_ATTR_PARAM_BIND_TYPE dan ValuePtr diatur ke SQL_PARAM_BIND_BY_COLUMN.

  • Pengikatan baris bijaksana dilakukan ketika semua parameter dalam pernyataan SQL terikat sebagai unit ke array struktur yang berisi variabel individual untuk parameter.

    Pengikatan baris ditentukan dengan memanggil SQLSetStmtAttr dengan Atribut diatur ke SQL_ATTR_PARAM_BIND_TYPE dan ValuePtr diatur ke ukuran struktur yang memegang variabel program.

Ketika driver ODBC SQL Server Native Client mengirim parameter karakter atau string biner ke server, driver ini mengaitkan nilai ke panjang yang ditentukan dalam parameter SQLBindParameter ColumnSize . Jika aplikasi ODBC 2.x menentukan 0 untuk ColumnSize, driver akan membagi nilai parameter ke presisi jenis data. Presisinya adalah 8000 saat terhubung ke server SQL Server, 255 saat terhubung ke versi SQL Server sebelumnya. ColumnSize berada dalam byte untuk kolom varian.

SQL Server mendukung penentukan nama untuk parameter prosedur tersimpan. ODBC 3.5 juga memperkenalkan dukungan untuk parameter bernama yang digunakan saat memanggil prosedur tersimpan SQL Server. Dukungan ini dapat digunakan untuk:

  • Panggil prosedur tersimpan dan berikan nilai untuk subset parameter yang ditentukan untuk prosedur tersimpan.

  • Tentukan parameter dalam urutan yang berbeda dalam aplikasi daripada urutan yang ditentukan saat prosedur tersimpan dibuat.

Parameter bernama hanya didukung saat menggunakan pernyataan TRANSACT-SQL EXECUTE atau urutan escape ODBC CALL untuk menjalankan prosedur tersimpan.

Jika SQL_DESC_NAME diatur untuk parameter prosedur tersimpan, semua parameter prosedur tersimpan dalam kueri juga harus mengatur SQL_DESC_NAME. Jika literal digunakan dalam panggilan prosedur tersimpan, di mana parameter memiliki SQL_DESC_NAME diatur, literal harus menggunakan format 'nilai nama=', di mana nama adalah nama parameter prosedur tersimpan (misalnya, @p1). Untuk informasi selengkapnya, lihat Mengikat Parameter menurut Nama (Parameter Bernama).

Lihat Juga

Menggunakan Parameter Pernyataan