CDynamicParameterAccessor — Klasa

Podobnie jak CDynamicAccessor , ale uzyskuje informacje o parametrach do ustawienia przez wywołanie interfejsu ICommandWithParameters .

Składnia

class CDynamicParameterAccessor : public CDynamicAccessor

Wymagania

Nagłówek: atldbcli.h

Członkowie

Metody

Nazwa/nazwisko opis
Cdynamicparameteraccessor Konstruktor.
GetParam Pobiera dane parametrów z buforu.
GetParamCount Pobiera liczbę parametrów w metodzie dostępu.
GetParamIO Określa, czy określony parametr jest parametrem wejściowym, czy wyjściowym.
GetParamLength Pobiera długość określonego parametru przechowywanego w buforze.
GetParamName Pobiera nazwę określonego parametru.
GetParamStatus Pobiera stan określonego parametru przechowywanego w buforze.
GetParamString Pobiera dane ciągu określonego parametru przechowywanego w buforze.
GetParamType Pobiera typ danych określonego parametru.
SetParam Ustawia bufor przy użyciu danych parametrów.
SetParamLength Ustawia długość określonego parametru przechowywanego w buforze.
SetParamStatus Ustawia stan określonego parametru przechowywanego w buforze.
SetParamString Ustawia dane ciągu określonego parametru przechowywanego w buforze.

Uwagi

Dostawca musi obsługiwać ICommandWithParameters użytkownika, aby używał tej klasy.

Informacje o parametrach są przechowywane w buforze utworzonym i zarządzanym przez tę klasę. Uzyskiwanie danych parametrów z buforu przy użyciu metod GetParam i GetParamType.

Przykład pokazujący, jak używać tej klasy do wykonywania procedury składowanej programu SQL Server i pobierania wartości parametrów wyjściowych, zobacz przykładowy kod DynamicConsumer w repozytorium Microsoft VCSamples w witrynie GitHub.

CDynamicParameterAccessor::CDynamicParameterAccessor

Konstruktor.

Składnia

typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
   DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
   DBLENGTH nBlobSize = 8000 )
   : CDynamicAccessor(eBlobHandling, nBlobSize )

Parametry

eBlobHandling
Określa sposób obsługi danych obiektu BLOB. Wartość domyślna to DBBLOBHANDLING_DEFAULT. Aby uzyskać opis wartości DBBLOBHANDUM, zobacz CDynamicAccessor::SetBlobHandling .

nBlobSize
Maksymalny rozmiar obiektu BLOB w bajtach; dane kolumn nad tą wartością są traktowane jako obiekt BLOB. Wartość domyślna to 8000. Aby uzyskać szczegółowe informacje, zobacz CDynamicAccessor::SetBlobSizeLimit .

Uwagi

Aby uzyskać więcej informacji na temat obsługi obiektów blob, zobacz konstruktor CDynamicAccessor::CDynamicAccessor.

CDynamicParameterAccessor::GetParam

Pobiera dane nieciągające dla określonego parametru z buforu parametrów.

Składnia

template <class ctype>bool GetParam(DBORDINAL nParam,
   ctype* pData) const throw();

template <class ctype> bool GetParam(TCHAR* pParamName,
   ctype* pData) const throw();

void* GetParam(DBORDINAL nParam) const throw();

void* GetParam(TCHAR* pParamName) const throw();

Parametry

Ctype
Szablonowy parametr, który jest typem danych.

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

pParamName
[in] Nazwa parametru.

Pdata
[out] Wskaźnik do pamięci zawierającej dane pobrane z buforu.

Wartość zwracana

W przypadku nieplatednych wersji wskazuje pamięć zawierającą dane pobrane z buforu. W przypadku wersji szablonów zwraca wartość true powodzenia lub false niepowodzenia.

Służy GetParam do pobierania danych parametrów nonstring z buforu. Użyj polecenia GetParamString , aby pobrać dane parametrów ciągu z buforu.

CDynamicParameterAccessor::GetParamCount

Pobiera liczbę parametrów przechowywanych w buforze.

Składnia

DB_UPARAMS GetParamCount() const throw();

