Freigeben über


ISSCommandWithParameters::GetParameterProperties in SQL Server Native Client (OLE DB)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics 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 ordnet Arbeitsspeicher für die Strukturen zu und gibt die Adresse an diesen Speicher zurück. Der Consumer gibt diesen Arbeitsspeicher mit IMalloc::Free frei, wenn er die Strukturen nicht mehr benötigt. Vor dem Aufruf 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 (z. B. einen BSTR) enthält. Wenn pcParams bei der Ausgabe null ist oder ein anderer Fehler als DB_E_ERRORSOCCURRED auftritt, ordnet der Anbieter keinen Arbeitsspeicher zu und stellt sicher, dass prgParamProperties ein NULL-Zeiger auf die Ausgabe ist.

Rückgabecodewerte

Die GetParameterProperties -Methode gibt dieselben Fehlercodes zurück wie die OLE DB ICommandProperties::GetProperties -Methode, allerdings können DB_S_ERRORSOCCURRED und DB_E_ERRORSOCCURED nicht ausgelöst werden.

Bemerkungen

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 wurden, gibt ISSCommandWithParameters::GetParameterProperties nur Eigenschaften 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

Weitere Informationen

ISSCommandWithParameters (OLE DB)