Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics Analytics
Platform System (PDW)
Parameter ditandai dalam teks perintah dengan karakter tanda tanya. Misalnya, pernyataan SQL berikut ditandai untuk parameter input tunggal:
{call SalesByCategory('Produce', ?)}
Untuk meningkatkan performa dengan mengurangi lalu lintas jaringan, penyedia SQL Server Native Client OLE DB tidak secara otomatis memperoleh informasi parameter kecuali ICommandWithParameters::GetParameterInfo atau ICommandPrepare::P repare dipanggil sebelum menjalankan perintah. Ini berarti bahwa penyedia SQL Server Native Client OLE DB tidak secara otomatis:
Verifikasi kebenaran jenis data yang ditentukan dengan ICommandWithParameters::SetParameterInfo.
Petakan dari DBTYPE yang ditentukan dalam informasi pengikatan aksesor ke jenis data SQL Server yang benar untuk parameter .
Aplikasi akan menerima kemungkinan kesalahan atau hilangnya presisi dengan salah satu metode ini jika mereka menentukan jenis data yang tidak kompatibel dengan jenis data SQL Server dari parameter.
Untuk memastikan hal ini tidak terjadi, aplikasi harus:
Pastikan pwszDataSourceType cocok dengan jenis data SQL Server untuk parameter jika hard-coding ICommandWithParameters::SetParameterInfo.
Pastikan bahwa nilai DBTYPE yang terikat ke parameter memiliki jenis yang sama dengan jenis data SQL Server untuk parameter jika hard-coding aksesor.
Kode aplikasi untuk memanggil ICommandWithParameters::GetParameterInfo sehingga penyedia dapat memperoleh jenis data SQL Server dari parameter secara dinamis. Perhatikan bahwa ini menyebabkan perjalanan pulang pergi jaringan tambahan ke server.
Catatan
Penyedia tidak mendukung panggilan ICommandWithParameters::GetParameterInfo untuk setiap pernyataan SQL Server UPDATE atau DELETE yang berisi klausul FROM; untuk pernyataan SQL apa pun tergantung pada subkueri yang berisi parameter; untuk pernyataan SQL yang berisi penanda parameter dalam kedua ekspresi perbandingan, seperti, atau predikat terukur; atau kueri di mana salah satu parameter adalah parameter ke fungsi. Saat memproses batch pernyataan SQL, penyedia juga tidak mendukung panggilan ICommandWithParameters::GetParameterInfo untuk penanda parameter dalam pernyataan setelah pernyataan pertama dalam batch. Komentar (/* */) tidak diizinkan dalam perintah Transact-SQL.
Penyedia SQL Server Native Client OLE DB mendukung parameter input dalam perintah pernyataan SQL. Pada perintah panggilan prosedur, penyedia SQL Server Native Client OLE DB mendukung parameter input, output, dan input/output. Nilai parameter output dikembalikan ke aplikasi baik pada eksekusi (hanya jika tidak ada set baris yang dikembalikan) atau ketika semua set baris yang dikembalikan habis oleh aplikasi. Untuk memastikan bahwa nilai yang dikembalikan valid, gunakan IMultipleResults untuk memaksa konsumsi set baris.
Nama parameter prosedur tersimpan tidak perlu ditentukan dalam struktur DBPARAMBINDINFO. Gunakan NULL untuk nilai anggota pwszName untuk menunjukkan bahwa penyedia SQL Server Native Client OLE DB harus mengabaikan nama parameter dan hanya menggunakan ordinal yang ditentukan dalam anggota rgParamOrdinals dari ICommandWithParameters::SetParameterInfo. Jika teks perintah berisi parameter bernama dan tidak bernama, semua parameter yang tidak disebutkan namanya harus ditentukan sebelum parameter bernama.
Jika nama parameter prosedur tersimpan ditentukan, penyedia SQL Server Native Client OLE DB memeriksa nama untuk memastikan bahwa itu valid. Penyedia SQL Server Native Client OLE DB mengembalikan kesalahan ketika menerima nama parameter yang salah dari konsumen.
Catatan
Untuk mengekspos dukungan untuk SQL Server XML dan jenis yang ditentukan pengguna (UDT), penyedia SQL Server Native Client OLE DB mengimplementasikan antarmuka ISSCommandWithParameters baru.