Udostępnij za pośrednictwem


ISSCommandWithParameters::GetParameterProperties w kliencie natywnym programu SQL Server (OLE DB)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Ważny

sql Server Native Client (często skrócony SNAC) został usunięty z programu SQL Server 2022 (16.x) i PROGRAMU SQL Server Management Studio 19 (SSMS). Zarówno dostawca OLE DB klienta natywnego programu SQL Server (SQLNCLI lub SQLNCLI11), jak i starszy dostawca MICROSOFT OLE DB dla programu SQL Server (SQLOLEDB) nie są zalecane w przypadku nowego programowania. Przejdź do nowego sterownika MICROSOFT OLE DB (MSOLEDBSQL) dla programu SQL Server w przyszłości.

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 prgParamProperties, konsument 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 zapewnia, że prgParamProperties jest wskaźnikiem null w danych wyjściowych.

Zwracanie wartości kodu

Metoda GetParameterProperties zwraca te same kody błędów co podstawowy kod OLE DB ICommandProperties::GetProperties metody, z wyjątkiem tego, że nie można podnieść DB_S_ERRORSOCCURRED i DB_E_ERRORSOCCURRED.

Uwagi

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 to. Jeśli ISSCommandWithParameters::SetParameterProperties lub SetParameterInfo zostały wywołane dla co najmniej jednego parametru, ISSCommandWithParameters::GetParameterProperties zwraca właściwości tylko dla tych parametrów, dla których wywołano ISSCommandWithParameters::SetParameterProperties. Jeśli ISSCommandWithParameters::SetParameterProperties jest wywoływany po ISSCommandWithParameters::GetParameterProperties lub GetParameterInfo, kolejne wywołania polecenia ISSCommandWithParameters::GetParameterProperties zwracają wartości przesłonięte dla tych parametrów, dla których wywołano 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.

Zobacz też

ISSCommandWithParameters (OLE DB)