Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 CAtlArraywartość , 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 DBIDw 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 DBIDzawierają 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ą CRowsetImplklasę 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 CRowsetImpldo 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ą CRowsetImplw 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ą CRowsetImplz 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 DBIDw 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 CreateRowsetmetodę , 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 IColumnsInfoImplmetodę . Jeśli zastąpisz tę metodę, musisz umieścić wersję metody w CRowsetImplklasie -pochodnej. Ponieważ metoda może zostać umieszczona w klasie innej niż templatized, należy zmienić wartość pv na odpowiednią CRowsetImplklasę 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 CRowsetImplklasie -pochodnej, metoda zostanie wywołana zamiast implementacji podstawowej.
CRowsetImpl::ValidateCommandID
Sprawdza, czy element albo oba DBIDzawierają 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 DBIDzawierają wartości ciągów, a jeśli tak, kopiuje je do elementów członkowskich danych. Umieszczając metodę z tym podpisem w CRowsetImplklasie -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;