Partager via


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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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 :

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éfinissez eParamIO 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