Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poskytuje standardní implementaci sady řádků OLE DB bez nutnosti vícenásobné dědičnosti mnoha implementačních rozhraní.
Syntaxe
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
Třída uživatele, která je odvozena od CRowsetImpl.
Úložiště
Třída záznamu uživatele.
CreatorClass
Třída, která obsahuje vlastnosti sady řádků; obvykle příkaz.
ArrayType
Třída, která bude fungovat jako úložiště pro data sady řádků. Tento parametr má výchozí hodnotu CAtlArray, ale může to být libovolná třída, která podporuje požadované funkce.
Požadavky
Hlavička: atldb.h
Členové
Metody
| Název | Popis |
|---|---|
| NameFromDBID | Extrahuje řetězec z řetězce DBID a zkopíruje ho do řetězce bstr předaného. |
| SetCommandText | Ověří a uloží DBIDs do dvou řetězců (m_strCommandText a m_strIndexText). |
Přepisovatelné metody
| Název | Popis |
|---|---|
| GetColumnInfo | Načte informace o sloupci pro konkrétní požadavek klienta. |
| GetCommandFromID | Zkontroluje, jestli oba parametry obsahují řetězcové hodnoty, a pokud ano, zkopíruje řetězcové hodnoty do datových členů m_strCommandText a m_strIndexText. |
| ValidateCommandID | Zkontroluje, jestli některé nebo obě DBIDhodnoty obsahují řetězcové hodnoty, a pokud ano, zkopíruje je do svých datových členů m_strCommandText a m_strIndexText. |
Datové členy
| Název | Popis |
|---|---|
| m_rgRowData | Ve výchozím nastavení CAtlArray šablona šablony uživatele, která šablonuje argument šablony CRowsetImplpro . Jinou třídu typu pole lze použít změnou argumentu ArrayType šablony na CRowsetImpl. |
| m_strCommandText | Obsahuje počáteční příkaz sady řádků. |
| m_strIndexText | Obsahuje počáteční index sady řádků. |
Poznámky
CRowsetImpl poskytuje přepsání ve formě statických upcastů. Metody řídí způsob, jakým daná sada řádků ověří text příkazu. Vlastní třídu stylu můžete vytvořit CRowsetImpltak, že rozhraní implementace zdědí vícenásobně. Jedinou metodou, pro kterou je nutné zadat implementaci, je Execute. V závislosti na typu sady řádků, kterou vytváříte, budou metody tvůrce očekávat různé podpisy Execute. Pokud například k implementaci sady řádků schématu používáte odvozenou CRowsetImpltřídu, Execute bude mít metoda následující podpis:
HRESULT Execute(LONG* pcRows, ULONG cRestrictions, const VARIANT* rgRestrictions)
Pokud vytváříte -odvozenou CRowsetImpltřídu pro implementaci sady řádků příkazu nebo relace, Execute metoda bude mít následující podpis:
HRESULT Execute(LONG* pcRows, DBPARAMS* pParams)
Pokud chcete implementovat některou CRowsetImplz metod odvozených Execute od -, je nutné vyplnit interní vyrovnávací paměti dat (m_rgRowData).
CRowsetImpl::NameFromDBID
Extrahuje řetězec z řetězce DBID a zkopíruje ho do řetězce bstr předaného.
Syntaxe
HRESULT CRowsetBaseImpl::NameFromDBID(DBID* pDBID,
CComBSTR& bstr,
bool bIndex);
Parametry
pDBID
[v] Ukazatel na DBID řetězec, ze kterého chcete extrahovat řetězec.
bstr
[v] Odkaz CComBSTR pro umístění kopie DBID řetězce.
bIndex
[v] true pokud index DBID; false pokud tabulka DBID.
Návratová hodnota
Standardní HODNOTA HRESULT. V závislosti na tom, zda DBID je tabulka nebo index (označeno bIndex), metoda vrátí DB_E_NOINDEX nebo DB_E_NOTABLE.
Poznámky
Tato metoda je volána CRowsetImpl implementace ValidateCommandID a GetCommandFromID.
CRowsetImpl::SetCommandText
Ověří a uloží DBIDs do dvou řetězců (m_strCommandText a m_strIndexText).
Syntaxe
HRESULT CRowsetBaseImpl::SetCommandText(DBID* pTableID,
DBID* pIndexID);
Parametry
pTableID
[v] Ukazatel na reprezentaci DBID ID tabulky.
pIndexID
[v] Ukazatel na reprezentaci DBID ID indexu.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Metoda SetCommentText je volána CreateRowsetstatickou metodou šablony IOpenRowsetImpl.
Tato metoda deleguje svou práci voláním ValidateCommandID a GetCommandFromID prostřednictvím upcasted ukazatele.
CRowsetImpl::GetColumnInfo
Načte informace o sloupci pro konkrétní požadavek klienta.
Syntaxe
static ATLCOLUMNINFO* CRowsetBaseImpl::GetColumnInfo(T* pv,
ULONG* pcCols);
Parametry
Pv
[v] Ukazatel na odvozenou CRowsetImpl třídu uživatele.
pcCols
[v] Ukazatel (výstup) na počet vrácených sloupců.
Návratová hodnota
Ukazatel na statickou ATLCOLUMNINFO strukturu.
Poznámky
Tato metoda je rozšířená přepsání.
Tato metoda je volána několika základními třídami implementace k načtení informací o sloupci pro konkrétní požadavek klienta. Obvykle by tato metoda byla volána IColumnsInfoImpl. Pokud tuto metodu přepíšete, musíte do své -odvozené třídy umístit verzi metody CRowsetImpl. Vzhledem k tomu, že metoda může být umístěna v jiné než templatizované třídě, musíte změnit pv na odpovídající CRowsetImpl-odvozenou třídu.
Následující příklad ukazuje GetColumnInfo použití. V tomto příkladu CMyRowset je -odvozená CRowsetImpltřída. Chcete-li přepsat GetColumnInfo pro všechny instance této třídy, umístěte do definice třídy následující metodu CMyRowset :
static ATLCOLUMNINFO* GetColumnInfo(CCustomRowset* pRowset, DBORDINAL* pcCols)
{
// Add your implementation here and/or call the base class
return CRowsetImpl::GetColumnInfo(pRowset, pcCols);
}
CRowsetImpl::GetCommandFromID
Zkontroluje, jestli oba parametry obsahují řetězcové hodnoty, a pokud ano, zkopíruje řetězcové hodnoty do datových členů m_strCommandText a m_strIndexText.
Syntaxe
HRESULT CRowsetBaseImpl::GetCommandFromID(DBID* pTableID,
DBID* pIndexID);
Parametry
pTableID
[v] Ukazatel na reprezentaci DBID ID tabulky.
pIndexID
[v] Ukazatel na reprezentaci DBID ID indexu.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Tato metoda se volá prostřednictvím statického upcastu, CRowsetImpl který naplní datové členy m_strCommandText a m_strIndexText. Ve výchozím nastavení tato metoda kontroluje, jestli oba parametry obsahují řetězcové hodnoty. Pokud obsahují řetězcové hodnoty, tato metoda zkopíruje řetězcové hodnoty do datových členů. Umístěním metody s tímto podpisem do CRowsetImpl-odvozené třídy bude vaše metoda volána místo základní implementace.
CRowsetImpl::ValidateCommandID
Zkontroluje, jestli některé nebo obě DBIDhodnoty obsahují řetězcové hodnoty, a pokud ano, zkopíruje je do svých datových členů m_strCommandText a m_strIndexText.
Syntaxe
HRESULT CRowsetBaseImpl::ValidateCommandID(DBID* pTableID,
DBID* pIndexID);
Parametry
pTableID
[v] Ukazatel na reprezentaci DBID ID tabulky.
pIndexID
[v] Ukazatel na reprezentaci DBID ID indexu.
Návratová hodnota
Standardní HODNOTA HRESULT.
Poznámky
Tato metoda se volá prostřednictvím statického upcastu, který CRowsetImpl naplní své datové členy m_strCommandText a m_strIndexText. Ve výchozím nastavení tato metoda kontroluje, jestli buď nebo obě DBIDobsahují řetězcové hodnoty, a pokud ano, zkopíruje je do svých datových členů. Umístěním metody s tímto podpisem do CRowsetImpl-odvozené třídy bude vaše metoda volána místo základní implementace.
CRowsetImpl::m_rgRowData
Ve výchozím nastavení CAtlArray šablona šablony uživatele, která šablonuje argument šablony CRowsetImplpro .
Syntaxe
ArrayType CRowsetBaseImpl::m_rgRowData;
Poznámky
ArrayType je parametr šablony pro CRowsetImpl.
CRowsetImpl::m_strCommandText
Obsahuje počáteční příkaz sady řádků.
Syntaxe
CComBSTR CRowsetBaseImpl::m_strCommandText;
CRowsetImpl::m_strIndexText
Obsahuje počáteční index sady řádků.
Syntaxe
CComBSTR CRowsetBaseImpl::m_strIndexText;