Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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;