IRowsetImpl-Klasse
Stellt eine Implementierung der IRowset
-Schnittstelle bereit.
Syntax
template <
class T,
class RowsetInterface,
class RowClass = CSimpleRow,
class MapClass = CAtlMap <
RowClass::KeyType,
RowClass*>>
class ATL_NO_VTABLE IRowsetImpl : public RowsetInterface
Parameter
T
Ihre Klasse, abgeleitet von IRowsetImpl
.
RowsetInterface
Eine von IRowsetImpl
.
RowClass
Speichereinheit für die HROW
.
MapClass
Speichereinheit für alle Zeilenziehpunkte, die vom Anbieter gehalten werden.
Anforderungen
Header: „atldb.h“
Member
Methoden
Name | Beschreibung |
---|---|
AddRefRows | Fügt einem vorhandenen Zeilenziehpunkt eine Verweisanzahl hinzu. |
CreateRow | Wird von GetNextRows aufgerufen, um eine neue HROW zuzuweisen. Nicht direkt vom Benutzer aufgerufen. |
GetData | Ruft Daten aus der Kopie des Rowsets der Zeile ab. |
GetDBStatus | Gibt den Status für das angegebene Feld zurück. |
GetNextRows | Ruft Zeilen sequenziell ab und merkt sich die vorherige Position. |
IRowsetImpl | Der Konstruktor. Nicht direkt vom Benutzer aufgerufen. |
RefRows | Aufgerufen von AddRefRows und ReleaseRows. Nicht direkt vom Benutzer aufgerufen. |
ReleaseRows | Gibt Zeilen frei. |
RestartPosition | Positioniert die nächste Abrufposition an der Anfangsposition. d. h. die Position, an der das Rowset zum ersten Mal erstellt wurde. |
SetDBStatus | Legt die Statuskennzeichnungen für das angegebene Feld fest. |
Datenelemente
Name | Beschreibung |
---|---|
m_bCanFetchBack | Gibt an, ob ein Anbieter das Rückwärtsabrufen unterstützt. |
m_bCanScrollBack | Gibt an, ob ein Anbieter den Cursor rückwärts scrollen kann. |
m_bReset | Gibt an, ob ein Anbieter seine Cursorposition zurückgesetzt hat. Dies hat eine besondere Bedeutung, wenn der Bildlauf rückwärts oder rückwärts in GetNextRows abgerufen wird. |
m_iRowset | Ein Index für das Rowset, der den Cursor darstellt. |
m_rgRowHandles | Eine Liste der Zeilenziehpunkte. |
Hinweise
IRowset ist die Basiszeilenschnittstelle.
IRowsetImpl::AddRefRows
Fügt einem vorhandenen Zeilenziehpunkt eine Verweisanzahl hinzu.
Syntax
STDMETHOD(AddRefRows )(DBCOUNTITEM cRows,
const HROW rghRows[],
DBREFCOUNT rgRefCounts[],
DBROWSTATUS rgRowStatus[]);
Parameter
Siehe "IRowset::AddRefRows " in der OLE DB-Programmierreferenz.
IRowsetImpl::CreateRow
Eine Hilfsmethode, die von GetNextRows aufgerufen wird, um eine neue HROW
zuzuweisen.
Syntax
HRESULT CreateRow(DBROWOFFSET lRowsOffset,
DBCOUNTITEM& cRowsObtained,
HROW* rgRows);
Parameter
lRowsOffset
Cursorposition der zu erstellenden Zeile.
cRowsObtained
Ein Verweis, der an den Benutzer übergeben wird, der die Anzahl der erstellten Zeilen angibt.
rgRows
Ein Array von HROW
s, das mit den neu erstellten Zeilenhandles an den Aufrufer zurückgegeben wird.
Hinweise
Wenn die Zeile vorhanden ist, ruft diese Methode AddRefRows auf und gibt diese zurück. Andernfalls wird eine neue Instanz der RowClass-Vorlagenvariable zugewiesen und m_rgRowHandles hinzugefügt.
IRowsetImpl::GetData
Ruft Daten aus der Kopie des Rowsets der Zeile ab.
Syntax
STDMETHOD(GetData )(HROW hRow,
HACCESSOR hAccessor,
void* pDstData);
Parameter
Siehe "IRowset::GetData " in der OLE DB-Programmierreferenz.
Einige Parameter entsprechen den Referenzparametern des OLE DB-Programmierers verschiedener Namen, die in IRowset::GetData
:
OLE DB-Vorlagenparameter | Referenzparameter des OLE DB-Programmierers |
---|---|
pDstData | pData |
Hinweise
Behandelt auch die Datenkonvertierung mithilfe der OLE DB-Datenkonvertierungs-DLL.
IRowsetImpl::GetDBStatus
Gibt die DBSTATUS-Statuskennzeichnungen für das angegebene Feld zurück.
Syntax
virtual DBSTATUS GetDBStatus(RowClass* currentRow,
ATLCOLUMNINFO* columnNames);
Parameter
currentRow
[in] Die aktuelle Zeile.
columnNames
[in] Die Spalte, für die der Status angefordert wird.
Rückgabewert
Die DBSTATUS-Flags für die Spalte.
IRowsetImpl::GetNextRows
Ruft Zeilen sequenziell ab und merkt sich die vorherige Position.
Syntax
STDMETHOD(GetNextRows )(HCHAPTER hReserved,
DBROWOFFSET lRowsOffset,
DBROWCOUNT cRows,
DBCOUNTITEM* pcRowsObtained,
HROW** prghRows);
Parameter
Siehe "IRowset::GetNextRows " in der OLE DB-Programmierreferenz.
IRowsetImpl::IRowsetImpl
Der Konstruktor.
Syntax
IRowsetImpl();
Hinweise
In der Regel müssen Sie diese Methode nicht direkt aufrufen.
IRowsetImpl::RefRows
Wird von AddRefRows und ReleaseRows aufgerufen, um entweder eine Inkrementierung zu erhöhen oder eine Verweisanzahl auf ein vorhandenes Zeilenhandle freizugeben.
Syntax
HRESULT RefRows(DBCOUNTITEM cRows,
const HROWrghRows[],
DBREFCOUNT rgRefCounts[],
DBROWSTATUS rgRowStatus[],
BOOL bAdd);
Parameter
Siehe "IRowset::AddRefRows " in der OLE DB-Programmierreferenz.
Rückgabewert
Ein HRESULT-Standardwert.
IRowsetImpl::ReleaseRows
Gibt Zeilen frei.
Syntax
STDMETHOD(ReleaseRows )(DBCOUNTITEM cRows,
const HROW rghRows[],
DBROWOPTIONS rgRowOptions[],
DBREFCOUNT rgRefCounts[],
DBROWSTATUS rgRowStatus[]);
Parameter
Siehe IRowset::ReleaseRows in der OLE DB-Programmierreferenz.
IRowsetImpl::RestartPosition
Positioniert die nächste Abrufposition an der Anfangsposition. d. h. die Position, an der das Rowset zum ersten Mal erstellt wurde.
Syntax
STDMETHOD(RestartPosition )(HCHAPTER /* hReserved */);
Parameter
Siehe "IRowset::RestartPosition " in der OLE DB-Programmierreferenz.
Hinweise
Die Rowsetposition ist nicht definiert, bis GetNextRow
sie aufgerufen wird. Sie können in einem Rowet rückwärts navigieren, indem Sie aufrufen RestartPosition
und dann rückwärts scrollen oder abrufen.
IRowsetImpl::SetDBStatus
Legt die DBSTATUS-Statuskennzeichnungen für das angegebene Feld fest.
Syntax
virtual HRESULT SetDBStatus(DBSTATUS* statusFlags,
RowClass* currentRow,
ATLCOLUMNINFO* columnInfo);
Parameter
statusFlags
Die DBSTATUS-Flags , die für die Spalte festgelegt werden sollen.
currentRow
Die aktuelle Zeile.
columnInfo
Die Spalte, für die der Status festgelegt wird.
Rückgabewert
Ein HRESULT-Standardwert.
Hinweise
Der Anbieter setzt diese Funktion außer Kraft, um eine spezielle Verarbeitung für DBSTATUS_S_ISNULL und DBSTATUS_S_DEFAULT bereitzustellen.
IRowsetImpl::m_bCanFetchBack
Gibt an, ob ein Anbieter das Rückwärtsabrufen unterstützt.
Syntax
unsigned m_bCanFetchBack:1;
Hinweise
Mit der DBPROP_CANFETCHBACKWARDS
Eigenschaft in der DBPROPSET_ROWSET
Gruppe verknüpft. Der Anbieter muss unterstützung DBPROP_CANFETCHBACKWARDS
dafür m_bCanFetchBackwards
sein true
.
IRowsetImpl::m_bCanScrollBack
Gibt an, ob ein Anbieter den Cursor rückwärts scrollen kann.
Syntax
unsigned m_bCanScrollBack:1;
Hinweise
Mit der DBPROP_CANSCROLLBACKWARDS
Eigenschaft in der DBPROPSET_ROWSET
Gruppe verknüpft. Der Anbieter muss unterstützung DBPROP_CANSCROLLBACKWARDS
dafür m_bCanFetchBackwards
sein true
.
IRowsetImpl::m_bReset
Eine Bitkennzeichnung, die verwendet wird, um zu bestimmen, ob die Cursorposition für das Rowset definiert ist.
Syntax
unsigned m_bReset:1;
Hinweise
Wenn der Consumer GetNextRows mit einem negativen lOffset
oder cRows aufruft und m_bReset
wahr ist, GetNextRows
wird an das Ende des Rowsets verschoben. Wenn m_bReset
"false" lautet, erhält der Consumer einen Fehlercode in Übereinstimmung mit der OLE DB-Spezifikation. Das m_bReset
Flag wird festgelegt, true
wenn das Rowset zum ersten Mal erstellt wird und wenn der Consumer IRowsetImpl::RestartPosition aufruft. Er wird beim Anruf GetNextRows
auf false
"Festgelegt" festgelegt.
IRowsetImpl::m_iRowset
Ein Index für das Rowset, der den Cursor darstellt.
Syntax
DBROWOFFSET m_iRowset;
IRowsetImpl::m_rgRowHandles
Eine Zuordnung von Zeilenhandles, die derzeit vom Anbieter als Reaktion auf GetNextRows
.
Syntax
MapClass m_rgRowHandles;
Hinweise
Zeilenziehpunkte werden durch Aufrufen ReleaseRows
entfernt. In der IRowsetImpl-Übersicht finden Sie eine Übersicht über die Definition von MapClass.
Siehe auch
OLE DB-Anbietervorlagen
Architektur von OLE DB-Anbietervorlagen
CSimpleRow-Klasse