ISSCommandWithParameters::SetParameterProperties (OLE DB)
依照序數根據每個參數來設定參數的屬性,或指定 SSPARAMPROPS 結構的陣列來設定大量參數屬性。
語法
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
引數
cParams[in]
rgParamProperties 陣列中 SSPARAMPROPS 結構的數目。 如果這個數位為零, ISSCommandWithParameters::SetParameterProperties
將會刪除命令中任何參數可能已指定的所有屬性。
rgParamProperties[in]
要設定的 SSPARAMPROPS 結構的陣列。
傳回碼值
方法 ISSCommandWithParameters::SetParameterProperties
會傳回與核心 OLE DB ICommandProperties::SetProperties 方法相同的錯誤碼。
備註
根據序數,或從屬性陣列建置 SSPARAMPROPS 之後, ISSCommandWithParameters::SetParameterProperties
允許使用這個方法設定參數屬性。
呼叫 方法之前,必須先呼叫 ISSCommandWithParameters::SetParameterProperties
SetParameterInfo方法。 呼叫 SetParameterProperties(0, NULL)
會清除所有指定的參數屬性,呼叫 SetParameterInfo(0,NULL,NULL)
則會清除所有的參數資訊,包括任何可能與參數相關聯的屬性。
呼叫 ISSCommandWithParameters::SetParameterProperties
以指定不是類型為參數的屬性DBTYPE_XML或DBTYPE_UDT會傳回DB_E_ERRORSOCCURRED或DB_S_ERRORSOCCURRED,並針對具有DBPROPSTATUS_NOTSET之該參數所包含之所有 DBPROP 的 dwStatus 欄位標記。 系統會周遊 SSPARAMPROPS 中包含的每個 DBPROPSET 的 DBPROP 陣列,以偵測 DB_E_ERRORSOCCURRED 或 DB_S_ERRORSOCCURRED 所參考的是哪一個參數。
如果 ISSCommandWithParameters::SetParameterProperties
呼叫 以指定參數資訊尚未使用 SetParameterInfo設定的參數屬性,提供者會傳回E_UNEXPECTED,並顯示下列錯誤訊息:
必須先針對指定的參數呼叫 SetParameterInfo 方法,然後才能呼叫 SetParameterProperties 方法。 而在設定參數屬性之前,也必須先設定參數資訊。
如果 的呼叫 ISSCommandWithParameters::SetParameterProperties
包含已設定參數資訊的某些參數,以及尚未設定參數資訊的某些參數,SSPARAMPROPS 屬性集的 DBPROPSET 中的 dwStatus 屬性將會傳回DBSTATUS_NOTSET。
SSPARAMPROPS 結構定義如下:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
從 SQL Server 2012 開始的資料庫引擎改善可讓 ISSCommandWithParameters::SetParameterProperties 取得更精確的預期結果描述。 這些更精確的結果可能會與舊版 SQL Server 中的 ISSCommandWithParameters::SetParameterProperties 所傳回的值不同。 如需詳細資訊,請參閱中繼資料探索。
member | 描述 |
---|---|
iOrdinal | 所傳遞參數的序數。 |
cPropertySets | rgPropertySets 中的 DBPROPSET 結構數目。 |
rgPropertySets | 藉其傳回 DBPROPSET 結構陣列的記憶體指標。 |