Partager via


CRowsetImpl, classe

Fournit une implémentation d’ensemble de lignes OLE DB standard sans nécessiter l’héritage multiple de nombreuses interfaces d’implémentation.

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>

Paramètres

T
Classe de l’utilisateur qui dérive de CRowsetImpl.

Stockage
Classe d’enregistrement utilisateur.

CreatorClass
Classe qui contient des propriétés pour l’ensemble de lignes ; généralement la commande.

ArrayType
Classe qui servira de stockage pour les données de l’ensemble de lignes. Ce paramètre est défini par défaut CAtlArraysur , mais il peut s’agir de n’importe quelle classe qui prend en charge les fonctionnalités requises.

Spécifications

En-tête : atldb.h

Membres

Méthodes

Nom Description
NameFromDBID Extrait une chaîne d’une DBID chaîne et la copie dans la chaîne bstr passée.
SetCommandText Valide et stocke les DBIDs dans les deux chaînes (m_strCommandText et m_strIndexText).

Méthodes substituables

Nom Description
GetColumnInfo Récupère les informations de colonne pour une demande cliente particulière.
GetCommandFromID Vérifie si les deux paramètres contiennent des valeurs de chaîne et, le cas échéant, copient les valeurs de chaîne dans les membres de données m_strCommandText et m_strIndexText.
ValidateCommandID Vérifie si les deux ou les deux DBIDcontiennent des valeurs de chaîne et, le cas échéant, les copient dans ses membres de données m_strCommandText et m_strIndexText.

Données membres

Nom Description
m_rgRowData Par défaut, un CAtlArray modèle qui correspond à l’argument de modèle d’enregistrement utilisateur sur CRowsetImpl. Une autre classe de type de tableau peut être utilisée en modifiant l’argument ArrayType de modèle en CRowsetImpl.
m_strCommandText Contient la commande initiale de l’ensemble de lignes.
m_strIndexText Contient l’index initial de l’ensemble de lignes.

Notes

CRowsetImpl fournit des remplacements sous la forme de prédiffusions statiques. Les méthodes contrôlent la façon dont un ensemble de lignes donné valide le texte de la commande. Vous pouvez créer votre propre CRowsetImplclasse de style en rendant vos interfaces d’implémentation héritées multiples. La seule méthode pour laquelle vous devez fournir l’implémentation est Execute. Selon le type d’ensemble de lignes que vous créez, les méthodes de créateur s’attendent à des signatures différentes pour Execute. Par exemple, si vous utilisez une CRowsetImplclasse dérivée pour implémenter un ensemble de lignes de schéma, la Execute méthode aura la signature suivante :

HRESULT Execute(LONG* pcRows, ULONG cRestrictions, const VARIANT* rgRestrictions)

Si vous créez une classe dérivée pour implémenter l’ensemble CRowsetImplde lignes d’une commande ou d’une session, la Execute méthode aura la signature suivante :

HRESULT Execute(LONG* pcRows, DBPARAMS* pParams)

Pour implémenter l’une CRowsetImpldes méthodes dérivées Execute , vous devez remplir vos mémoires tampons de données internes (m_rgRowData).

CRowsetImpl::NameFromDBID

Extrait une chaîne d’une DBID chaîne et la copie dans la chaîne bstr passée.

Syntaxe

HRESULT CRowsetBaseImpl::NameFromDBID(DBID* pDBID,
   CComBSTR& bstr,
   bool bIndex);

Paramètres

pDBID
[in] Pointeur vers lequel DBID extraire une chaîne.

bstr
[in] Référence CComBSTR pour placer une copie de la DBID chaîne.

bIndex
[in] true si un index DBID; false si une table DBID.

Valeur de retour

HRESULT standard. Selon qu’il DBID s’agit d’une table ou d’un index (indiqué par bIndex), la méthode retourne DB_E_NOINDEX ou DB_E_NOTABLE.

Notes

Cette méthode est appelée par les CRowsetImpl implémentations de ValidateCommandID et GetCommandFromID.

CRowsetImpl::SetCommandText

Valide et stocke les DBIDs dans les deux chaînes (m_strCommandText et m_strIndexText).

Syntaxe

HRESULT CRowsetBaseImpl::SetCommandText(DBID* pTableID,
   DBID* pIndexID);

Paramètres

pTableID
[in] Pointeur vers l’ID de DBID table représentant.

pIndexID
[in] Pointeur vers l’ID DBID d’index représentant.

Valeur de retour

HRESULT standard.

Notes

La SetCommentText méthode est appelée par CreateRowset, une méthode templatée statique de IOpenRowsetImpl.

