db_param

Ordnet die angegebene Membervariable einem Eingabe- oder Ausgabeparameter zu und trennt die Variable.

Syntax

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

Parameter

ordinal
Die Spaltennummer (DBCOLUMNINFO ordinal), die einem Feld im Rowset entspricht, an das Daten gebunden werden sollen.

paramtype
(Optional) Der typ, der für den Parameter festgelegt werden soll. Anbieter unterstützen nur Parameter-E/A-Typen, die von der zugrunde liegenden Datenquelle unterstützt werden. Der Typ ist eine Kombination aus mindestens einem DBPARAMIOENUM-Wert:

  • DBPARAMIO_INPUT Ein Eingabeparameter.

  • DBPARAMIO_OUTPUT Ein Ausgabeparameter.

  • DBPARAMIO_NOTPARAM Der Accessor hat keine Parameter. Die Einstellung eParamIO auf diesen Wert in Zeilenaccessoren erinnert den Benutzer daran, dass Parameter ignoriert werden.

dbtype
(Optional) Ein OLE DB-Typindikator für den Spalteneintrag.

precision
(Optional) Die Genauigkeit, die für den Spalteneintrag verwendet werden soll. Ausführliche Informationen finden Sie in der Beschreibung des bPrecision Elements der DBBINDING-Struktur.

scale
(Optional) Die Skalierung, die für den Spalteneintrag verwendet werden soll. Ausführliche Informationen finden Sie in der Beschreibung des bScale Elements der DBBINDING-Struktur.

status
(Optional) Eine Membervariable, die zum Halten des Status dieser Spalte verwendet wird. Der Status gibt an, ob der Spaltenwert ein Datenwert oder ein anderer Wert ist, z. B. NULL. Mögliche Werte finden Sie unter Status in der OLE DB-Programmierreferenz.

length
(Optional) Eine Membervariable, die zum Halten der Größe der Spalte in Bytes verwendet wird.

Hinweise

db_param definiert Parameter, die Sie in Befehlen verwenden. Daher verwenden Sie sie mit db_command. Sie können z. B. db_param verwenden, um Parameter in SQL-Abfragen oder gespeicherten Prozeduren zu binden. Parameter in einer gespeicherten Prozedur werden durch Fragezeichen (?) gekennzeichnet, und Sie sollten die Datenmember in der Reihenfolge binden, in der die Parameter angezeigt werden.

db_param trennt Memberdaten, die an ole DB-basierter ICommandWithParametersBindung teilnehmen können. Er legt den Parametertyp (Eingabe oder Ausgabe), OLE DB-Typ, Genauigkeit, Skalierung, Status und Länge für den angegebenen Parameter fest. Dieses Attribut fügt die OLE DB-Consumermakros BEGIN_PARAM_MAP ein... END_PARAM_MAP. Jedes Element, das Sie mit dem attribut db_param markieren, belegt einen Eintrag in der Karte in Form eines COLUMN_ENTRY.

db_param wird in Verbindung mit den Attributen db_table oder db_command verwendet.

Wenn der Consumer-Attributanbieter dieses Attribut auf eine Klasse anwendet, benennt der Compiler die Klasse in _YourClassNameAccessor um, wobei YourClassName der Name ist, den Sie der Klasse zugewiesen haben, und der Compiler erstellt auch eine Klasse namens "YourClassName", die von _YourClassName Accessor abgeleitet wird. In dieser Klassenansicht werden beide Klassen angezeigt.

Beispiel

Im folgenden Beispiel wird eine Befehlsklasse erstellt, die auf der gespeicherten Prozedur "SalesbyYear" in der Northwind-Datenbank basiert. Der erste Parameter in der gespeicherten Prozedur wird der m_RETURN_VALUE Variablen zugeordnet und als Ausgabeparameter definiert. Sie ordnet die letzten beiden Parameter (Eingabe) und m_Beginning_Date .m_Ending_Date

Im folgenden Beispiel wird die nOutput Variable einem Ausgabeparameter zugeordnet.

// 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;
};

Anforderungen

Attributkontext Wert
Gilt für class, structMember, Methode, lokal
Wiederholbar No
Erforderliche Attribute Keine
Ungültige Attribute Keine

Weitere Informationen zu den Attributkontexten finden Sie unter Attributkontexte.

Siehe auch

OLE DB-Consumerattribute