次の方法で共有


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 呼び出しで許可されます。

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 構造体の配列を返すメモリへのポインター

こちらもご覧ください

ISSCommandWithParameters (OLE DB)