Freigeben über


CDynamicParameterAccessor-Klasse

Ähnlich wie CDynamicAccessor , ruft festzulegende Parameterinformationen aber durch Aufrufen der ICommandWithParameters -Schnittstelle ab.

Syntax

class CDynamicParameterAccessor : public CDynamicAccessor

Anforderungen

Header: atldbcli.h

Member

Methoden

Name Beschreibung
CDynamicParameterAccessor Der Konstruktor.
GetParam Ruft die Parameterdaten aus dem Puffer ab.
GetParamCount Ruft die Anzahl von Parametern im Accessor ab.
GetParamIO Ermittelt, ob der angegebene Parameter ein Eingabe- oder ein Ausgabeparameter ist.
GetParamLength Ruft die Länge des angegebenen Parameters ab, der im Puffer gespeichert ist.
GetParamName Ruft den Namen eines angegebenen Parameters ab.
GetParamStatus Ruft den Status des angegebenen Parameters ab, der im Puffer gespeichert ist.
GetParamString Ruft die Zeichenfolgendaten Status des angegebenen Parameters ab, der im Puffer gespeichert ist.
GetParamType Ruft den Datentyp eines angegebenen Parameters ab.
SetParam Verwendet die Parameterdaten, um den Puffer festzulegen.
SetParamLength Legt die Länge des angegebenen Parameters fest, der im Puffer gespeichert ist.
SetParamStatus Legt den Status des angegebenen Parameters fest, der im Puffer gespeichert ist.
SetParamString Legt die Zeichenfolgendaten des angegebenen Parameters fest, der im Puffer gespeichert ist.

Hinweise

Der Anbieter muss ICommandWithParameters unterstützen, damit der Consumer diese Klasse verwenden kann.

Die Parameterinformationen werden in einem Puffer gespeichert, der von dieser Klasse erstellt und verwaltet wird. Sie rufen Parameterdaten aus dem Puffer ab, indem Sie GetParam und GetParamTypeverwenden.

Ein Beispiel für die Verwendung dieser Klasse zum Ausführen einer gespeicherten SQL Server-Prozedur und zum Abrufen der Ausgabeparameterwerte finden Sie im DynamicConsumer-Beispielcode im Microsoft VCSamples-Repository auf GitHub.

CDynamicParameterAccessor::CDynamicParameterAccessor

Der Konstruktor.

Syntax

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

Parameter

eBlobHandling
Gibt an, wie die BLOB-Daten verarbeitet werden sollen. Der Standardwert ist DBBLOBHANDLING_DEFAULT. Eine Beschreibung der DBBLOBHANDLINGENUM-Werte finden Sie unter CDynamicAccessor::SetBlobHandling .

nBlobSize
Die maximale BLOB-Größe in Byte; Spaltendaten über diesem Wert werden als BLOB behandelt. Der Standardwert ist 8.000. Weitere Informationen finden Sie unter CDynamicAccessor::SetBlobSizeLimit .

Hinweise

Weitere Informationen zur BLOB-Behandlung finden Sie im CDynamicAccessor::CDynamicAccessor-Konstruktor .

CDynamicParameterAccessor::GetParam

Ruft die Nichtzeichenfolgendaten für einen angegebenen Parameter aus dem Parameterpuffer ab.

Syntax

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();

Parameter

ctype
Ein vorlagenbasierter Parameter, der den Datentyp darstellt.

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

pParamName
[in] Der Parametername.

pData
[out] Der Zeiger auf den Speicher, der die aus dem Puffer abgerufenen Daten enthält.

Rückgabewert

Verweist bei nicht vorlagenfreien Versionen auf den Speicher, der die aus dem Puffer abgerufenen Daten enthält. Bei vorlagenbasierten Versionen wird bei Erfolg oder false bei Fehlern zurückgegebentrue.

