ISSCommandWithParameters::GetParameterProperties in SQL Server Native Client (OLE DB)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
重要
SQL Server Native Client (SNAC と略されることがよくあります) は、SQL Server 2022 (16.x) と SQL Server Management Studio 19 (SSMS) から削除されました。 SQL Server Native Client OLE DB プロバイダー (SQLNCLI または SQLNCLI11) とレガシ Microsoft OLE DB Provider for SQL Server (SQLOLEDB) はどちらも、新しい開発には推奨されません。 今後は、新しい Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server に切り替えてください。
SSPARAMPROPS プロパティ セット構造体の配列を返します。各 UDT または XML パラメーターごとに 1 つの SSPARAMPROPS プロパティ セットが返されます。
構文
HRESULT GetParameterProperties(
DB_UPARAMS *pcParams,
SSPARAMPROPS **prgParamProperties);
引数
pcParams[out][in]
prgParamProperties に返された SSPARAMPROPS 構造体の数を保持するメモリへのポインター。
prgParamProperties[out]
SSPARAMPROPS 構造体の配列が返されるメモリへのポインター。 プロバイダーは構造体のメモリを割り当て、このメモリにアドレスを返します。コンシューマーは、 IMalloc::Free 構造体が不要になったときに、このメモリを解放します。 prgParamProperties に対して IMalloc::Free を呼び出す前に、バリアントに参照型 (BSTR など) が含まれている場合にメモリ リークを防ぐために、コンシューマーは各 DBPROP 構造体の vValue プロパティに対して VariantClear も呼び出す必要があります。pcParamsが出力時にゼロであるか、DB_E_ERRORSOCCURRED以外のエラーが発生した場合、プロバイダーはメモリを割り当てず、prgParamPropertiesが出力上の null ポインターであることを確認します。
リターン コードの値
GetParameterProperties メソッドは、コア OLE DB ICommandProperties::GetProperties メソッドと同じエラー コードを返します。ただし、DB_S_ERRORSOCCURREDとDB_E_ERRORSOCCUREDは発生できません。
解説
ISSCommandWithParameters::GetParameterProperties は、 GetParameterInfo に関して一貫して動作します。 ISSCommandWithParameters::SetParameterProperties または SetParameterInfo が呼び出されていないか、cParams が 0 に等しい場合、GetParameterInfo はパラメーター情報を派生させ、これを返します。 ISSCommandWithParameters::SetParameterProperties または SetParameterInfo が少なくとも 1 つのパラメーターに対して呼び出された場合、ISSCommandWithParameterProperties::GetParameterPropertiesは、ISSCommandWithParameters::SetParameterProperties が呼び出されたパラメーターのプロパティのみを返します。 ISSCommandWithParameters::SetParameterProperties ISSCommandWithParameters::GetParameterProperties または GetParameterInfo の後に呼び出される場合、 後続の ISSCommandWithParameters::GetParameterProperties への呼び出しは、ISSCommandWithParameters::SetParameterProperties が呼び出されたパラメーターのオーバーライドされた値を返します。
SSPARAMPROPS 構造体は、次のように定義されています。
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
メンバー | 説明 |
---|---|
iOrdinal | 渡されるパラメーターの序数 |
cPropertySets | rgPropertySets 内の DBPROPSET 構造体の数 |
rgPropertySets | DBPROPSET 構造体の配列を返すメモリへのポインター |