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 (CSimpleStringA
CSimpleStringW
) 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
.
SetParamString
schlä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