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 CAtlArray
sur , 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 DBID s 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 DBID contiennent 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 CRowsetImpl
classe 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 CRowsetImpl
classe 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 CRowsetImpl
de 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 CRowsetImpl
des 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 DBID
s 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 CRowsetImpl
classe 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 CRowsetImpl
classe 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 CRowsetImpl
classe 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 DBID
contiennent 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 DBID
contient 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 CRowsetImpl
classe 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;