Macros et fonctions globales pour les modèles du consommateur OLE DB
Les modèles de consommateur OLE DB incluent les macros et les fonctions globales suivantes :
Fonctions globales
Nom | Description |
---|---|
AtlTraceErrorRecords | Vide les informations d’enregistrement d’erreur OLE DB sur l’appareil de vidage si une erreur est retournée. |
Macros de carte d’accesseur
Nom | Description |
---|---|
BEGIN_ACCESSOR | Marque le début d’une entrée d’accesseur. |
BEGIN_ACCESSOR_MAP | Marque le début des entrées de mappage d’accesseur. |
END_ACCESSOR | Marque la fin d’une entrée d’accesseur. |
END_ACCESSOR_MAP | Marque la fin des entrées de mappage d’accesseur. |
Macros de carte de colonnes
Nom | Description |
---|---|
BEGIN_COLUMN_MAP | Marque le début des entrées de mappage de colonnes dans la classe d’enregistrement utilisateur. |
BLOB_ENTRY | Utilisé pour lier un objet blob (Binary Large Object). |
BLOB_ENTRY_LENGTH | Signale la longueur de la colonne de données BLOB. |
BLOB_ENTRY_LENGTH_STATUS | Signale la longueur et l’état de la colonne de données BLOB. |
BLOB_ENTRY_STATUS | Signale l’état de la colonne de données BLOB. |
BLOB_NAME | Utilisé pour lier un objet volumineux binaire par nom de colonne. |
BLOB_NAME_LENGTH | Signale la longueur de la colonne de données BLOB. |
BLOB_NAME_LENGTH_STATUS | Signale la longueur et l’état de la colonne de données BLOB. |
BLOB_NAME_STATUS | Signale l’état de la colonne de données BLOB. |
BOOKMARK_ENTRY | Représente une entrée de signet dans l’ensemble de lignes. Une entrée de signet est un type spécial d’entrée de colonne. |
COLUMN_ENTRY | Représente une liaison à une colonne spécifique dans la base de données. |
COLUMN_ENTRY_EX | Représente une liaison à la colonne spécifique de la base de données. Prend en charge les paramètres de type, de longueur, de précision, d’échelle et d’état . |
COLUMN_ENTRY_LENGTH | Représente une liaison à la colonne spécifique de la base de données. Prend en charge la variable de longueur . |
COLUMN_ENTRY_LENGTH_STATUS | Représente une liaison à la colonne spécifique de la base de données. Prend en charge les paramètres d’état et de longueur . |
COLUMN_ENTRY_PS | Représente une liaison à la colonne spécifique de la base de données. Prend en charge les paramètres de précision et d’échelle . |
COLUMN_ENTRY_PS_LENGTH | Représente une liaison à la colonne spécifique de la base de données. Prend en charge les paramètres de longueur, de précision et d’échelle. |
COLUMN_ENTRY_PS_LENGTH_STATUS | Représente une liaison à la colonne spécifique de la base de données. Prend en charge les variables d’état et de longueur , les paramètres de précision et d’échelle . |
COLUMN_ENTRY_PS_STATUS | Représente une liaison à la colonne spécifique de la base de données. Prend en charge les paramètres de variable d’état, de précision et d’échelle. |
COLUMN_ENTRY_STATUS | Représente une liaison à la colonne spécifique de la base de données. Prend en charge la variable d’état. |
COLUMN_ENTRY_TYPE | Représente une liaison à une colonne spécifique dans la base de données. Prend en charge le paramètre de type . |
COLUMN_ENTRY_TYPE_SIZE | Représente une liaison à la colonne spécifique de la base de données. Prend en charge les paramètres de type et de taille . |
COLUMN_NAME | Représente une liaison à une colonne spécifique dans la base de données par nom. |
COLUMN_NAME_EX | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification du type de données, de la taille, de la précision, de l’échelle, de la longueur des colonnes et de l’état des colonnes. |
COLUMN_NAME_LENGTH | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification de la longueur de colonne. |
COLUMN_NAME_LENGTH_STATUS | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification de la longueur et de l’état des colonnes. |
COLUMN_NAME_PS | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification de la précision et de l’échelle. |
COLUMN_NAME_PS_LENGTH | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification de la précision, de l’échelle et de la longueur des colonnes. |
COLUMN_NAME_PS_LENGTH_STATUS | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification de précision, d’échelle, de longueur de colonne et d’état de colonne. |
COLUMN_NAME_PS_STATUS | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification de la précision, de l’échelle et de l’état des colonnes. |
COLUMN_NAME_STATUS | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification de l’état de colonne. |
COLUMN_NAME_TYPE | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification du type de données. |
COLUMN_NAME_TYPE_PS | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification du type de données, de la précision et de l’échelle. |
COLUMN_NAME_TYPE_SIZE | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification du type de données et de la taille. |
COLUMN_NAME_TYPE_STATUS | Représente une liaison à une colonne spécifique dans la base de données par nom. Prend en charge la spécification du type de données et de l’état des colonnes. |
END_COLUMN_MAP | Marque la fin des entrées du mappage de colonnes. |
Macros de commande
Nom | Description |
---|---|
DEFINE_COMMAND | Spécifie la commande qui sera utilisée pour créer l’ensemble de lignes lors de l’utilisation de la classe CCommand . Accepte uniquement les types de chaîne correspondant au type d’application spécifié (ANSI ou Unicode). Il est recommandé d’utiliser DEFINE_COMMAND_EX au lieu de DEFINE_COMMAND. |
DEFINE_COMMAND_EX | Spécifie la commande qui sera utilisée pour créer l’ensemble de lignes lors de l’utilisation de la classe CCommand . Prend en charge les applications ANSI et Unicode. |
Macros de mappage de paramètres
Nom | Description |
---|---|
BEGIN_PARAM_MAP | Marque le début des entrées de mappage de paramètres dans la classe d’enregistrement utilisateur. |
END_PARAM_MAP | Marque la fin des entrées de mappage de paramètres. |
SET_PARAM_TYPE | Spécifie COLUMN_ENTRY macros qui suivent la macro SET_PARAM_TYPE comme entrée, sortie ou entrée/sortie. |
AtlTraceErrorRecords
Vide les informations d’enregistrement d’erreur OLE DB sur l’appareil de vidage si une erreur est retournée.
Syntaxe
inline void AtlTraceErrorRecords(HRESULT hrErr = S_OK);
Paramètres
Herr
[in] HRESULT retourné par une fonction membre du modèle de consommateur OLE DB.
Notes
Si hErr n’est pas S_OK, AtlTraceErrorRecords
vide les informations d’enregistrement d’erreur OLE DB sur l’appareil de vidage (onglet Débogage de la fenêtre Sortie ou fichier). Les informations d’enregistrement d’erreur, obtenues auprès du fournisseur, incluent le numéro de ligne, la source, la description, le fichier d’aide, le contexte et le GUID pour chaque entrée d’enregistrement d’erreur. AtlTraceErrorRecords
vide ces informations uniquement dans les builds de débogage. Dans les builds de mise en production, il s’agit d’un stub vide optimisé. Pour plus d’informations, consultez la classe CDBErrorInfo.
BEGIN_ACCESSOR
Marque le début d’une entrée d’accesseur.
Syntaxe
BEGIN_ACCESSOR(num, bAuto)
Paramètres
num
[in] Nombre de décalage zéro pour l’accesseur dans cette carte d’accesseur.
bAuto
[in] Spécifie si cet accesseur est un accesseur automatique ou un accesseur manuel. Si true
, l’accesseur est automatique ; si false
, l’accesseur est manuel. Un accesseur automatique signifie que les données sont extraites pour vous lors des opérations de déplacement.
Notes
Dans le cas de plusieurs accesseurs sur un ensemble de lignes, vous devez spécifier BEGIN_ACCESSOR_MAP et utiliser la macro BEGIN_ACCESSOR pour chaque accesseur individuel. La macro BEGIN_ACCESSOR est terminée avec la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP est terminée avec la macro END_ACCESSOR_MAP.
Exemple
Voir BEGIN_ACCESSOR_MAP.
BEGIN_ACCESSOR_MAP
Marque le début des entrées de mappage d’accesseur.
Syntaxe
BEGIN_ACCESSOR_MAP(x, num)
Paramètres
x
[in] Nom de la classe d’enregistrement utilisateur.
num
[in] Nombre d’accesseurs contenus dans ce mappage d’accesseur.
Notes
Dans le cas de plusieurs accesseurs sur un ensemble de lignes, vous devez spécifier BEGIN_ACCESSOR_MAP au début et utiliser la macro BEGIN_ACCESSOR pour chaque accesseur individuel. La macro BEGIN_ACCESSOR est terminée avec la macro END_ACCESSOR. La carte d’accesseur est terminée avec la macro END_ACCESSOR_MAP.
Si l’enregistrement utilisateur ne comprend qu’un seul accesseur, utilisez la macro BEGIN_COLUMN_MAP.
Exemple
class CArtistsAccessor
{
public:
// Data Elements
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
short m_nAge;
// Output binding map
BEGIN_ACCESSOR_MAP(CArtistsAccessor, 2)
BEGIN_ACCESSOR(0, true)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
END_ACCESSOR()
BEGIN_ACCESSOR(1, false) // Not an auto accessor
COLUMN_ENTRY(3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsAccessor, L" \
SELECT \
FirstName, \
LastName, \
Age \
FROM Artists")
};
END_ACCESSOR
Marque la fin d’une entrée d’accesseur.
Syntaxe
END_ACCESSOR()
Notes
Pour plusieurs accesseurs sur un ensemble de lignes, vous devez spécifier BEGIN_ACCESSOR_MAP et utiliser la macro BEGIN_ACCESSOR pour chaque accesseur individuel. La macro BEGIN_ACCESSOR est terminée avec la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP est terminée avec la macro END_ACCESSOR_MAP.
Exemple
Voir BEGIN_ACCESSOR_MAP.
END_ACCESSOR_MAP
Marque la fin des entrées de mappage d’accesseur.
Syntaxe
END_ACCESSOR_MAP()
Notes
Pour plusieurs accesseurs sur un ensemble de lignes, vous devez spécifier BEGIN_ACCESSOR_MAP et utiliser la macro BEGIN_ACCESSOR pour chaque accesseur individuel. La macro BEGIN_ACCESSOR est terminée avec la macro END_ACCESSOR. La macro BEGIN_ACCESSOR_MAP est terminée avec la macro END_ACCESSOR_MAP.
Exemple
Voir BEGIN_ACCESSOR_MAP.
BEGIN_COLUMN_MAP
Marque le début d’une entrée de mappage de colonnes.
Syntaxe
BEGIN_COLUMN_MAP(x)
Paramètres
x
[in] Nom de la classe d’enregistrement utilisateur dérivée de CAccessor
.
Notes
Cette macro est utilisée dans le cas d’un seul accesseur sur un ensemble de lignes. Si vous avez plusieurs accesseurs sur un ensemble de lignes, utilisez BEGIN_ACCESSOR_MAP.
La macro BEGIN_COLUMN_MAP est terminée avec la macro END_COLUMN_MAP. Cette macro est utilisée quand un seul accesseur est obligatoire dans l’enregistrement utilisateur.
Les colonnes correspondent aux champs de l’ensemble de lignes à lier.
Exemple
Voici un exemple de mappage de colonnes et de paramètres :
BLOB_ENTRY
Utilisé avec BEGIN_COLUMN_MAP et END_COLUMN_MAP pour lier un objet blob (Binary Large Object).
Syntaxe
BLOB_ENTRY(nOrdinal, IID, flags, data)
Paramètres
nOrdinal
[in] Numéro de colonne.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Exemple
Découvrez comment récupérer un objet BLOB ?.
BLOB_ENTRY_LENGTH
Utilisé avec BEGIN_COLUMN_MAP et END_COLUMN_MAP pour lier un objet blob (Binary Large Object). Similaire à BLOB_ENTRY, sauf que cette macro obtient également la longueur en octets de la colonne BLOB.
Syntaxe
BLOB_ENTRY_LENGTH(nOrdinal, IID, flags, data, length)
Paramètres
nOrdinal
[in] Numéro de colonne.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[out] Longueur (réelle) en octets de la colonne BLOB.
Exemple
Découvrez comment récupérer un objet BLOB ?.
BLOB_ENTRY_LENGTH_STATUS
Utilisé avec BEGIN_COLUMN_MAP et END_COLUMN_MAP pour lier un objet blob (Binary Large Object). Similaire à BLOB_ENTRY, sauf que cette macro obtient également la longueur et l’état de la colonne BLOB.
Syntaxe
BLOB_ENTRY_LENGTH_STATUS(
nOrdinal,
IID,
flags,
data,
length,
status )
Paramètres
nOrdinal
[in] Numéro de colonne.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[out] Longueur (réelle) en octets de la colonne BLOB.
statut
[out] État de la colonne de données BLOB.
Exemple
Découvrez comment récupérer un objet BLOB ?.
BLOB_ENTRY_STATUS
Utilisé avec BEGIN_COLUMN_MAP ou BEGIN_ACCESSOR_MAP pour lier un objet blob (Binary Large Object). Similaire à BLOB_ENTRY, sauf que cette macro obtient également l’état de la colonne BLOB.
Syntaxe
BLOB_ENTRY_STATUS(nOrdinal, IID, flags, data, status)
Paramètres
nOrdinal
[in] Numéro de colonne.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
statut
[out] État du champ BLOB.
Exemple
Découvrez comment récupérer un objet BLOB ?.
BLOB_NAME
Utilisé avec BEGIN_COLUMN_MAP et END_COLUMN_MAP pour lier un objet blob (Binary Large Object). Similaire à BLOB_ENTRY, sauf que cette macro prend un nom de colonne au lieu d’un numéro de colonne.
Syntaxe
BLOB_NAME(pszName, IID, flags, data )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Exemple
Découvrez comment récupérer un objet BLOB ?.
BLOB_NAME_LENGTH
Utilisé avec BEGIN_COLUMN_MAP et END_COLUMN_MAP pour lier un objet blob (Binary Large Object). Similaire à BLOB_NAME, sauf que cette macro obtient également la longueur en octets de la colonne de données BLOB.
Syntaxe
BLOB_NAME_LENGTH(pszName, IID, flags, data, length )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[out] Longueur (réelle) en octets de la colonne BLOB.
BLOB_NAME_LENGTH_STATUS
Utilisé avec BEGIN_COLUMN_MAP et END_COLUMN_MAP pour lier un objet blob (Binary Large Object). Similaire à BLOB_NAME, sauf que cette macro obtient également la longueur et l’état de la colonne de données BLOB.
Syntaxe
BLOB_NAME_LENGTH_STATUS(pszName, IID, flags, data, length, status )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[out] Longueur (réelle) en octets de la colonne BLOB.
statut
[out] État du champ BLOB.
BLOB_NAME_STATUS
Utilisé avec BEGIN_COLUMN_MAP et END_COLUMN_MAP pour lier un objet blob (Binary Large Object). Similaire à BLOB_NAME, sauf que cette macro obtient également l’état de la colonne de données BLOB.
Syntaxe
BLOB_NAME_STATUS(pszName, IID, flags, data, status )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
IID
[in] GUID d’interface, tel que IDD_ISequentialStream
, utilisé pour récupérer l’objet BLOB.
flags
[in] Indicateurs en mode de stockage définis par le modèle OLE Structured Storage (par exemple). STGM_READ
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
statut
[out] État du champ BLOB.
BOOKMARK_ENTRY
Lie la colonne signet.
Syntaxe
BOOKMARK_ENTRY(variable)
Paramètres
variable
[in] Variable à lier à la colonne de signet.
Exemple
class CArtistsBookmark
{
public:
// Data Elements
CBookmark<4> m_bookmark;
short m_nAge;
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
// Output binding map
BEGIN_COLUMN_MAP(CArtistsBookmark)
BOOKMARK_ENTRY(m_bookmark)
COLUMN_ENTRY(1, m_nAge)
COLUMN_ENTRY(2, m_szFirstName)
COLUMN_ENTRY(3, m_szLastName)
END_COLUMN_MAP()
void GetRowsetProperties(CDBPropSet* pPropSet)
{
pPropSet->AddProperty(DBPROP_BOOKMARKS, true);
}
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsBookmark, L" \
SELECT \
Age, \
FirstName, \
LastName \
FROM Artists")
};
Pour plus d’informations, consultez Utilisation des signets et de la classe CBookmark.
COLUMN_ENTRY
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes.
Syntaxe
COLUMN_ENTRY(nOrdinal, data)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
La macro COLUMN_ENTRY est utilisée aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
Exemple
Consultez les exemples des rubriques de macro, BEGIN_COLUMN_MAP et BEGIN_ACCESSOR_MAP.
COLUMN_ENTRY_EX
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de la base de données.
Syntaxe
COLUMN_ENTRY_EX(nOrdinal, wType, nLength, nPrecision, nScale, data, length, status)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne.
wType
[in] Type de données.
nLength
[in] Taille des données en octets.
nPrecision
[in] La précision maximale à utiliser lors de l’obtention de données et wType est DBTYPE_NUMERIC
. Sinon, ce paramètre est ignoré.
nScale
[in] Mise à l’échelle à utiliser lors de l’obtention de données et wType est DBTYPE_NUMERIC
ou DBTYPE_DECIMAL
.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
statut
[in] Variable à lier à l’état de colonne.
Notes
La macro COLUMN_ENTRY_EX est utilisée aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
Exemple
Voir BOOKMARK_ENTRY.
COLUMN_ENTRY_LENGTH
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de la base de données.
Syntaxe
COLUMN_ENTRY_LENGTH(nOrdinal, data, length)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne, en commençant par un. Le signet correspond à la colonne zéro.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
Notes
Cette macro prend en charge la variable de longueur . Il est utilisé aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_ENTRY_LENGTH_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de la base de données.
Syntaxe
COLUMN_ENTRY_LENGTH_STATUS(nOrdinal, data, length, status)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
statut
[in] Variable à lier à l’état de colonne.
Notes
Utilisez cette macro lorsque vous souhaitez prendre en charge les variables de longueur et d’état. Il est utilisé aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_ENTRY_PS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes.
Syntaxe
COLUMN_ENTRY_PS(nOrdinal, nPrecision, nScale, data)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Vous permet de spécifier la précision et l’échelle de la colonne que vous souhaitez lier. Il est utilisé aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_ENTRY_PS_LENGTH
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de la base de données.
Syntaxe
COLUMN_ENTRY_PS_LENGTH(nOrdinal, nPrecision, nScale, data, length)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne, en commençant par un. Le signet correspond à la colonne zéro.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
Notes
Vous permet de spécifier la précision et l’échelle de la colonne que vous souhaitez lier. Cette macro prend en charge la variable de longueur . Il est utilisé aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_ENTRY_PS_LENGTH_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de la base de données.
Syntaxe
COLUMN_ENTRY_PS_LENGTH_STATUS(nOrdinal, nPrecision, nScale, data, length, status)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
statut
[in] Variable à lier à l’état de colonne.
Notes
Vous permet de spécifier la précision et l’échelle de la colonne que vous souhaitez lier. Utilisez cette macro lorsque vous souhaitez prendre en charge les variables de longueur et d’état. Il est utilisé aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_ENTRY_PS_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de la base de données.
Syntaxe
COLUMN_ENTRY_PS_STATUS(nOrdinal, nPrecision, nScale, data, status)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
statut
[in] Variable à lier à l’état de colonne.
Notes
Vous permet de spécifier la précision et l’échelle de la colonne que vous souhaitez lier. Cette macro prend en charge la variable d’état. Il est utilisé aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_ENTRY_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de la base de données.
Syntaxe
COLUMN_ENTRY_STATUS(nOrdinal, data, status)
Paramètres
Consultez DBBINDING dans la référence du programmeur OLE DB.
nOrdinal
[in] Numéro de colonne.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
statut
[in] Variable à lier à l’état de colonne.
Notes
Cette macro prend en charge la variable d’état. Il est utilisé aux emplacements suivants :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_ENTRY_TYPE
Représente une liaison à la colonne spécifique de la base de données. Prend en charge le paramètre de type .
Syntaxe
COLUMN_ENTRY_TYPE (nOrdinal, wType, data)
Paramètres
nOrdinal
[in] Numéro de colonne.
wType
[in] Type de données d’entrée de colonne.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Cette macro est une variante spécialisée de la macro COLUMN_ENTRY qui fournit un moyen de spécifier le type de données.
COLUMN_ENTRY_TYPE_SIZE
Représente une liaison à la colonne spécifique de la base de données. Prend en charge les paramètres de type et de taille .
Syntaxe
COLUMN_ENTRY_TYPE_SIZE(nOrdinal, wType, nLength, data)
Paramètres
nOrdinal
[in] Numéro de colonne.
wType
[in] Type de données d’entrée de colonne.
nLength
[in] Taille de l’entrée de colonne en octets.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Cette macro est une variante spécialisée de la macro COLUMN_ENTRY qui fournit un moyen de spécifier la taille et le type de données.
COLUMN_NAME
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_ENTRY, sauf que cette macro prend le nom de colonne au lieu du numéro de colonne.
Syntaxe
COLUMN_NAME(pszName, data)
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Les macros COLUMN_NAME_* sont utilisées dans les mêmes emplacements que COLUMN_ENTRY :
Entre les macros BEGIN_COLUMN_MAP et END_COLUMN_MAP .
Entre les macros BEGIN_ACCESSOR et END_ACCESSOR .
Entre les macros BEGIN_PARAM_MAP et END_PARAM_MAP .
COLUMN_NAME_EX
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également le type de données, la taille, la précision, l’échelle, la longueur de colonne et l’état de colonne.
Syntaxe
COLUMN_NAME_EX(pszName, wType, nLength, nPrecision, nScale, data, length, status )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
wType
[in] Type de données.
nLength
[in] Taille des données en octets.
nPrecision
[in] La précision maximale à utiliser lors de l’obtention de données et wType est DBTYPE_NUMERIC
. Sinon, ce paramètre est ignoré.
nScale
[in] Mise à l’échelle à utiliser lors de l’obtention de données et wType est DBTYPE_NUMERIC
ou DBTYPE_DECIMAL
.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
statut
[in] Variable à lier à l’état de colonne.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_LENGTH
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également une longueur de colonne.
Syntaxe
COLUMN_NAME_LENGTH(pszName, data, length)
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_LENGTH_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également la longueur des colonnes et l’état des colonnes.
Syntaxe
COLUMN_NAME_LENGTH_STATUS(pszName, data, length, status )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
statut
[in] Variable à lier à l’état de colonne.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_PS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également une précision et une échelle.
Syntaxe
COLUMN_NAME_PS(pszName, nPrecision, nScale, data )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_PS_LENGTH
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également la précision, l’échelle et la longueur des colonnes.
Syntaxe
COLUMN_NAME_PS_LENGTH(pszName, nPrecision, nScale, data, length )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_PS_LENGTH_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également l’état de précision, d’échelle, de longueur de colonne et de colonne.
Syntaxe
COLUMN_NAME_PS_LENGTH_STATUS(pszName, nPrecision, nScale, data, length, status )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
length
[in] Variable à lier à la longueur de colonne.
statut
[in] Variable à lier à l’état de colonne.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_PS_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également l’état de précision, d’échelle et de colonne.
Syntaxe
COLUMN_NAME_PS_STATUS(pszName, nPrecision, nScale, data, status )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
nPrecision
[in] Précision maximale de la colonne à lier.
nScale
[in] Échelle de la colonne à lier.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
statut
[in] Variable à lier à l’état de colonne.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également l’état des colonnes.
Syntaxe
COLUMN_NAME_STATUS(pszName, data, status )
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
statut
[in] Variable à lier à l’état de colonne.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_TYPE
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également le type de données.
Syntaxe
COLUMN_NAME_TYPE(pszName, wType, data)
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
wType
[in] Type de données.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_TYPE_PS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également le type de données, la précision et l’échelle.
Syntaxe
COLUMN_NAME_TYPE_PS(pszName, wType, nPrecision, nScale, data)
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
wType
[in] Type de données.
nPrecision
[in] La précision maximale à utiliser lors de l’obtention de données et wType est DBTYPE_NUMERIC
. Sinon, ce paramètre est ignoré.
nScale
[in] Mise à l’échelle à utiliser lors de l’obtention de données et wType est DBTYPE_NUMERIC
ou DBTYPE_DECIMAL
.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_TYPE_SIZE
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également le type de données et la taille.
Syntaxe
COLUMN_NAME_TYPE_SIZE(pszName, wType, nLength, data)
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
wType
[in] Type de données.
nLength
[in] Taille des données en octets.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
COLUMN_NAME_TYPE_STATUS
Représente une liaison sur l’ensemble de lignes à la colonne spécifique de l’ensemble de lignes. Similaire à COLUMN_NAME, sauf que cette macro prend également le type de données et l’état des colonnes.
Syntaxe
COLUMN_NAME_TYPE_STATUS(pszName, wType, status, data)
Paramètres
pszName
[in] Pointeur vers le nom de colonne. Le nom doit être une chaîne Unicode. Pour ce faire, vous pouvez placer un « L » devant le nom, par exemple : L"MyColumn"
.
wType
[in] Type de données.
statut
[in] Variable à lier à l’état de colonne.
data
[in] Membre de données correspondant dans l’enregistrement utilisateur.
Notes
Consultez COLUMN_NAME pour plus d’informations sur l’emplacement d’utilisation des macros COLUMN_NAME_*.
END_COLUMN_MAP
Marque la fin des entrées du mappage de colonnes.
Syntaxe
END_COLUMN_MAP()
Notes
Il est utilisé avec un seul accesseur sur un ensemble de lignes. La macro BEGIN_COLUMN_MAP est terminée avec la macro END_COLUMN_MAP.
Exemple
Voir BEGIN_COLUMN_MAP.
DEFINE_COMMAND
Spécifie la commande qui sera utilisée pour créer l’ensemble de lignes lors de l’utilisation de la classe CCommand . Accepte uniquement les types de chaîne correspondant au type d’application spécifié (ANSI ou Unicode).
Remarque
Il est recommandé d’utiliser DEFINE_COMMAND_EX au lieu de DEFINE_COMMAND.
Syntaxe
DEFINE_COMMAND(x, szCommand)
Paramètres
x
[in] Nom de la classe d’enregistrement utilisateur (commande).
szCommand
[in] Chaîne de commande qui sera utilisée pour créer l’ensemble de lignes lors de l’utilisation de CCommand.
Notes
La chaîne de commande que vous spécifiez sera utilisée comme valeur par défaut si vous ne spécifiez pas de texte de commande dans la méthode CCommand ::Open .
Cette macro accepte les chaînes ANSI si vous générez votre application en tant que chaînes ANSI ou Unicode si vous générez votre application en tant qu’Unicode. Il est recommandé d’utiliser DEFINE_COMMAND_EX au lieu de DEFINE_COMMAND, car l’ancien accepte des chaînes Unicode, quel que soit le type d’application ANSI ou Unicode.
Exemple
Voir BOOKMARK_ENTRY.
DEFINE_COMMAND_EX
Spécifie la commande qui sera utilisée pour créer l’ensemble de lignes lors de l’utilisation de la classe CCommand . Prend en charge les applications Unicode et ANSI.
Syntaxe
DEFINE_COMMAND_EX(x, wszCommand)
Paramètres
x
[in] Nom de la classe d’enregistrement utilisateur (commande).
wszCommand
[in] Chaîne de commande qui sera utilisée pour créer l’ensemble de lignes lors de l’utilisation de CCommand.
Notes
La chaîne de commande que vous spécifiez sera utilisée comme valeur par défaut si vous ne spécifiez pas de texte de commande dans la méthode CCommand ::Open .
Cette macro accepte les chaînes Unicode, quel que soit le type d’application. Cette macro est préférée à DEFINE_COMMAND , car elle prend en charge Unicode ainsi que les applications ANSI.
Exemple
Voir BOOKMARK_ENTRY.
BEGIN_PARAM_MAP
Marque le début des entrées de mappage de paramètres.
Syntaxe
BEGIN_PARAM_MAP(x)
Paramètres
x
[in] Nom de la classe d’enregistrement utilisateur.
Notes
Les paramètres sont utilisés par les commandes.
Exemple
Consultez l’exemple de la macro BEGIN_COLUMN_MAP .
END_PARAM_MAP
Marque la fin des entrées de mappage de paramètres.
Syntaxe
END_PARAM_MAP()
Exemple
Consultez l’exemple de la macro BEGIN_PARAM_MAP .
SET_PARAM_TYPE
Spécifie COLUMN_ENTRY macros qui suivent l’entrée, la sortie ou la sortie des macros SET_PARAM_TYPE.
Syntaxe
SET_PARAM_TYPE(type)
Paramètres
type
[in] Type à définir pour le paramètre.
Notes
Les fournisseurs prennent en charge uniquement les types d’entrée/sortie de paramètres qui sont pris en charge par la source de données sous-jacente. Le type est une combinaison d’une ou plusieurs DBPARAMIO
valeurs (consultez structures DBBINDING dans la référence du programmeur OLE DB) :
DBPARAMIO_NOTPARAM
L’accesseur n’a aucun paramètre. En règle générale, vous définissezeParamIO
cette valeur dans les accesseurs de ligne pour rappeler à l’utilisateur que les paramètres sont ignorés.DBPARAMIO_INPUT
Paramètre d’entrée.DBPARAMIO_OUTPUT
Paramètre de sortie.DBPARAMIO_INPUT | DBPARAMIO_OUTPUT
Le paramètre est à la fois une entrée et un paramètre de sortie.
Exemple
class CArtistsProperty
{
public:
short m_nReturn;
short m_nAge;
TCHAR m_szFirstName[21];
TCHAR m_szLastName[31];
BEGIN_PARAM_MAP(CArtistsProperty)
SET_PARAM_TYPE(DBPARAMIO_OUTPUT)
COLUMN_ENTRY(1, m_nReturn)
SET_PARAM_TYPE(DBPARAMIO_INPUT)
COLUMN_ENTRY(2, m_nAge)
END_PARAM_MAP()
BEGIN_COLUMN_MAP(CArtistsProperty)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
END_COLUMN_MAP()
HRESULT OpenDataSource()
{
CDataSource _db;
_db.Open();
return m_session.Open(_db);
}
void CloseDataSource()
{
m_session.Close();
}
CSession m_session;
DEFINE_COMMAND_EX(CArtistsProperty, L" \
{ ? = SELECT Age FROM Artists WHERE Age < ? }")
};
Spécifications
En-tête : atldbcli.h
Voir aussi
Macros et fonctions globales pour les modèles du consommateur OLE DB
Modèles du consommateur OLE DB
Référence des modèles du consommateur OLE DB