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

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

Ważna

SQL Server Native Client (często skracany jako SNAC) został usunięty z SQL Server 2022 (16.x) i 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. Przełącz się na nowy sterownik Microsoft OLE DB (MSOLEDBSQL) dla programu SQL Server na przyszłość.

Ustawia właściwości parametrów na podstawie parametrów pojedynczych przez porządk lub ustawia właściwości parametrów zbiorczych poprzez określenie tablicy struktur SSPARAMPROPS.

Syntax

HRESULT SetParameterProperties(  
      DB_UPARAMS cParams,   
      SSPARAMPROPS rgParamProperties[]);  

Arguments

cParams[in]
Liczba struktur SSPARAMPROPS w tablicy rgParamProperties . Jeśli ta liczba wynosi zero, ISSCommandWithParameters::SetParameterProperties usunie wszystkie właściwości, które mogły być określone dla dowolnych parametrów w poleceniu.

rgParamProperties[in]
Zestaw struktur SSPARAMPROPS do ustawienia.

Wartości kodów zwracanych

Metoda ISSCommandWithParameters::SetParameterProperties zwraca te same kody błędów co podstawowa metoda OLE DB ICommandProperties::SetProperties .

Remarks

Ustawianie właściwości parametrów tą metodą jest dozwolone na podstawie parametrów przez pojedynczy system lub za pomocą pojedynczego wywołania ISSCommandWithParameters::SetParameterProperties po zbudowaniu SSPARAMPROPS z tablicy właściwości.

Metoda SetParameterInfo musi zostać wywołana przed wywołaniem metody ISSCommandWithParameters::SetParameterProperties . Wywołanie SetParameterProperties(0, NULL) usuwa wszystkie określone właściwości parametrów, a wywołanie SetParameterInfo(0,NULL,NULL) usuwa wszystkie informacje parametrów, w tym wszelkie właściwości, które mogą być powiązane z parametrem.

Wywołanie ISSCommandWithParameters::SetParameterProperties, aby określić właściwości parametru, który nie jest typu DBTYPE_XML ani DBTYPE_UDT zwraca DB_E_ERRORSOCCURRED lub DB_S_ERRORSOCCURRED i oznacza pole dwStatus wszystkich DBPROPów zawartych w SSPARAMPROPS dla tego parametru DBPROPSTATUS_NOTSET. Tablica DBPROP każdego DBPROPSETU zawartego w SSPARAMPROPS powinna być przejrzana, aby wykryć, do którego parametru odnosi się DB_E_ERRORSOCCURRED lub DB_S_ERRORSOCCURRED.

Jeśli ISSCommandWithParameters::SetParameterProperties zostanie wywołany, aby określić właściwości parametrów, których informacje o parametrach nie zostały jeszcze ustalone za pomocą SetParameterInfo, dostawca zwraca E_UNEXPECTED z następującym komunikatem o błędzie:

Metoda SetParameterProperties nie może być wywołana dla określonych parametrów bez wcześniejszego wywołania metody SetParameterInfo. Informacje o parametrze muszą być ustawione przed ustawieniem właściwości parametrów.

Jeśli wywołanie ISSCommandWithParameters::SetParameterProperties zawiera parametry, w których informacje o parametrze zostały ustawione, oraz takie, gdzie informacje o parametrze nie zostały ustawione, właściwości dwStatus w DBPROPSETIE zbioru właściwości SSPARAMPROPS zwrócą DBSTATUS_NOTSET.

Struktura SSPARAMPROPS jest zdefiniowana następująco:

struct SSPARAMPROPS {
    DBORDINAL iOrdinal;
    ULONG cPropertySets;
    DBPROPSET *rgPropertySets;
};

Ulepszenia silnika baz danych, począwszy od SQL Server 2012 (11.x), pozwalają ISSCommandWithParameters::SetParameterProperties uzyskać dokładniejsze opisy oczekiwanych wyników. Te dokładniejsze wyniki mogą różnić się od wartości zwracanych przez ISSCommandWithParameters::SetParametr Properties w poprzednich wersjach SQL Servera. Więcej informacji można znaleźć w sekcji Metadata Discovery.

Członek Opis
iOrdinal Porządkowa parametru miotanego.
cPropertySets Liczba struktur DBPROPSET w rgPropertySets.
rgPropertySets Wskaźnik do pamięci, w którym można zwrócić tablicę struktur DBPROPSET.