パラメーターごとに序数でパラメーター プロパティを設定するか、SSPARAMPROPS 構造体の配列を指定して一括パラメーター プロパティを設定します。
構文
HRESULT SetParameterProperties(
DB_UPARAMS cParams,
SSPARAMPROPS rgParamProperties[]);
論争
cParams[in]
rgParamProperties 配列内の SSPARAMPROPS 構造体の数。 この数値が 0 の場合、 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が返され、そのパラメーターの SSPARAMPROPS に含まれるすべての DBPROP の dwStatus フィールドにDBPROPSTATUS_NOTSETマークが付けられます。 SSPARAMPROPS に含まれる各 DBPROPSET の DBPROP 配列を走査して、DB_E_ERRORSOCCURREDまたはDB_S_ERRORSOCCURREDが参照するパラメーターを検出する必要があります。
パラメーター情報がまだ SetParameterInfo で設定されていないパラメーターのプロパティを指定するためにISSCommandWithParameters::SetParameterProperties
が呼び出されると、プロバイダーは次のエラー メッセージでE_UNEXPECTEDを返します。
SetParameterProperties メソッドは、最初に SetParameterInfo メソッドを呼び出さないと、指定されたパラメーターに対して呼び出すことができません。 パラメーターのプロパティを設定する前に、パラメーター情報を設定する必要があります。
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 構造体の配列を返すメモリへのポインター |