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
Elementy członkowskie
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
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. Na 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 .
length
[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