次の方法で共有


ISSCommandWithParameters::SetParameterProperties (OLE DB)

序数順に各パラメーターのパラメーター プロパティを設定するか、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 がビルドされると 1 回 ISSCommandWithParameters::SetParameterProperties の呼び出しで許可されます。

メソッドを呼び出す前に 、SetParameterInfo メソッドを呼び出す ISSCommandWithParameters::SetParameterProperties 必要があります。 SetParameterProperties(0, NULL) を呼び出すと、指定したパラメーター プロパティがすべて消去されます。また、SetParameterInfo(0,NULL,NULL) を呼び出すと、パラメーターに関連付けられているすべてのプロパティを含めて、パラメーターに関するすべての情報が消去されます。

を呼び出 ISSCommandWithParameters::SetParameterProperties して、DBTYPE_XML 型または DBTYPE_UDT 型ではないパラメーターのプロパティを指定すると、DB_E_ERRORSOCCURREDまたはDB_S_ERRORSOCCURREDが返され、そのパラメーターの SSPARAMPROPS に含まれるすべての DBPROP の dwStatus フィールドにDBPROPSTATUS_NOTSETマークが付きます。 DB_E_ERRORSOCCURRED または DB_S_ERRORSOCCURRED が指しているパラメーターを検出するには、SSPARAMPROPS に含まれている各 DBPROPSET の DBPROP 配列をすべて調べる必要があります。

パラメーター情報がまだ 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 構造体の配列を返すメモリへのポインター

参照

ISSCommandWithParameters (OLE DB)