Cette méthode délègue son travail en appelant ValidateCommandID et GetCommandFromID via un pointeur upcasted.

CRowsetImpl::GetColumnInfo

Récupère les informations de colonne pour une demande cliente particulière.

Syntaxe

static ATLCOLUMNINFO* CRowsetBaseImpl::GetColumnInfo(T* pv,
   ULONG* pcCols);

Paramètres

Pv
[in] Pointeur vers la classe dérivée de CRowsetImpl l’utilisateur.

pcCols
[in] Pointeur (sortie) vers le nombre de colonnes retournées.

Valeur de retour

Pointeur vers une structure statique ATLCOLUMNINFO .

Notes

Cette méthode est un remplacement avancé.

Cette méthode est appelée par plusieurs classes d’implémentation de base pour récupérer des informations de colonne pour une demande cliente particulière. En règle générale, cette méthode serait appelée par IColumnsInfoImpl. Si vous remplacez cette méthode, vous devez placer une version de la méthode dans votre CRowsetImplclasse dérivée. Étant donné que la méthode peut être placée dans une classe non templatée, vous devez remplacer pv par la classe dérivée appropriée CRowsetImpl.

L’exemple suivant illustre GetColumnInfo l’utilisation. Dans cet exemple, CMyRowset est une CRowsetImplclasse dérivée de -. Pour remplacer GetColumnInfo toutes les instances de cette classe, placez la méthode suivante dans la définition de CMyRowset classe :

static ATLCOLUMNINFO* GetColumnInfo(CCustomRowset* pRowset, DBORDINAL* pcCols)
{
   // Add your implementation here and/or call the base class

   return CRowsetImpl::GetColumnInfo(pRowset, pcCols);
}

CRowsetImpl::GetCommandFromID

Vérifie si les deux paramètres contiennent des valeurs de chaîne et, le cas échéant, copient les valeurs de chaîne dans les membres de données m_strCommandText et m_strIndexText.

Syntaxe

HRESULT CRowsetBaseImpl::GetCommandFromID(DBID* pTableID,
   DBID* pIndexID);

Paramètres

pTableID
[in] Pointeur vers l’ID de DBID table représentant.

pIndexID
[in] Pointeur vers l’ID DBID d’index représentant.

Valeur de retour

HRESULT standard.

Notes

Cette méthode est appelée par le biais d’une mise en service CRowsetImpl statique pour remplir les membres de données m_strCommandText et m_strIndexText. Par défaut, cette méthode vérifie si les deux paramètres contiennent des valeurs de chaîne. Si elles contiennent des valeurs de chaîne, cette méthode copie les valeurs de chaîne aux membres de données. En plaçant une méthode avec cette signature dans votre CRowsetImplclasse dérivée, votre méthode est appelée au lieu de l’implémentation de base.

CRowsetImpl::ValidateCommandID

Vérifie si les deux ou les deux DBIDcontiennent des valeurs de chaîne et, le cas échéant, les copient dans ses membres de données m_strCommandText et m_strIndexText.

Syntaxe

HRESULT CRowsetBaseImpl::ValidateCommandID(DBID* pTableID,
   DBID* pIndexID);

Paramètres

pTableID
[in] Pointeur vers l’ID de DBID table représentant.

pIndexID
[in] Pointeur vers l’ID DBID d’index représentant.

Valeur de retour

HRESULT standard.

Notes

Cette méthode est appelée par le biais d’une mise en service CRowsetImpl statique pour remplir ses membres de données m_strCommandText et m_strIndexText. Par défaut, cette méthode vérifie si l’un ou l’autre DBIDcontient des valeurs de chaîne et, le cas échéant, les copie dans ses membres de données. En plaçant une méthode avec cette signature dans votre CRowsetImplclasse dérivée, votre méthode est appelée au lieu de l’implémentation de base.

CRowsetImpl::m_rgRowData

Par défaut, un CAtlArray modèle qui correspond à l’argument de modèle d’enregistrement utilisateur sur CRowsetImpl.

Syntaxe

ArrayType CRowsetBaseImpl::m_rgRowData;

Notes

ArrayType est un paramètre de modèle sur CRowsetImpl.

CRowsetImpl::m_strCommandText

Contient la commande initiale de l’ensemble de lignes.

Syntaxe

CComBSTR CRowsetBaseImpl::m_strCommandText;

CRowsetImpl::m_strIndexText

Contient l’index initial de l’ensemble de lignes.

Syntaxe

CComBSTR CRowsetBaseImpl::m_strIndexText;