Wartość zwracana

Liczba parametrów.

CDynamicParameterAccessor::GetParamIO

Określa, czy określony parametr jest parametrem wejściowym, czy wyjściowym.

Składnia

bool GetParamIO(DBORDINAL nParam,
   DBPARAMIO* pParamIO) const throw();

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

pParamIO
Wskaźnik do zmiennej zawierającej DBPARAMIO typ (dane wejściowe lub wyjściowe) określonego parametru. Jest on zdefiniowany w następujący sposób:

typedef DWORD DBPARAMIO;

enum DBPARAMIOENUM {
    DBPARAMIO_NOTPARAM   = 0,
    DBPARAMIO_INPUT      = 0x1,
    DBPARAMIO_OUTPUT     = 0x2
};

Wartość zwracana

Zwraca wartość true powodzenia lub false niepowodzenia.

CDynamicParameterAccessor::GetParamLength

Pobiera długość określonego parametru przechowywanego w buforze.

Składnia

bool GetParamLength(DBORDINAL nParam,
   DBLENGTH* pLength);

DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

PLength
[out] Wskaźnik do zmiennej zawierającej długość w bajtach określonego parametru.

Uwagi

Pierwsze przesłonięcia zwraca wartość true powodzenia lub false niepowodzenia. Drugie zastąpienie wskazuje pamięć zawierającą długość parametru.

CDynamicParameterAccessor::GetParamName

Pobiera nazwę określonego parametru.

Składnia

LPOLESTR GetParamName(DBORDINAL nParam) const throw();

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

Wartość zwracana

Nazwa określonego parametru.

CDynamicParameterAccessor::GetParamStatus

Pobiera stan określonego parametru przechowywanego w buforze.

Składnia

bool GetParamStatus(DBORDINAL nParam,
   DBSTATUS* pStatus);

DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

pStatus
[out] Wskaźnik do zmiennej zawierającej stan DBSTATUS określonego parametru. Aby uzyskać informacje na temat wartości DBSTATUS, zobacz Stan w dokumentacji programisty OLE DB lub wyszukaj dbSTATUS w oledb.h.

Uwagi

Pierwsze przesłonięcia zwraca wartość true powodzenia lub false niepowodzenia. Drugie zastąpienie wskazuje pamięć zawierającą stan określonego parametru.

CDynamicParameterAccessor::GetParamString

Pobiera dane ciągu określonego parametru przechowywanego w buforze.

Składnia

bool GetParamString(DBORDINAL nParam,
   CSimpleStringA& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CSimpleStringW& strOutput) throw();

bool GetParamString(DBORDINAL nParam,
   CHAR* pBuffer,
   size_t* pMaxLen) throw();

bool GetParamString(DBORDINAL nParam,
   WCHAR* pBuffer,
   size_t* pMaxLen) throw();

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

strOutput
[out] Dane ciągu ANSI (CSimpleStringA) lub Unicode (CSimpleStringW) określonego parametru. Należy przekazać parametr typu CString, na przykład:

CString MyString;
rs.GetParamString(1, MyString);

Pbuffer
[out] Wskaźnik do danych ciągu ANSI (CHAR) lub Unicode (WCHAR) określonego parametru.

pMaxLen
[out] Wskaźnik do rozmiaru buforu wskazywanego przez wartość pBuffer (w znakach, w tym wartości null zakończenia).

Uwagi

Zwraca wartość true powodzenia lub false niepowodzenia.

Jeśli wartość pBuffer ma wartość NULL, ta metoda ustawi wymagany rozmiar buforu w pamięci wskazywanej przez wartość pMaxLen i zwraca true bez kopiowania danych.

Ta metoda zakończy się niepowodzeniem, jeśli bufor pBuffer nie jest wystarczająco duży, aby zawierać cały ciąg.

Użyj GetParamString polecenia , aby pobrać dane parametrów ciągu z buforu. Użyj polecenia GetParam , aby pobrać dane parametrów nieciągujących z buforu.

CDynamicParameterAccessor::GetParamType

Pobiera typ danych określonego parametru.

Składnia

