CDynamicParameterAccessor – třída
Podobá se CDynamicAccessor, ale získá informace o parametrech, které mají být nastaveny voláním ICommandWithParameters rozhraní.
Syntaxe
class CDynamicParameterAccessor : public CDynamicAccessor
Požadavky
Hlavička: atldbcli.h
Členové
Metody
Název | Popis |
---|---|
CDynamicParameterAccessor | Konstruktor |
GetParam | Načte data parametrů z vyrovnávací paměti. |
GetParamCount | Načte počet parametrů v přístupovém objektu. |
GetParamIO | Určuje, zda je zadaný parametr vstupním nebo výstupním parametrem. |
GetParamLength | Načte délku zadaného parametru uloženého ve vyrovnávací paměti. |
GetParamName | Načte název zadaného parametru. |
GetParamStatus | Načte stav zadaného parametru uloženého ve vyrovnávací paměti. |
GetParamString | Načte řetězcová data zadaného parametru uloženého ve vyrovnávací paměti. |
GetParamType | Načte datový typ zadaného parametru. |
SetParam | Nastaví vyrovnávací paměť pomocí dat parametrů. |
SetParamLength | Nastaví délku zadaného parametru uloženého ve vyrovnávací paměti. |
SetParamStatus | Nastaví stav zadaného parametru uloženého ve vyrovnávací paměti. |
SetParamString | Nastaví řetězcová data zadaného parametru uloženého ve vyrovnávací paměti. |
Poznámky
Poskytovatel musí podporovat ICommandWithParameters
příjemce, aby tuto třídu používal.
Informace o parametrech jsou uloženy ve vyrovnávací paměti vytvořené a spravované touto třídou. Získejte data parametrů z vyrovnávací paměti pomocí GetParam a GetParamType.
Příklad ukazující, jak tuto třídu použít ke spuštění uložené procedury SQL Serveru a získání hodnot výstupních parametrů, viz ukázkový kód DynamicConsumer v úložišti Microsoft VCSamples na GitHubu.
CDynamicParameterAccessor::CDynamicParameterAccessor
Konstruktor
Syntaxe
typedef CDynamicParameterAccessor _ParamClass;
CDynamicParameterAccessor(
DBBLOBHANDLINGENUM eBlobHandling = DBBLOBHANDLING_DEFAULT,
DBLENGTH nBlobSize = 8000 )
: CDynamicAccessor(eBlobHandling, nBlobSize )
Parametry
eBlobHandling
Určuje způsob zpracování dat objektu blob. Výchozí hodnota je DBBLOBHANDLING_DEFAULT. Popis hodnot DBBLOBHANDLINGENUM naleznete v části CDynamicAccessor::SetBlobHandling .
nBlobSize
Maximální velikost objektu blob v bajtech; data sloupce nad touto hodnotou se považují za objekt BLOB. Výchozí hodnota je 8 000. Podrobnosti najdete v tématu CDynamicAccessor::SetBlobSizeLimit .
Poznámky
Další informace o zpracování objektů blob najdete v konstruktoru CDynamicAccessor::CDynamicAccessor .
CDynamicParameterAccessor::GetParam
Načte neřetězí data pro zadaný parametr z vyrovnávací paměti parametru.
Syntaxe
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
Parametr šablony, který je datovým typem.
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
pParamName
[v] Název parametru.
pData
[ven] Ukazatel na paměť obsahující data načtená z vyrovnávací paměti.
Návratová hodnota
U netemplatovaných verzí odkazuje na paměť obsahující data načtená z vyrovnávací paměti. U šablonovaných verzí se vrátí k true
úspěchu nebo false
selhání.
Slouží GetParam
k načtení neřetězích dat parametrů z vyrovnávací paměti. Pomocí GetParamString načtěte data řetězcových parametrů z vyrovnávací paměti.
CDynamicParameterAccessor::GetParamCount
Načte počet parametrů uložených ve vyrovnávací paměti.
Syntaxe
DB_UPARAMS GetParamCount() const throw();
Návratová hodnota
Počet parametrů.
CDynamicParameterAccessor::GetParamIO
Určuje, zda je zadaný parametr vstupním nebo výstupním parametrem.
Syntaxe
bool GetParamIO(DBORDINAL nParam,
DBPARAMIO* pParamIO) const throw();
Parametry
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
pParamIO
Ukazatel na proměnnou obsahující DBPARAMIO
typ (vstup nebo výstup) zadaného parametru. Definuje se takto:
typedef DWORD DBPARAMIO;
enum DBPARAMIOENUM {
DBPARAMIO_NOTPARAM = 0,
DBPARAMIO_INPUT = 0x1,
DBPARAMIO_OUTPUT = 0x2
};
Návratová hodnota
Vrátí true
úspěch nebo false
selhání.
CDynamicParameterAccessor::GetParamLength
Načte délku zadaného parametru uloženého ve vyrovnávací paměti.
Syntaxe
bool GetParamLength(DBORDINAL nParam,
DBLENGTH* pLength);
DBLENGTH* GetParamLength(DBORDINAL nParam) const throw();
Parametry
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
pLength
[ven] Ukazatel na proměnnou obsahující délku v bajtech zadaného parametru.
Poznámky
První přepsání se vrátí true
při úspěchu nebo false
selhání. Druhý přepis odkazuje na paměť obsahující délku parametru.
CDynamicParameterAccessor::GetParamName
Načte název zadaného parametru.
Syntaxe
LPOLESTR GetParamName(DBORDINAL nParam) const throw();
Parametry
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
Návratová hodnota
Název zadaného parametru.
CDynamicParameterAccessor::GetParamStatus
Načte stav zadaného parametru uloženého ve vyrovnávací paměti.
Syntaxe
bool GetParamStatus(DBORDINAL nParam,
DBSTATUS* pStatus);
DBSTATUS* GetParamStatus(DBORDINAL nParam) const throw();
Parametry
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
pStatus
[ven] Ukazatel na proměnnou obsahující stav DBSTATUS zadaného parametru. Informace o hodnotách DBSTATUS naleznete v tématu Stav v odkazech programátora OLE DB nebo vyhledejte DBSTATUS v oledb.h.
Poznámky
První přepsání se vrátí true
při úspěchu nebo false
selhání. Druhé přepsání odkazuje na paměť obsahující stav zadaného parametru.
CDynamicParameterAccessor::GetParamString
Načte řetězcová data zadaného parametru uloženého ve vyrovnávací paměti.
Syntaxe
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
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
strOutput
[ven] Řetězcová data ANSI (CSimpleStringA
) nebo Unicode (CSimpleStringW
) zadaného parametru. Měli byste předat parametr typu CString
, například:
CString MyString;
rs.GetParamString(1, MyString);
pBuffer
[ven] Ukazatel na řetězcová data ANSI (CHAR) nebo Unicode (WCHAR) zadaného parametru.
pMaxLen
[ven] Ukazatel na velikost vyrovnávací paměti, na kterou odkazuje pBuffer (ve znaznachu včetně ukončující hodnoty NULL).
Poznámky
Vrátí true
úspěch nebo false
selhání.
Pokud pBuffer je NULL, tato metoda nastaví požadovanou velikost vyrovnávací paměti v paměti odkazující na pMaxLen a vrátí bez true
kopírování dat.
Tato metoda selže, pokud vyrovnávací paměť pBuffer není dostatečně velká, aby obsahovala celý řetězec.
Slouží GetParamString
k načtení dat řetězcových parametrů z vyrovnávací paměti. Pomocí getParam načtěte z vyrovnávací paměti neřetězí data parametrů.
CDynamicParameterAccessor::GetParamType
Načte datový typ zadaného parametru.
Syntaxe
bool GetParamType(DBORDINAL nParam,
DBTYPE* pType) const throw();
Parametry
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
pType
[ven] Ukazatel na proměnnou obsahující datový typ zadaného parametru.
Návratová hodnota
Vrátí true
úspěch nebo false
selhání.
CDynamicParameterAccessor::SetParam
Nastaví vyrovnávací paměť parametru pomocí zadaných (neřetězcových) dat.
Syntaxe
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
Parametr šablony, který je datovým typem.
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad:
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
[v] Název parametru.
pData
[v] Ukazatel na paměť obsahující data, která se mají zapisovat do vyrovnávací paměti.
status
[v] Stav sloupce DBSTATUS. Informace o hodnotách DBSTATUS naleznete v tématu Stav v odkazech programátora OLE DB nebo vyhledejte DBSTATUS v oledb.h.
Návratová hodnota
Vrátí true
úspěch nebo false
selhání.
Slouží SetParam
k nastavení dat parametrů netřetězí v vyrovnávací paměti. Pomocí setParamString nastavte data řetězcového parametru v vyrovnávací paměti.
CDynamicParameterAccessor::SetParamLength
Nastaví délku zadaného parametru uloženého ve vyrovnávací paměti.
Syntaxe
bool SetParamLength(DBORDINAL nParam,
DBLENGTH length);
Parametry
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
length
[v] Délka v bajtech zadaného parametru.
Poznámky
Vrátí true
úspěch nebo false
selhání.
CDynamicParameterAccessor::SetParamStatus
Nastaví stav zadaného parametru uloženého ve vyrovnávací paměti.
Syntaxe
bool SetParamStatus(DBORDINAL nParam,
DBSTATUS status);
Parametry
nParam
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
status
[v] Stav DBSTATUS zadaného parametru. Informace o hodnotách DBSTATUS naleznete v tématu Stav v odkazech programátora OLE DB nebo vyhledejte DBSTATUS v oledb.h.
Poznámky
Vrátí true
úspěch nebo false
selhání.
CDynamicParameterAccessor::SetParamString
Nastaví řetězcová data zadaného parametru uloženého ve vyrovnávací paměti.
Syntaxe
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
[v] Číslo parametru (posun od 1). Parametr 0 je vyhrazen pro návratové hodnoty. Číslo parametru je index parametru na základě jeho pořadí ve volání SQL nebo uložené procedury. Příklad najdete v tématu SetParam .
pString
[v] Ukazatel na řetězcová data ANSI (CHAR) nebo Unicode (WCHAR) zadaného parametru. Viz DBSTATUS v oledb.h.
status
[v] Stav DBSTATUS zadaného parametru. Informace o hodnotách DBSTATUS naleznete v tématu Stav v odkazech programátora OLE DB nebo vyhledejte DBSTATUS v oledb.h.
Poznámky
Vrátí true
úspěch nebo false
selhání.
SetParamString
pokud se pokusíte nastavit řetězec, který je větší než maximální velikost zadaná pro řetězec pString.
Slouží SetParamString
k nastavení dat parametrů řetězce v vyrovnávací paměti. Pomocí setParam nastavte neřetězí data parametrů v vyrovnávací paměti.
Viz také
Šablony příjemců OLE DB
Referenční dokumentace k šablonám příjemců OLE DB
CAccessor – třída
CDynamicAccessor – třída
CManualAccessor – třída