CRowsetImpl — Klasa
Zapewnia standardową implementację zestawu wierszy OLE DB bez konieczności dziedziczenia wielu interfejsów implementacji.
Składnia
template <
class T,
class Storage,
class CreatorClass,
class ArrayType = CAtlArray<Storage>,
class RowClass = CSimpleRow,
class RowsetInterface = IRowsetImpl <T, IRowset>
>
class CRowsetImpl :
public CComObjectRootEx<CreatorClass::_ThreadModel>,
public CRowsetBaseImpl<T, Storage, ArrayType, RowsetInterface>,
public IRowsetInfoImpl<T, CreatorClass::_PropClass>
Parametry
T
Klasa użytkownika, która pochodzi z klasy CRowsetImpl
.
Storage
Klasa rekordu użytkownika.
CreatorClass
Klasa zawierająca właściwości zestawu wierszy; zazwyczaj polecenie.
ArrayType
Klasa, która będzie działać jako magazyn danych zestawu wierszy. Ten parametr domyślnie ma CAtlArray
wartość , ale może to być dowolna klasa, która obsługuje wymagane funkcje.
Wymagania
Nagłówek: atldb.h
Elementy członkowskie
Metody
Nazwa/nazwisko | opis |
---|---|
NameFromDBID | Wyodrębnia ciąg z obiektu DBID i kopiuje go do przekazanego ciągu . |
SetCommandText | Weryfikuje i przechowuje s DBID w dwóch ciągach (m_strCommandText i m_strIndexText). |
Metody, które można zastąpić
Nazwa/nazwisko | opis |
---|---|
GetColumnInfo | Pobiera informacje o kolumnie dla określonego żądania klienta. |
GetCommandFromID | Sprawdza, czy oba parametry zawierają wartości ciągów, a jeśli tak, kopiuje wartości ciągu do elementów członkowskich danych m_strCommandText i m_strIndexText. |
ValidateCommandID | Sprawdza, czy element albo oba DBID zawierają wartości ciągów, a jeśli tak, kopiuje je do elementów członkowskich danych m_strCommandText i m_strIndexText. |
Składowe danych
Nazwa/nazwisko | opis |
---|---|
m_rgRowData | Domyślnie element CAtlArray templatizuje argument szablonu rekordu użytkownika na .CRowsetImpl Inną klasą typu tablicy można użyć przez zmianę argumentu szablonu ArrayType na CRowsetImpl . |
m_strCommandText | Zawiera początkowe polecenie zestawu wierszy. |
m_strIndexText | Zawiera początkowy indeks zestawu wierszy. |
Uwagi
CRowsetImpl
Udostępnia przesłonięcia w postaci statycznych emisji upcasts. Metody kontrolują sposób, w jaki dany zestaw wierszy zweryfikuje tekst polecenia. Możesz utworzyć własną CRowsetImpl
klasę stylu, tworząc interfejsy implementacji dziedziczone wiele. Jedyną metodą, dla której należy podać implementację, jest Execute
. W zależności od typu tworzonego zestawu wierszy metody twórcy będą oczekiwać różnych podpisów dla elementu Execute
. Jeśli na przykład używasz klasy -pochodnej CRowsetImpl
do zaimplementowania zestawu wierszy schematu, Execute
metoda będzie mieć następujący podpis:
HRESULT Execute(LONG* pcRows, ULONG cRestrictions, const VARIANT* rgRestrictions)
Jeśli tworzysz klasę pochodną CRowsetImpl
w celu zaimplementowania zestawu wierszy polecenia lub sesji, Execute
metoda będzie mieć następujący podpis:
HRESULT Execute(LONG* pcRows, DBPARAMS* pParams)
Aby zaimplementować dowolną CRowsetImpl
z metod pochodnych Execute
, należy wypełnić wewnętrzne danych (m_rgRowData).
CRowsetImpl::NameFromDBID
Wyodrębnia ciąg z obiektu DBID
i kopiuje go do przekazanego ciągu .
Składnia
HRESULT CRowsetBaseImpl::NameFromDBID(DBID* pDBID,
CComBSTR& bstr,
bool bIndex);
Parametry
PDBID
[in] Wskaźnik, DBID
z którego ma być wyodrębnione ciąg.
bstr
[in] Odwołanie CComBSTR do umieszczenia kopii DBID
ciągu.
bIndex
[in] true
if an index DBID
; false
if a table DBID
.
Wartość zwracana
Standardowy HRESULT. W zależności od tego, czy DBID
jest to tabela, czy indeks (oznaczony przez bIndex), metoda zwróci DB_E_NOINDEX lub DB_E_NOTABLE.
Uwagi
Ta metoda jest wywoływana przez CRowsetImpl
implementacje ValidateCommandID i GetCommandFromID.
CRowsetImpl::SetCommandText
Weryfikuje i przechowuje s DBID
w dwóch ciągach (m_strCommandText i m_strIndexText).
Składnia
HRESULT CRowsetBaseImpl::SetCommandText(DBID* pTableID,
DBID* pIndexID);
Parametry
pTableID
[in] Wskaźnik DBID
reprezentujący identyfikator tabeli.
pIndexID
[in] Wskaźnik DBID
reprezentujący identyfikator indeksu.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Metoda SetCommentText
jest wywoływana przez CreateRowset
metodę , statyczną metodę templatized klasy IOpenRowsetImpl
.
Ta metoda deleguje swoją pracę, wywołując polecenie ValidateCommandID i GetCommandFromID za pomocą upcasted wskaźnika.
CRowsetImpl::GetColumnInfo
Pobiera informacje o kolumnie dla określonego żądania klienta.
Składnia
static ATLCOLUMNINFO* CRowsetBaseImpl::GetColumnInfo(T* pv,
ULONG* pcCols);
Parametry
Pv
[in] Wskaźnik do klasy pochodnej CRowsetImpl
użytkownika.
pcCols
[in] Wskaźnik (dane wyjściowe) do liczby zwracanych kolumn.
Wartość zwracana
Wskaźnik do struktury statycznej ATLCOLUMNINFO
.
Uwagi
Ta metoda jest zaawansowanym przesłonięciem.
Ta metoda jest wywoływana przez kilka klas implementacji podstawowej w celu pobrania informacji o kolumnie dla określonego żądania klienta. Zazwyczaj ta metoda jest wywoływana przez IColumnsInfoImpl
metodę . Jeśli zastąpisz tę metodę, musisz umieścić wersję metody w CRowsetImpl
klasie -pochodnej. Ponieważ metoda może zostać umieszczona w klasie innej niż templatized, należy zmienić wartość pv na odpowiednią CRowsetImpl
klasę pochodną.
W poniższym przykładzie pokazano GetColumnInfo
użycie. W tym przykładzie CMyRowset
jest klasą pochodną CRowsetImpl
. Aby zastąpić GetColumnInfo
wszystkie wystąpienia tej klasy, umieść następującą CMyRowset
metodę w definicji klasy:
static ATLCOLUMNINFO* GetColumnInfo(CCustomRowset* pRowset, DBORDINAL* pcCols)
{
// Add your implementation here and/or call the base class
return CRowsetImpl::GetColumnInfo(pRowset, pcCols);
}
CRowsetImpl::GetCommandFromID
Sprawdza, czy oba parametry zawierają wartości ciągów, a jeśli tak, kopiuje wartości ciągu do elementów członkowskich danych m_strCommandText i m_strIndexText.
Składnia
HRESULT CRowsetBaseImpl::GetCommandFromID(DBID* pTableID,
DBID* pIndexID);
Parametry
pTableID
[in] Wskaźnik DBID
reprezentujący identyfikator tabeli.
pIndexID
[in] Wskaźnik DBID
reprezentujący identyfikator indeksu.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda jest wywoływana za pośrednictwem statycznej emisji upcast CRowsetImpl
, aby wypełnić elementy członkowskie danych m_strCommandText i m_strIndexText. Domyślnie ta metoda sprawdza, czy oba parametry zawierają wartości ciągów. Jeśli zawierają one wartości ciągów, ta metoda kopiuje wartości ciągu do elementów członkowskich danych. Umieszczając metodę z tym podpisem w CRowsetImpl
klasie -pochodnej, metoda zostanie wywołana zamiast implementacji podstawowej.
CRowsetImpl::ValidateCommandID
Sprawdza, czy element albo oba DBID
zawierają wartości ciągów, a jeśli tak, kopiuje je do elementów członkowskich danych m_strCommandText i m_strIndexText.
Składnia
HRESULT CRowsetBaseImpl::ValidateCommandID(DBID* pTableID,
DBID* pIndexID);
Parametry
pTableID
[in] Wskaźnik DBID
reprezentujący identyfikator tabeli.
pIndexID
[in] Wskaźnik DBID
reprezentujący identyfikator indeksu.
Wartość zwracana
Standardowy HRESULT.
Uwagi
Ta metoda jest wywoływana przez statyczną emisję upcast, CRowsetImpl
aby wypełnić jego składowe danych m_strCommandText i m_strIndexText. Domyślnie ta metoda sprawdza, czy element albo oba DBID
zawierają wartości ciągów, a jeśli tak, kopiuje je do elementów członkowskich danych. Umieszczając metodę z tym podpisem w CRowsetImpl
klasie -pochodnej, metoda zostanie wywołana zamiast implementacji podstawowej.
CRowsetImpl::m_rgRowData
Domyślnie element CAtlArray
templatizuje argument szablonu rekordu użytkownika na .CRowsetImpl
Składnia
ArrayType CRowsetBaseImpl::m_rgRowData;
Uwagi
ArrayType to parametr szablonu do CRowsetImpl
.
CRowsetImpl::m_strCommandText
Zawiera początkowe polecenie zestawu wierszy.
Składnia
CComBSTR CRowsetBaseImpl::m_strCommandText;
CRowsetImpl::m_strIndexText
Zawiera początkowy indeks zestawu wierszy.
Składnia
CComBSTR CRowsetBaseImpl::m_strIndexText;