Sdílet prostřednictvím


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