bool GetParamType(DBORDINAL nParam,
   DBTYPE* pType) const throw();

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

typ pType
[out] Wskaźnik do zmiennej zawierającej typ danych określonego parametru.

Wartość zwracana

Zwraca wartość true powodzenia lub false niepowodzenia.

CDynamicParameterAccessor::SetParam

Ustawia bufor parametrów przy użyciu określonych (innych niż ciąg) danych.

Składnia

template <class ctype>
bool SetParam(DBORDINAL nParam,
   constctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

template <class ctype>
bool SetParam(TCHAR* pParamName,
   const ctype* pData,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Parametry

Ctype
Szablonowy parametr, który jest typem danych.

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Przykład:

WCHAR* wszSQL = L"SELECT * FROM Authors WHERE State='?' AND LName='?'";

CCommand<CDynamicParameterAccessor> rs;
//...
rs.SetParam<LONG>(1, &m_BillingID);
rs.SetParam<CString>(2, &m_strFirstName);

pParamName
[in] Nazwa parametru.

Pdata
[in] Wskaźnik do pamięci zawierającej dane do zapisania w buforze.

status
[in] Stan kolumny DBSTATUS. Aby uzyskać informacje na temat wartości DBSTATUS, zobacz Stan w dokumentacji programisty OLE DB lub wyszukaj dbSTATUS w oledb.h.

Wartość zwracana

Zwraca wartość true powodzenia lub false niepowodzenia.

Służy SetParam do ustawiania danych parametrów nieciągujących w buforze. Użyj polecenia SetParamString , aby ustawić dane parametrów ciągu w buforze.

CDynamicParameterAccessor::SetParamLength

Ustawia długość określonego parametru przechowywanego w buforze.

Składnia

bool SetParamLength(DBORDINAL nParam,
   DBLENGTH length);

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

Długość
[in] Długość w bajtach określonego parametru.

Uwagi

Zwraca wartość true powodzenia lub false niepowodzenia.

CDynamicParameterAccessor::SetParamStatus

Ustawia stan określonego parametru przechowywanego w buforze.

Składnia

bool SetParamStatus(DBORDINAL nParam,
   DBSTATUS status);

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

status
[in] Stan DBSTATUS określonego parametru. Aby uzyskać informacje na temat wartości DBSTATUS, zobacz Stan w dokumentacji programisty OLE DB lub wyszukaj dbSTATUS w oledb.h.

Uwagi

Zwraca wartość true powodzenia lub false niepowodzenia.

CDynamicParameterAccessor::SetParamString

Ustawia dane ciągu określonego parametru przechowywanego w buforze.

Składnia

bool SetParamString(DBORDINAL nParam,
   constCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();bool SetParamString(DBORDINAL nParam,
   constWCHAR* pString,
   DBSTATUS status = DBSTATUS_S_OK) throw();

Parametry

nParam
[in] Numer parametru (przesunięcie z 1). Parametr 0 jest zarezerwowany dla wartości zwracanych. Numer parametru jest indeksem parametru na podstawie jego kolejności w wywołaniu sql lub procedury składowanej. Zobacz przykład SetParam .

Ciąg pString
[in] Wskaźnik do danych ciągu ANSI (CHAR) lub Unicode (WCHAR) określonego parametru. Zobacz DBSTATUS w pliku oledb.h.

status
[in] Stan DBSTATUS określonego parametru. Aby uzyskać informacje na temat wartości DBSTATUS, zobacz Stan w dokumentacji programisty OLE DB lub wyszukaj dbSTATUS w oledb.h.

Uwagi

Zwraca wartość true powodzenia lub false niepowodzenia.

SetParamString Program zakończy się niepowodzeniem, jeśli spróbujesz ustawić ciąg większy niż maksymalny rozmiar określony dla ciągu pString.

Służy SetParamString do ustawiania danych parametrów ciągu w buforze. Użyj parametru SetParam , aby ustawić dane parametrów nonstring w buforze.

Zobacz też

Szablony konsumentów OLE DB
Szablony konsumentów OLE DB — dokumentacja
CAccessor, klasa
CDynamicAccessor, klasa
CManualAccessor, klasa