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 |
Обязательные атрибуты | нет |
Недопустимые атрибуты | нет |
Дополнительные сведения о контекстах атрибутов см. в разделе Контексты атрибутов.