次の方法で共有


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 が構築されるたびに ISSCommandWithParameters::SetParameterProperties を 1 回呼び出すことによって行うことができます。

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 が設定されます。 DB_E_ERRORSOCCURRED または DB_S_ERRORSOCCURRED が指しているパラメーターを検出するには、SSPARAMPROPS に含まれている各 DBPROPSET の DBPROP 配列をすべて調べる必要があります。

ISSCommandWithParameters::SetParameterProperties を呼び出すときに、SetParameterInfo によって情報が設定されていないパラメーターのプロパティを指定すると、プロバイダーは次のエラー メッセージと共に 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)