Поделиться через


db_param

Связывает указанную переменную-член с входным или выходным параметром и разделит переменную.

Синтаксис

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

Параметры

порядковая
Номер столбца (порядковый номер DBCOLUMNINFO), соответствующий полю в наборе строк, к которому необходимо привязать данные.

paramtype
(Необязательно) Тип, заданный для параметра. Поставщики поддерживают только типы операций ввода-вывода параметров, поддерживаемые базовым источником данных. Тип — это сочетание одного или нескольких значений DBPARAMIOENUM:

  • DBPARAMIO_INPUT Входной параметр

  • DBPARAMIO_OUTPUT Выходной параметр

  • DBPARAMIO_NOTPARAM Метод доступа не имеет параметров. Установка eParamIO этого значения в методах доступа к строкам напоминает пользователю, что параметры игнорируются.

dbtype
(Необязательно) Индикатор типа OLE DB для записи столбца.

precision
(Необязательно) Точность, используемая для записи столбца. Дополнительные сведения см. в описании bPrecision элемента структуры DBBINDING

scale
(Необязательно) Масштаб, используемый для записи столбца. Дополнительные сведения см. в описании bScale элемента структуры DBBINDING

состояние
(Необязательно) Переменная-член, используемая для хранения состояния этого столбца. Состояние указывает, является ли значение столбца значением данных или другим значением, например NULL. Возможные значения см. в разделе "Состояние" в справочнике программиста OLE DB.

length
(Необязательно) Переменная-член, используемая для хранения размера столбца в байтах.

Замечания

db_param определяет параметры, используемые в командах; поэтому используется с нимdb_command. Например, можно использовать db_param для привязки параметров в запросах SQL или хранимых процедурах. Параметры в хранимой процедуре указываются вопросительными знаками (?), и необходимо привязать элементы данных в порядке, в котором отображаются параметры.

db_param разделяет данные-члены, которые могут участвовать в привязке на основе OLE DBICommandWithParameters. Он задает тип параметра (входные или выходные данные), тип OLE DB, точность, масштабирование, состояние и длину для указанного параметра. Этот атрибут вставляет макросы потребителей OLE DB BEGIN_PARAM_MAP ... END_PARAM_MAP. Каждый элемент, помеченный атрибутом db_param, будет занимать одну запись в карте в виде COLUMN_ENTRY .

db_param используется вместе с атрибутами db_table или db_command.

Когда поставщик атрибутов потребителя применяет этот атрибут к классу, компилятор переименовывает класс в _YourClassName Accessor, где YourClassName — это имя, которое вы предоставили класс, и компилятор также создаст класс YourClassName, производный от _YourClassName Accessor. В представлении классов отображаются оба класса.

Пример

В следующем примере создается класс команд на основе хранимой процедуры SalesbyYear в базе данных Northwind. Он связывает первый параметр в хранимой процедуре с m_RETURN_VALUE переменной и определяет его как выходной параметр. Он связывает последние два (входных) параметра с m_Beginning_Date и m_Ending_Date.

В следующем примере переменная связывается nOutput с выходным параметром.

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

Требования

Контекст атрибута Значение
Относится к class, structчлен, метод, локальный
Повторяемый No
Обязательные атрибуты None
Недопустимые атрибуты None

Дополнительные сведения о контекстах атрибутов см. в разделе Контексты атрибутов.

См. также

Атрибуты объекта-получателя OLE DB