Bagikan melalui


ISSCommandWithParameters::SetParameterProperties di SQL Server Native Client (OLE DB)

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

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). Penyedia SQL Server Native Client OLE DB (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server ke depannya.

Mengatur properti parameter per parameter berdasarkan ordinal, atau mengatur properti parameter massal dengan menentukan array struktur SSPARAMPROPS.

Sintaks

HRESULT SetParameterProperties(  
      DB_UPARAMS cParams,   
      SSPARAMPROPS rgParamProperties[]);  

Argumen

cParams[in]
Jumlah struktur SSPARAMPROPS dalam array rgParamProperties . Jika angka ini nol, ISSCommandWithParameters::SetParameterProperties akan menghapus semua properti yang mungkin telah ditentukan untuk parameter apa pun dalam perintah.

rgParamProperties[in]
Array struktur SSPARAMPROPS yang akan diatur.

Mengembalikan Nilai Kode

Metode ISSCommandWithParameters::SetParameterProperties mengembalikan kode kesalahan yang sama dengan metode inti OLE DB ICommandProperties::SetProperties .

Keterangan

Mengatur properti parameter dengan metode ini diizinkan berdasarkan per parameter secara ordinal, atau dengan satu panggilan ISSCommandWithParameters::SetParameterProperties setelah SSPARAMPROPS dibangun dari array properti.

Metode SetParameterInfo harus dipanggil sebelum memanggil metode ISSCommandWithParameters::SetParameterProperties . SetParameterProperties(0, NULL) Panggilan menghapus semua properti parameter yang ditentukan, sementara panggilan SetParameterInfo(0,NULL,NULL) menghapus semua info parameter termasuk properti apa pun yang mungkin terkait dengan parameter.

Memanggil ISSCommandWithParameters::SetParameterProperties untuk menentukan properti untuk parameter yang bukan tipe DBTYPE_XML atau DBTYPE_UDT mengembalikan DB_E_ERRORSOCCURRED atau DB_S_ERRORSOCCURRED dan menandai bidang dwStatus dari semua DBPROP yang terkandung dalam SSPARAMPROPS untuk parameter tersebut dengan DBPROPSTATUS_NOTSET. Array DBPROP dari setiap DBPROPSET yang terkandung dalam SSPARAMPROPS harus dilalui untuk mendeteksi parameter mana yang dirujuk DB_E_ERRORSOCCURRED atau DB_S_ERRORSOCCURRED.

Jika ISSCommandWithParameters::SetParameterProperties dipanggil untuk menentukan properti parameter yang info parameternya belum diatur dengan SetParameterInfo, penyedia mengembalikan E_UNEXPECTED dengan pesan kesalahan berikut:

Metode SetParameterProperties tidak dapat dipanggil untuk parameter yang ditentukan tanpa terlebih dahulu memanggil metode SetParameterInfo. Informasi parameter harus diatur sebelum mengatur properti parameter.

Jika panggilan ke ISSCommandWithParameters::SetParameterProperties berisi beberapa parameter tempat info parameter telah diatur, dan beberapa parameter tempat info parameter belum diatur, properti dwStatus di DBPROPSET dari kumpulan properti SSPARAMPROPS akan kembali dengan DBSTATUS_NOTSET.

Struktur SSPARAMPROPS didefinisikan sebagai berikut:

struct SSPARAMPROPS {
    DBORDINAL iOrdinal;
    ULONG cPropertySets;
    DBPROPSET *rgPropertySets;
};

Peningkatan di mesin database yang dimulai dengan SQL Server 2012 (11.x) memungkinkan ISSCommandWithParameters::SetParameterProperties untuk mendapatkan deskripsi yang lebih akurat dari hasil yang diharapkan. Hasil yang lebih akurat ini mungkin berbeda dari nilai yang dikembalikan oleh ISSCommandWithParameters::SetParameterProperties di versi SQL Server sebelumnya. Untuk informasi selengkapnya, lihat Penemuan Metadata.

Anggota Deskripsi
iOrdinal Ordinal parameter yang dilewatkan.
cPropertySets Jumlah struktur DBPROPSET di rgPropertySets.
rgPropertySets Pointer ke memori untuk mengembalikan array struktur DBPROPSET.

Lihat Juga

ISSCommandWithParameters (OLE DB)