Share via


db_param

将指定的成员变量与输入或输出参数关联,并分隔变量。

语法

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

参数

序号
列号(DBCOLUMNINFO 序号)对应于要将数据绑定到的行集中的字段。

paramtype
(可选)要为参数设置的类型。 提供程序仅支持基础数据源支持的参数 I/O 类型。 类型是一个或多个 DBPARAMIOENUM 值的组合:

  • DBPARAMIO_INPUT 输入参数。

  • DBPARAMIO_OUTPUT 输出参数。

  • DBPARAMIO_NOTPARAM 访问器没有参数。 在行访问器中将 eParamIO 设置为此值可提醒用户忽略参数。

dbtype
(可选)列条目的 OLE DB 类型指示器

精度
(可选)用于列条目的精度。 有关详细信息,请参阅 DBBINDING 结构bPrecision 元素的说明

scale
(可选)用于列条目的比例。 有关详细信息,请参阅 DBBINDING 结构bScale 元素的说明

status
(可选)用于保存此列状态的成员变量。 状态指示列值是数据值还是某些其他值,例如 NULL。 有关可能的值,请参阅 OLE DB 程序员参考中的状态

length
(可选)用于保存列大小(以字节为单位)的成员变量。

备注

db_param 定义在命令中使用的参数;因此,将其与 db_command 一起使用。 例如,可以使用 db_param 在 SQL 查询或存储过程中绑定参数。 存储过程中的参数由问号 (?) 表示,应按照参数显示的顺序绑定数据成员。

db_param 分隔可参与 OLE DB 基于 ICommandWithParameters 的绑定的成员数据。 它为指定的参数设置参数类型(输入或输出)、OLE DB 类型、精度、比例、状态和长度。 此特性插入 OLE DB 使用者宏 BEGIN_PARAM_MAP ... END_PARAM_MAP。 使用 db_param 特性标记的每个成员都将以 COLUMN_ENTRY 的形式占据列映射中的一个条目。

db_columndb_tabledb_command 特性结合使用。

使用者特性提供程序将此特性应用到某个类时,编译器会将该类重命名为 _YourClassNameAccessor,其中 YourClassName 是为类命名的名称,且编译器还将创建一个派生自 _YourClassNameAccessor、名为 YourClassName 的类。 将在类视图中看到这两个类。

示例

以下示例基于 Northwind 数据库中的 SalesbyYear 存储过程创建命令类。 它将存储过程中的第一个参数与 m_RETURN_VALUE 变量相关联,并将其定义为输出参数。 它将最后两个(输入)参数与 m_Beginning_Datem_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;
};

要求

特性上下文
适用于 classstruct、member、method、local
可重复
必需的特性
无效的特性

有关特性上下文的详细信息,请参见 特性上下文

另请参阅

OLE DB 使用者特性