Bagikan melalui


Parameter Pernyataan

Parameter adalah variabel dalam pernyataan SQL. Misalnya, tabel Bagian memiliki kolom bernama PartID, Deskripsi, dan Harga. Untuk menambahkan bagian tanpa parameter akan memerlukan pembuatan pernyataan SQL seperti:

INSERT INTO Parts (PartID, Description, Price) VALUES (2100, 'Drive shaft', 50.00)  

Meskipun pernyataan ini menyisipkan urutan baru, itu bukan solusi yang baik untuk aplikasi entri pesanan karena nilai yang akan dimasukkan tidak dapat dikodekan secara permanen dalam aplikasi. Alternatifnya adalah membuat pernyataan SQL pada run time, menggunakan nilai yang akan disisipkan. Ini juga bukan solusi yang baik, karena kompleksitas membangun pernyataan pada waktu proses. Solusi terbaik adalah mengganti elemen klausa VALUES dengan tanda tanya (?), atau penanda parameter:

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

Penanda parameter kemudian terikat ke variabel aplikasi. Untuk menambahkan baris baru, aplikasi hanya harus mengatur nilai variabel dan menjalankan pernyataan. Driver kemudian mengambil nilai variabel saat ini dan mengirimkannya ke sumber data. Jika pernyataan akan dijalankan beberapa kali, aplikasi dapat membuat proses lebih efisien dengan menyiapkan pernyataan.

Pernyataan yang baru saja ditampilkan mungkin dikodekan secara permanen dalam aplikasi entri pesanan untuk menyisipkan baris baru. Namun, penanda parameter tidak terbatas pada aplikasi vertikal. Untuk aplikasi apa pun, mereka memudahkan kesulitan membuat pernyataan SQL pada waktu proses dengan menghindari konversi ke dan dari teks. Misalnya, ID bagian yang baru saja ditampilkan kemungkinan besar disimpan dalam aplikasi sebagai bilangan bulat. Jika pernyataan SQL dibuat tanpa penanda parameter, aplikasi harus mengonversi ID bagian menjadi teks dan sumber data harus mengonversinya kembali ke bilangan bulat. Dengan menggunakan penanda parameter, aplikasi dapat mengirim ID bagian ke driver sebagai bilangan bulat, yang biasanya dapat mengirimkannya ke sumber data sebagai bilangan bulat. Ini menyimpan dua konversi. Untuk nilai data yang panjang, ini sangat penting, karena bentuk teks dari nilai tersebut sering melebihi panjang pernyataan SQL yang diizinkan.

Parameter hanya berlaku di tempat tertentu dalam pernyataan SQL. Misalnya, kolom tidak diizinkan dalam daftar pemilihan (daftar kolom yang akan dikembalikan oleh pernyataan SELECT ), juga tidak diizinkan sebagai kedua operan operator biner seperti tanda sama dengan (=), karena tidak mungkin untuk menentukan jenis parameter. Umumnya, parameter hanya valid dalam pernyataan Data Manipulation Language (DML), dan bukan dalam pernyataan Data Definition Language (DDL). Untuk informasi selengkapnya, lihat Penanda Parameter di Lampiran C: Tata Bahasa SQL.

Ketika pernyataan SQL memanggil prosedur, parameter bernama dapat digunakan. Parameter bernama diidentifikasi dengan namanya, bukan oleh posisinya dalam pernyataan SQL. Mereka dapat terikat oleh panggilan ke SQLBindParameter, tetapi parameter diidentifikasi oleh bidang SQL_DESC_NAME IPD (deskriptor parameter implementasi), bukan oleh argumen ParameterNumber SQLBindParameter. Mereka juga dapat terikat dengan memanggil SQLSetDescField atau SQLSetDescRec. Untuk informasi selengkapnya tentang parameter bernama, lihat Mengikat Parameter menurut Nama (Parameter Bernama), nanti di bagian ini. Untuk informasi selengkapnya tentang deskriptor, lihat Deskriptor.

Bagian ini berisi topik berikut.