Dient GetParam zum Abrufen von Nichtzeichenfolgenparameterdaten aus dem Puffer. Verwenden Sie GetParamString , um Zeichenfolgenparameterdaten aus dem Puffer abzurufen.

CDynamicParameterAccessor::GetParamCount

Ruft die Anzahl der im Puffer gespeicherten Parameter ab.

Syntax

DB_UPARAMS GetParamCount() const throw();

Rückgabewert

Die Anzahl der Parameter.

CDynamicParameterAccessor::GetParamIO

Ermittelt, ob der angegebene Parameter ein Eingabe- oder ein Ausgabeparameter ist.

Syntax

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

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

pParamIO
Ein Zeiger auf die Variable, die den DBPARAMIO Typ (Eingabe oder Ausgabe) des angegebenen Parameters enthält. Nachfolgend ist diese Definition gezeigt:

typedef DWORD DBPARAMIO;

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

Rückgabewert

Gibt bei Erfolg oder false bei Fehlern zurücktrue.

CDynamicParameterAccessor::GetParamLength

Ruft die Länge des angegebenen Parameters ab, der im Puffer gespeichert ist.

Syntax

bool GetParamLength(DBORDINAL nParam,
   DBLENGTH* pLength);

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

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

pLength
[out] Ein Zeiger auf die Variable, die die Länge in Byte des angegebenen Parameters enthält.

Hinweise

Die erste Außerkraftsetzung gibt true den Erfolg oder false den Fehler zurück. Die zweite Außerkraftsetzung verweist auf den Speicher, der die Länge des Parameters enthält.

CDynamicParameterAccessor::GetParamName

Ruft den Namen des angegebenen Parameters ab.

Syntax

LPOLESTR GetParamName(DBORDINAL nParam) const throw();

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

Rückgabewert

Der Name des angegebenen Parameters.

CDynamicParameterAccessor::GetParamStatus

Ruft den Status des angegebenen Parameters ab, der im Puffer gespeichert ist.

Syntax

bool GetParamStatus(DBORDINAL nParam,
   DBSTATUS* pStatus);

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

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

pStatus
[out] Ein Zeiger auf die Variable, die den DBSTATUS-Status des angegebenen Parameters enthält. Informationen zu DBSTATUS-Werten finden Sie unter "Status " in der OLE DB-Programmierreferenz, oder suchen Sie in oledb.h nach DBSTATUS.

Hinweise

Die erste Außerkraftsetzung gibt true den Erfolg oder false den Fehler zurück. Die zweite Außerkraftsetzung verweist auf den Speicher, der den Status des angegebenen Parameters enthält.

CDynamicParameterAccessor::GetParamString

Ruft die Zeichenfolgendaten Status des angegebenen Parameters ab, der im Puffer gespeichert ist.

Syntax

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();

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

strOutput
[out] Die ANSI-Zeichenfolgendaten () oder Unicode (CSimpleStringACSimpleStringW) des angegebenen Parameters. Sie sollten einen Parameter vom Typ CStringübergeben, z. B.:

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

pBuffer
[out] Ein Zeiger auf die Zeichenfolgendaten ANSI (CHAR) oder Unicode (WCHAR) des angegebenen Parameters.

pMaxLen
[out] Ein Zeiger auf die Größe des Puffers, auf den pBuffer verweist (in Zeichen, einschließlich der endenden NULL).

Hinweise

Gibt bei Erfolg oder false bei Fehlern zurücktrue.

Wenn pBuffer NULL ist, legt diese Methode die erforderliche Puffergröße im Speicher fest, auf den pMaxLen verweist, und gibt zurück true , ohne die Daten zu kopieren.

Diese Methode schlägt fehl, wenn der Puffer pBuffer nicht groß genug ist, um die gesamte Zeichenfolge zu enthalten.

Dient GetParamString zum Abrufen von Zeichenfolgenparameterdaten aus dem Puffer. Verwenden Sie GetParam , um Nichtzeichenfolgenparameterdaten aus dem Puffer abzurufen.

