Macros pour les modèles du fournisseur OLE DB
Les macros du fournisseur de modèles OLE DB offrent des fonctionnalités dans les catégories suivantes :
Macros de mappage des ensembles de propriétés
Nom | Description |
---|---|
BEGIN_PROPERTY_SET | Marque le début d’un jeu de propriétés. |
BEGIN_PROPERTY_SET_EX | Marque le début d’un jeu de propriétés. |
BEGIN_PROPSET_MAP | Marque le début d’un jeu de propriétés qui peut être masqué ou défini en dehors de l’étendue du fournisseur. |
CHAIN_PROPERTY_SET | Regroupe les groupes de propriétés. |
END_PROPERTY_SET | Marque la fin d’un jeu de propriétés. |
END_PROPSET_MAP | Marque la fin d’un mappage de jeu de propriétés. |
PROPERTY_INFO_ENTRY | Définit une propriété spécifique dans une propriété définie sur une valeur par défaut. |
PROPERTY_INFO_ENTRY_EX | Définit une propriété spécifique dans une propriété définie sur une valeur fournie par vous. Vous permet également de définir des indicateurs et des options. |
PROPERTY_INFO_ENTRY_VALUE | Définit une propriété spécifique dans une propriété définie sur une valeur fournie par vous. |
Macros de carte de colonnes
Nom | Description |
---|---|
BEGIN_PROVIDER_COLUMN_MAP | Marque le début des entrées de mappage de colonnes du fournisseur. |
END_PROVIDER_COLUMN_MAP | Marque la fin des entrées de mappage de colonnes du fournisseur. |
PROVIDER_COLUMN_ENTRY | Représente une colonne spécifique prise en charge par le fournisseur. |
PROVIDER_COLUMN_ENTRY_FIXED | Représente une colonne spécifique prise en charge par le fournisseur. Vous pouvez spécifier le type de données de colonne. |
PROVIDER_COLUMN_ENTRY_GN | Représente une colonne spécifique prise en charge par le fournisseur. Vous pouvez spécifier la taille, le type de données, la précision, l’échelle et le GUID d’ensemble de lignes de schéma de la colonne. |
PROVIDER_COLUMN_ENTRY_LENGTH | Représente une colonne spécifique prise en charge par le fournisseur. Vous pouvez spécifier la taille de colonne. |
PROVIDER_COLUMN_ENTRY_STR | Représente une colonne spécifique prise en charge par le fournisseur. Il suppose que le type de colonne est une chaîne. |
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH | Représente une colonne spécifique prise en charge par le fournisseur. Comme PROVIDER_COLUMN_ENTRY_LENGTH, mais vous permet également de spécifier le type de données de la colonne ainsi que la taille. |
PROVIDER_COLUMN_ENTRY_WSTR | Représente une colonne spécifique prise en charge par le fournisseur. Il part du principe que le type de colonne est une chaîne de caractères Unicode. |
Macros d’ensemble de lignes de schéma
Nom | Description |
---|---|
BEGIN_SCHEMA_MAP | Marque le début d’une carte de schéma. |
END_SCHEMA_MAP | Marque la fin d’une carte de schéma. |
SCHEMA_ENTRY | Associe un GUID à une classe. |
Spécifications
En-tête : atldb.h
BEGIN_PROPERTY_SET
Marque le début d’un jeu de propriétés dans un mappage de jeu de propriétés.
Syntaxe
BEGIN_PROPERTY_SET(guid)
Paramètres
guid
[in] GUID de propriété.
Exemple
Voir BEGIN_PROPSET_MAP.
BEGIN_PROPERTY_SET_EX
Marque le début d’un jeu de propriétés dans un mappage de jeu de propriétés.
Syntaxe
BEGIN_PROPERTY_SET_EX(guid, flags)
Paramètres
guid
[in] GUID de propriété.
flags
[in] UPROPSET_HIDDEN pour les ensembles de propriétés que vous ne souhaitez pas exposer, ni UPROPSET_PASSTHROUGH pour un fournisseur exposant des propriétés définies en dehors de l’étendue du fournisseur.
Exemple
Voir BEGIN_PROPSET_MAP.
BEGIN_PROPSET_MAP
Marque le début des entrées de mappage du jeu de propriétés.
Syntaxe
BEGIN_PROPSET_MAP(Class)
Paramètres
Classe
[in] Classe dans laquelle ce jeu de propriétés est spécifié. Un jeu de propriétés peut être spécifié dans les objets OLE DB suivants :
Exemple
Voici un exemple de mappage de jeu de propriétés :
BEGIN_PROPSET_MAP(CCustomSource)
BEGIN_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
PROPERTY_INFO_ENTRY(ACTIVESESSIONS)
PROPERTY_INFO_ENTRY(DATASOURCEREADONLY)
PROPERTY_INFO_ENTRY(BYREFACCESSORS)
PROPERTY_INFO_ENTRY(OUTPUTPARAMETERAVAILABILITY)
PROPERTY_INFO_ENTRY(PROVIDEROLEDBVER)
PROPERTY_INFO_ENTRY(DSOTHREADMODEL)
PROPERTY_INFO_ENTRY(SUPPORTEDTXNISOLEVELS)
PROPERTY_INFO_ENTRY(USERNAME)
END_PROPERTY_SET(DBPROPSET_DATASOURCEINFO)
BEGIN_PROPERTY_SET(DBPROPSET_DBINIT)
PROPERTY_INFO_ENTRY(AUTH_PASSWORD)
PROPERTY_INFO_ENTRY(AUTH_PERSIST_SENSITIVE_AUTHINFO)
PROPERTY_INFO_ENTRY(AUTH_USERID)
PROPERTY_INFO_ENTRY(INIT_DATASOURCE)
PROPERTY_INFO_ENTRY(INIT_HWND)
PROPERTY_INFO_ENTRY(INIT_LCID)
PROPERTY_INFO_ENTRY(INIT_LOCATION)
PROPERTY_INFO_ENTRY(INIT_MODE)
PROPERTY_INFO_ENTRY(INIT_PROMPT)
PROPERTY_INFO_ENTRY(INIT_PROVIDERSTRING)
PROPERTY_INFO_ENTRY(INIT_TIMEOUT)
END_PROPERTY_SET(DBPROPSET_DBINIT)
CHAIN_PROPERTY_SET(CCustomSession)
CHAIN_PROPERTY_SET(CCustomCommand)
END_PROPSET_MAP()
CHAIN_PROPERTY_SET
Cette macro regroupe des groupes de propriétés.
Syntaxe
CHAIN_PROPERTY_SET(ChainClass)
Paramètres
ChainClass
[in] Nom de la classe pour laquelle chaîner les propriétés. Il s’agit d’une classe générée par l’Assistant Projet ATL qui contient déjà une carte (par exemple, une session, une commande ou une classe d’objet source de données).
Notes
Vous pouvez chaîner un jeu de propriétés d’une autre classe à votre propre classe, puis accéder aux propriétés directement à partir de votre classe.
Attention
Utilisez cette macro de manière éparse. Une utilisation incorrecte peut entraîner l’échec des tests de conformité OLE DB par un consommateur.
END_PROPERTY_SET
Marque la fin d’un jeu de propriétés.
Syntaxe
END_PROPERTY_SET(guid)
Paramètres
guid
[in] GUID de propriété.
Exemple
Voir BEGIN_PROPSET_MAP.
END_PROPSET_MAP
Marque la fin des entrées de mappage du jeu de propriétés.
Syntaxe
END_PROPSET_MAP()
Exemple
Voir BEGIN_PROPSET_MAP.
PROPERTY_INFO_ENTRY
Représente une propriété spécifique dans un jeu de propriétés.
Syntaxe
PROPERTY_INFO_ENTRY(dwPropID)
Paramètres
dwPropID
[in] Valeur DBPROPID qui peut être utilisée en combinaison avec le GUID du jeu de propriétés pour identifier une propriété.
Notes
Cette macro attribue à la propriété de type DWORD
une valeur par défaut définie dans ATLDB.H. Pour attribuer à la propriété une valeur de votre choix, utilisez PROPERTY_INFO_ENTRY_VALUE. Pour définir la VARTYPE
propriété et DBPROPFLAGS en même temps, utilisez PROPERTY_INFO_ENTRY_EX.
Exemple
Voir BEGIN_PROPSET_MAP.
PROPERTY_INFO_ENTRY_EX
Représente une propriété spécifique dans un jeu de propriétés.
Syntaxe
PROPERTY_INFO_ENTRY_EX(dwPropID, vt, dwFlags, value, options)
Paramètres
dwPropID
[in] Valeur DBPROPID qui peut être utilisée en combinaison avec le GUID du jeu de propriétés pour identifier une propriété.
vt
[in] VARTYPE
de cette entrée de propriété. (Défini dans wtypes.h)
dwFlags
[in] Valeur DBPROPFLAGS décrivant cette entrée de propriété.
value
[in] Valeur de propriété de type DWORD
.
options
DBPROPOPTIONS_REQUIRED ou DBPROPOPTIONS_SETIFCHEAP. Normalement, un fournisseur n’a pas besoin de définir des options , car il est défini par le consommateur.
Notes
Avec cette macro, vous pouvez spécifier directement la valeur de propriété de type DWORD
, ainsi que les options et les indicateurs. Pour affecter simplement à une propriété une valeur par défaut définie dans ATLDB.H, utilisez PROPERTY_INFO_ENTRY. Pour affecter à une propriété une valeur de votre choix, sans définir aucune option ou indicateur, utilisez PROPERTY_INFO_ENTRY_VALUE.
Exemple
Voir BEGIN_PROPSET_MAP.
PROPERTY_INFO_ENTRY_VALUE
Représente une propriété spécifique dans un jeu de propriétés.
Syntaxe
PROPERTY_INFO_ENTRY_VALUE(dwPropID, value)
Paramètres
dwPropID
[in] Valeur DBPROPID qui peut être utilisée en combinaison avec le GUID du jeu de propriétés pour identifier une propriété.
value
[in] Valeur de propriété de type DWORD
.
Notes
Avec cette macro, vous pouvez spécifier directement la valeur de propriété de type DWORD
. Pour définir la propriété sur la valeur par défaut définie dans ATLDB. H, utilisez PROPERTY_INFO_ENTRY. Pour définir la valeur, les indicateurs et les options de la propriété, utilisez PROPERTY_INFO_ENTRY_EX.
Exemple
Voir BEGIN_PROPSET_MAP.
BEGIN_PROVIDER_COLUMN_MAP
Marque le début des entrées de mappage de colonnes du fournisseur.
Syntaxe
BEGIN_PROVIDER_COLUMN_MAP(theClass)
Paramètres
theClass
[in] Nom de la classe à laquelle appartient cette carte.
Exemple
Voici un exemple de mappage de colonnes de fournisseur :
BEGIN_PROVIDER_COLUMN_MAP(CCustomWindowsFile)
PROVIDER_COLUMN_ENTRY("FileAttributes", 1, dwFileAttributes)
PROVIDER_COLUMN_ENTRY("FileSizeHigh", 2, nFileSizeHigh)
PROVIDER_COLUMN_ENTRY("FileSizeLow", 3, nFileSizeLow)
PROVIDER_COLUMN_ENTRY_STR("FileName", 4, cFileName)
PROVIDER_COLUMN_ENTRY_STR("AltFileName", 5, cAlternateFileName)
END_PROVIDER_COLUMN_MAP()
END_PROVIDER_COLUMN_MAP
Marque la fin des entrées de mappage de colonnes du fournisseur.
Syntaxe
END_PROVIDER_COLUMN_MAP()
Exemple
Voir BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY
Représente une colonne spécifique prise en charge par le fournisseur.
Syntaxe
PROVIDER_COLUMN_ENTRY (name, ordinal, member)
Paramètres
nom
[in] Nom de la colonne.
ordinal
[in] Numéro de colonne. Sauf si la colonne est une colonne Signet, le numéro de colonne ne doit pas être 0.
member
[in] Variable dataClass
membre correspondant à la colonne.
PROVIDER_COLUMN_ENTRY_FIXED
Représente une colonne spécifique prise en charge par le fournisseur.
Syntaxe
PROVIDER_COLUMN_ENTRY_FIXED(name, ordinal, dbtype, member)
Paramètres
nom
[in] Nom de la colonne.
ordinal
[in] Numéro de colonne. Sauf si la colonne est une colonne Signet, le numéro de colonne ne doit pas être 0.
dbtype
[in] Type de données dans DBTYPE.
member
[in] Variable membre dans dataClass
laquelle les données sont stockées.
Notes
Vous permet de spécifier le type de données de colonne.
Exemple
Voir BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY_GN
Représente une colonne spécifique prise en charge par le fournisseur.
Syntaxe
PROVIDER_COLUMN_ENTRY_GN (name, ordinal, flags, colSize, dbtype, precision, scale, guid)
Paramètres
nom
[in] Nom de la colonne.
ordinal
[in] Numéro de colonne. Sauf si la colonne est une colonne Signet, le numéro de colonne ne doit pas être 0.
flags
[in] Spécifie la façon dont les données sont retournées. Consultez la dwFlags
description des structures DBBINDING.
colSize
[in] Taille de colonne.
dbtype
[in] Indique le type de données de la valeur. Consultez la wType
description des structures DBBINDING.
precision
[in] Indique la précision à utiliser lors de l’obtention de données si dbType est DBTYPE_NUMERIC ou DBTYPE_DECIMAL. Consultez la bPrecision
description des structures DBBINDING.
scale
[in] Indique la mise à l’échelle à utiliser lors de l’obtention de données si dbType est DBTYPE_NUMERIC ou DBTYPE_DECIMAL. Consultez la bScale
description des structures DBBINDING.
guid
GUID d’ensemble de lignes de schéma. Consultez IDBSchemaRowset dans la référence du programmeur OLE DB pour obtenir la liste des ensembles de lignes de schéma et leurs GUID.
Notes
Vous permet de spécifier la taille, le type de données, la précision, l’échelle et le GUID d’ensemble de lignes de schéma de la colonne.
PROVIDER_COLUMN_ENTRY_LENGTH
Représente une colonne spécifique prise en charge par le fournisseur.
Syntaxe
PROVIDER_COLUMN_ENTRY_LENGTH(name, ordinal, size, member)
Paramètres
nom
[in] Nom de la colonne.
ordinal
[in] Numéro de colonne. Sauf si la colonne est une colonne Signet, le numéro de colonne ne doit pas être 0.
size
[in] Taille de colonne en octets.
member
[in] Variable membre dans dataClass
laquelle les données de colonne sont stockées.
Notes
Vous permet de spécifier la taille de colonne.
Exemple
Voir BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY_STR
Représente une colonne spécifique prise en charge par le fournisseur.
Syntaxe
PROVIDER_COLUMN_ENTRY_STR(name, ordinal, member)
Paramètres
nom
[in] Nom de la colonne.
ordinal
[in] Numéro de colonne. Sauf si la colonne est une colonne Signet, le numéro de colonne ne doit pas être 0.
member
[in] Variable membre dans la classe de données qui stocke les données.
Notes
Utilisez cette macro lorsque les données de colonne sont supposées être DBTYPE_STR.
Exemple
Voir BEGIN_PROVIDER_COLUMN_MAP.
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH
Représente une colonne spécifique prise en charge par le fournisseur.
Syntaxe
PROVIDER_COLUMN_ENTRY_TYPE_LENGTH(name, ordinal, dbtype, size, member)
Paramètres
nom
[in] Nom de la colonne.
ordinal
[in] Numéro de colonne. Sauf si la colonne est une colonne Signet, le numéro de colonne ne doit pas être 0.
dbtype
[in] Type de données dans DBTYPE.
size
[in] Taille de colonne en octets.
member
[in] Variable membre dans la classe de données qui stocke les données.
Notes
Similaire à PROVIDER_COLUMN_ENTRY_LENGTH , mais vous permet également de spécifier le type de données de la colonne ainsi que la taille.
PROVIDER_COLUMN_ENTRY_WSTR
Représente une colonne spécifique prise en charge par le fournisseur.
Syntaxe
PROVIDER_COLUMN_ENTRY_WSTR(name, ordinal, member)
Paramètres
nom
[in] Nom de la colonne.
ordinal
[in] Numéro de colonne. Sauf si la colonne est une colonne Signet, le numéro de colonne ne doit pas être 0.
member
[in] Variable membre dans la classe de données qui stocke les données.
Notes
Utilisez cette macro lorsque les données de colonne sont une chaîne de caractères Unicode terminée par null, DBTYPE_WSTR.
BEGIN_SCHEMA_MAP
Indique le début d’une carte de schéma.
Syntaxe
BEGIN_SCHEMA_MAP(SchemaClass);
Paramètres
SchemaClass
Classe qui contient map. En règle générale, il s’agit de la classe de session.
Notes
Pour plus d’informations sur les ensembles de lignes de schéma, consultez IDBSchemaRowset dans le Kit de développement logiciel (SDK) Windows.
END_SCHEMA_MAP
Indique la fin de la carte de schéma.
Syntaxe
END_SCHEMA_MAP()
Notes
Pour plus d’informations, consultez IDBSchemaRowsetImpl, classe.
SCHEMA_ENTRY
Associe un GUID à une classe.
Syntaxe
SCHEMA_ENTRY(guid,
rowsetClass);
Paramètres
guid
GUID d’ensemble de lignes de schéma. Consultez IDBSchemaRowset dans la référence du programmeur OLE DB pour obtenir la liste des ensembles de lignes de schéma et leurs GUID.
rowsetClass
Classe qui sera créée pour représenter l’ensemble de lignes de schéma.
Notes
IDBSchemaRowsetImpl peut ensuite interroger la carte pour obtenir une liste de GUID, ou créer un ensemble de lignes s’il reçoit un GUID. L’ensemble IDBSchemaRowsetImpl
de lignes de schéma créé est similaire à une CRowsetImpl
classe dérivée standard, sauf qu’il doit fournir une Execute
méthode qui a la signature suivante :
HRESULT Execute (LONG* pcRowsAffected,
ULONG cRestrictions,
const VARIANT* rgRestrictions);
Cette Execute
fonction remplit les données de l’ensemble de lignes. L’Assistant Projet ATL crée, comme décrit dans IDBSchemaRowset dans la référence du programmeur OLE DB, trois ensembles de lignes de schéma initial dans le projet pour chacun des trois schémas OLE DB obligatoires :
DBSCHEMA_TABLES
DBSCHEMA_COLUMNS
DBSCHEMA_PROVIDER_TYPES
L’Assistant ajoute également trois entrées correspondantes dans le mappage de schéma. Pour plus d’informations sur l’utilisation de l’Assistant pour créer un fournisseur, consultez Création d’un fournisseur OLE DB.
Voir aussi
Modèles du fournisseur OLE DB
Architecture des modèles du fournisseur OLE DB
Création d’un fournisseur OLE DB
Référence des modèles du fournisseur OLE DB
Macros pour les modèles du fournisseur OLE DB