共用方式為


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::SetParameterPropertiesSetParameterInfo 方法。 呼叫 SetParameterProperties(0, NULL) 會清除所有指定的參數屬性,同時呼叫 SetParameterInfo(0,NULL,NULL) 會清除所有參數資訊,包括可能與參數相關聯的任何屬性。

呼叫 ISSCommandWithParameters::SetParameterProperties 以指定不是類型為參數的屬性,DBTYPE_XML或DBTYPE_UDT會傳回DB_E_ERRORSOCCURRED或DB_S_ERRORSOCCURRED,並標記 SSPARAMPROPS 中含有該參數之所有 DBPROP 的 dwStatus 字段,該參數具有DBPROPSTATUS_NOTSET。 應該周遊 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 傳回的值不同。 如需詳細資訊,請參閱 元數據探索

會員 說明
iOrdinal 所傳遞參數的序數。
cPropertySets rgPropertySets 中的 DBPROPSET 結構數目。
rgPropertySets 藉其傳回 DBPROPSET 結構陣列的記憶體指標。

另請參閱

ISSCommandWithParameters (OLE DB)