CDynamicParameterAccessor::GetParamType

Ruft den Datentyp eines angegebenen Parameters ab.

Syntax

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

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

pType
[out] Ein Zeiger auf die Variable, die den Datentyp des angegebenen Parameters enthält.

Rückgabewert

Gibt bei Erfolg oder false bei Fehlern zurücktrue.

CDynamicParameterAccessor::SetParam

Legt den Parameterpuffer mithilfe der angegebenen (nicht zeichenfolgenfreien) Daten fest.

Syntax

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();

Parameter

ctype
Ein vorlagenbasierter Parameter, der den Datentyp darstellt.

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Zum Beispiel:

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] Der Parametername.

pData
[in] Der Zeiger auf den Speicher, der die daten enthält, die in den Puffer geschrieben werden sollen.

status
[in] Der DBSTATUS-Spaltenstatus. Informationen zu DBSTATUS-Werten finden Sie unter "Status " in der OLE DB-Programmierreferenz, oder suchen Sie in oledb.h nach DBSTATUS.

Rückgabewert

Gibt bei Erfolg oder false bei Fehlern zurücktrue.

Wird verwendet SetParam , um Parameterdaten ohne Zeichenfolge im Puffer festzulegen. Verwenden Sie SetParamString , um Zeichenfolgenparameterdaten im Puffer festzulegen.

CDynamicParameterAccessor::SetParamLength

Legt die Länge des angegebenen Parameters fest, der im Puffer gespeichert ist.

Syntax

bool SetParamLength(DBORDINAL nParam,
   DBLENGTH length);

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

length
[in] Die Länge in Byte des angegebenen Parameters.

Hinweise

Gibt bei Erfolg oder false bei Fehlern zurücktrue.

CDynamicParameterAccessor::SetParamStatus

Legt den Status des angegebenen Parameters fest, der im Puffer gespeichert ist.

Syntax

bool SetParamStatus(DBORDINAL nParam,
   DBSTATUS status);

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

status
[in] Der DBSTATUS-Status des angegebenen Parameters. Informationen zu DBSTATUS-Werten finden Sie unter "Status " in der OLE DB-Programmierreferenz, oder suchen Sie in oledb.h nach DBSTATUS.

Hinweise

Gibt bei Erfolg oder false bei Fehlern zurücktrue.

CDynamicParameterAccessor::SetParamString

Legt die Zeichenfolgendaten des angegebenen Parameters fest, der im Puffer gespeichert ist.

Syntax

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

Parameter

nParam
[in] Die Parameternummer (Offset von 1). Parameter 0 ist für Rückgabewerte reserviert. Die Parameternummer ist der Index des Parameters basierend auf seiner Reihenfolge im SQL- oder gespeicherten Prozeduraufruf. Ein Beispiel finden Sie unter SetParam .

pString
[in] Ein Zeiger auf die Zeichenfolgendaten ANSI (CHAR) oder Unicode (WCHAR) des angegebenen Parameters. Siehe DBSTATUS in oledb.h.

status
[in] Der DBSTATUS-Status des angegebenen Parameters. Informationen zu DBSTATUS-Werten finden Sie unter "Status " in der OLE DB-Programmierreferenz, oder suchen Sie in oledb.h nach DBSTATUS.

Hinweise

Gibt bei Erfolg oder false bei Fehlern zurücktrue.

SetParamStringschlägt fehl, wenn Sie versuchen, eine Zeichenfolge festzulegen, die größer als die für pString angegebene maximale Größe ist.

Dient SetParamString zum Festlegen von Zeichenfolgenparameterdaten im Puffer. Verwenden Sie SetParam , um Parameterdaten ohne Zeichenfolge im Puffer festzulegen.

Siehe auch

OLE DB-Consumervorlagen
Referenz der OLE DB-Consumervorlagen
CAccessor-Klasse
CDynamicAccessor-Klasse
CManualAccessor-Klasse