Partager via


db_param

Associe la variable membre spécifiée à un paramètre d’entrée ou de sortie et délimite la variable.

Syntaxe

[ db_param(ordinal, paramtype="DBPARAMIO_INPUT", dbtype, precision, scale, status, length) ]

Paramètres

ordinal
Numéro de colonne (ordinal DBCOLUMNINFO) correspondant à un champ de l’ensemble de lignes auquel lier des données.

paramtype
(Facultatif) Type à définir pour le paramètre. Les fournisseurs prennent uniquement en charge les types d’E/S de paramètre pris en charge par la source de données sous-jacente. Le type est une combinaison d’une ou plusieurs valeurs DBPARAMIOENUM :

  • DBPARAMIO_INPUT Paramètre d’entrée.

  • DBPARAMIO_OUTPUT Paramètre de sortie.

  • DBPARAMIO_NOTPARAM L’accesseur n’a aucun paramètre. La définition eParamIO de cette valeur dans les accesseurs de ligne rappelle à l’utilisateur que les paramètres sont ignorés.

dbtype
(Facultatif) Indicateur de type OLE DB pour l’entrée de colonne.

precision
(Facultatif) Précision à utiliser pour l’entrée de colonne. Pour plus d’informations, consultez la description de l’élément bPrecision de la structure DBBINDING

scale
(Facultatif) Échelle à utiliser pour l’entrée de colonne. Pour plus d’informations, consultez la description de l’élément bScale de la structure DBBINDING

statut
(Facultatif) Variable membre utilisée pour contenir l’état de cette colonne. L’état indique si la valeur de colonne est une valeur de données ou une autre valeur, telle que NULL. Pour connaître les valeurs possibles, consultez État dans la référence du programmeur OLE DB.

length
(Facultatif) Variable membre utilisée pour contenir la taille de la colonne en octets.

Notes

db_param définit les paramètres que vous utilisez dans les commandes ; par conséquent, vous l’utilisez avec db_command. Par exemple, vous pouvez utiliser db_param pour lier des paramètres dans des requêtes SQL ou des procédures stockées. Les paramètres d’une procédure stockée sont indiqués par des points d’interrogation ( ?), et vous devez lier les membres de données dans l’ordre dans lequel les paramètres apparaissent.

db_param délimite les données membres qui peuvent participer à la liaison basée sur OLE DBICommandWithParameters. Il définit le type de paramètre (entrée ou sortie), le type OLE DB, la précision, l’échelle, l’état et la longueur du paramètre spécifié. Cet attribut insère les macros de consommateur OLE DB BEGIN_PARAM_MAP ... END_PARAM_MAP. Chaque membre que vous marquez avec l’attribut db_param occupe une entrée dans la carte sous la forme d’un COLUMN_ENTRY.

db_param est utilisé conjointement avec les attributs db_table ou db_command.

Lorsque le fournisseur d’attributs consommateur applique cet attribut à une classe, le compilateur renomme la classe en _YourClassName Accessor, où YourClassName est le nom que vous avez donné à la classe, et le compilateur crée également une classe appelée YourClassName, qui dérive de _YourClassNameAccessor. Dans l’affichage de classes, vous verrez les deux classes.

Exemple

L’exemple suivant crée une classe de commandes basée sur la procédure stockée SalesbyYear dans la base de données Northwind. Il associe le premier paramètre de la procédure stockée à la m_RETURN_VALUE variable et le définit comme paramètre de sortie. Il associe les deux derniers paramètres (entrée) à m_Beginning_Date et m_Ending_Date.

L’exemple suivant associe la nOutput variable à un paramètre de sortie.

// db_param.cpp
// compile with: /LD
#include <atlbase.h>
#include <atlplus.h>
#include <atldbcli.h>

[ db_source(L"my_connection_string"),
  db_command(L"{ ? = CALL dbo.\"Sales by Year\"(?,?) }")
]
struct CSalesbyYear {
   DBSTATUS m_dwShippedDateStatus;
   DBSTATUS m_dwOrderIDStatus;
   DBSTATUS m_dwSubtotalStatus;
   DBSTATUS m_dwYearStatus;

   DBLENGTH m_dwShippedDateLength;
   DBLENGTH m_dwOrderIDLength;
   DBLENGTH m_dwSubtotalLength;
   DBLENGTH m_dwYearLength;

   // Bind columns
   [ db_column("1", status="m_dwShippedDateStatus", length="m_dwShippedDateLength") ] DBTIMESTAMP m_ShippedDate;
   [ db_column("2", status="m_dwOrderIDStatus", length="m_dwOrderIDLength") ] LONG m_OrderID;
   [ db_column("3", status="m_dwSubtotalStatus", length="m_dwSubtotalLength") ] CURRENCY m_Subtotal;
   [ db_column("4", status="m_dwYearStatus", length="m_dwYearLength") ] TCHAR m_Year[31];

   // Bind parameters
   [ db_param("1", paramtype="DBPARAMIO_OUTPUT") ] LONG m_RETURN_VALUE;
   [ db_param("2", paramtype="DBPARAMIO_INPUT") ] DBTIMESTAMP m_Beginning_Date;
   [ db_param("3", paramtype="DBPARAMIO_INPUT") ] DBTIMESTAMP m_Ending_Date;
};

Spécifications

Contexte d’attribut Value
S’applique à class, membre struct, méthode, local
Renouvelable Non
Attributs requis Aucun
Attributs non valides Aucun

Pour plus d'informations sur les contextes d'attribut, consultez Contextes d'attribut.

Voir aussi

Attributs du consommateur OLE DB