ISSCommandWithParameters::GetParameterProperties in SQL Server Native Client (OLE DB)
Gilt für:SQL Server
Azure SQL-Datenbank
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Wichtig
Der SQL Server Native Client (häufig abgekürzt mit SNAC) wurde aus SQL Server 2022 (16.x) und SQL Server Management Studio 19 (SSMS) entfernt. Sowohl der OLE DB-Anbieter für den SQL Server Native Client (SQLNCLI oder SQLNCLI11) als auch der Microsoft OLE DB-Legacyanbieter für SQL Server (SQLOLEDB) werden für Neuentwicklungen nicht empfohlen. Verwenden Sie in Zukunft den neuen Microsoft OLE DB-Treiber für SQL Server (MSOLEDBSQL).
Gibt ein Array aus SSPARAMPROPS-Eigenschaftensatzstrukturen zurück – einen SSPARAMPROPS-Eigenschaftensatz für jeden UDT- oder XML-Parameter.
Syntax
HRESULT GetParameterProperties(
DB_UPARAMS *pcParams,
SSPARAMPROPS **prgParamProperties);
Argumente
pcParams[out] [in]
Ein Zeiger auf den Arbeitsspeicher, der die Anzahl von SSPARAMPROPS-Strukturen enthält, die in prgParamPropertieszurückgegeben werden.
prgParamProperties[out]
Ein Zeiger auf den Arbeitsspeicher, in den ein Array aus SSPARAMPROPS-Strukturen zurückgegeben wird. Der Anbieter teilt Speicher für die Strukturen zu und gibt die Adresse an den Arbeitsspeicher zurück. Der Consumer gibt diesen Speicher mit IMalloc::Free frei, wenn er die Strukturen nicht mehr benötigt. Vor dem Aufrufen von IMalloc::Free für prgParamProperties muss der Consumer auch VariantClear für die vValue-Eigenschaft jeder DBPROP-Struktur aufrufen, um einen Speicherverlust in Fällen zu verhindern, in denen die Variante einen Verweistyp enthält (z. B. ein BSTR.) Wenn pcParams bei der Ausgabe null ist oder ein anderer Fehler als DB_E_ERRORSOCCURRED auftritt, weist der Anbieter keinen Arbeitsspeicher zu und stellt sicher, dass prgParamProperties ein Nullzeiger für die Ausgabe ist.
Rückgabecodewerte
Die GetParameterProperties Methode gibt die gleichen Fehlercodes wie die ICommandProperties::GetProperties-Methode zurück, mit der Ausnahme, dass DB_S_ERRORSOCCURRED und DB_E_ERRORSOCCURRED nicht ausgelöst werden können.
Hinweise
ISSCommandWithParameters::GetParameterProperties verhält sich in Bezug auf GetParameterInfokonsistent. Wenn ISSCommandWithParameters::SetParameterProperties und SetParameterInfo nicht aufgerufen wurden oder mit einem Wert von 0 (null) für cParams aufgerufen wurden, leitet GetParameterInfo Parameterinformationen ab und gibt diese zurück. Wenn ISSCommandWithParameters::SetParameterProperties oder SetParameterInfo für mindestens einen Parameter aufgerufen wurde, gibt ISSCommandWithParameters::GetParameterProperties Eigenschaften nur für die Parameter zurück, für die ISSCommandWithParameters::SetParameterProperties aufgerufen wurde. Wenn ISSCommandWithParameters::SetParameterProperties nach ISSCommandWithParameters::GetParameterProperties oder GetParameterInfoaufgerufen wird, geben nachfolgende Aufrufe von ISSCommandWithParameters::GetParameterProperties die überschriebenen Werte für jene Parameter zurück, für die ISSCommandWithParameters::SetParameterProperties aufgerufen wurde.
Die SSPARAMPROPS-Struktur ist folgendermaßen definiert:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Member | BESCHREIBUNG |
---|---|
iOrdinal | Die Ordnungszahl des übergebenen Parameters |
cPropertySets | Die Anzahl von DBPROPSET-Strukturen in rgPropertySets |
rgPropertySets | Ein Zeiger auf den Speicher, in den ein Array aus DBPROPSET-Strukturen zurückgegeben werden soll |