ISSCommandWithParameters::GetParameterProperties (OLE DB)
Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)
Zwraca tablicę struktur zestawu właściwości SSPARAMPROPS, jedną właściwość SSPARAMPROPS ustawioną dla każdego parametru UDT lub XML.
Składnia
HRESULT GetParameterProperties(
DB_UPARAMS *pcParams,
SSPARAMPROPS **prgParamProperties);
Argumenty
pcParams[out][in]
Wskaźnik do pamięci, który zawiera liczbę struktur SSPARAMPROPS zwróconych w prgParamProperties.
prgParamProperties[out]
Wskaźnik do pamięci, w którym zwracana jest tablica struktur SSPARAMPROPS. Dostawca przydziela pamięć struktur i zwraca adres do tej pamięci, użytkownik zwalnia tę pamięć z IMalloc::Free
, gdy nie potrzebuje już struktur. Przed wywołaniem IMalloc::Free
dla prgParamPropertiesużytkownik musi również wywołać VariantClear
dla właściwości vValue każdej struktury DBPROP, aby zapobiec wyciekowi pamięci w przypadkach, gdy wariant zawiera typ odwołania, taki jak BSTR. Jeśli pcParams jest zerowa w danych wyjściowych lub wystąpi błąd inny niż DB_E_ERRORSOCCURRED, dostawca nie przydziela żadnej pamięci i upewnia się, że prgParamProperties jest wskaźnikiem null w danych wyjściowych.
Zwracanie wartości kodu
Metoda GetParameterProperties
zwraca te same kody błędów co podstawowa metoda ICommandProperties::GetProperties
OLE DB, z tą różnicą, że nie można podnieść DB_S_ERRORSOCCURRED i DB_E_ERRORSOCCURRED.
Uwagi
metoda ISSCommandWithParameters::GetParameterProperties
zachowuje się spójnie w odniesieniu do GetParameterInfo
. Jeśli ISSCommandWithParameters::SetParameterProperties
lub SetParameterInfo
nie zostały wywołane lub zostały wywołane z parametrem cParams równym zero, GetParameterInfo
uzyskuje informacje o parametrach i zwraca je. Jeśli ISSCommandWithParameters::SetParameterProperties
lub SetParameterInfo
zostały wywołane dla co najmniej jednego parametru, ISSCommandWithParameters::GetParameterProperties
metoda zwraca właściwości tylko dla tych parametrów, dla których wywołano ISSCommandWithParameters::SetParameterProperties
. Jeśli ISSCommandWithParameters::SetParameterProperties
jest wywoływana po ISSCommandWithParameters::GetParameterProperties
lub GetParameterInfo
, kolejne wywołania ISSCommandWithParameters::GetParameterProperties
zwracają zastąpione wartości dla tych parametrów, dla których wywołano metodę ISSCommandWithParameters::SetParameterProperties
.
Struktura SSPARAMPROPS jest zdefiniowana w następujący sposób:
struct SSPARAMPROPS {
DBORDINAL iOrdinal;
ULONG cPropertySets;
DBPROPSET *rgPropertySets;
};
Członek | Opis |
---|---|
iOrdinal | Porządkowe przekazanego parametru. |
cPropertySets | Liczba struktur DBPROPSET w rgPropertySets. |
rgPropertySets | Wskaźnik do pamięci, w którym zwraca tablicę struktur DBPROPSET. |