Partilhar via


db_param

Associa a variável de membro especificada a um parâmetro de entrada ou saída e delimita a variável.

Sintaxe

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

Parâmetros

ordinal
O número da coluna (DBCOLUMNINFO ordinal) correspondente a um campo no conjunto de linhas ao qual associar dados.

paramtype
(Opcional) O tipo a ser definido para o parâmetro. Os provedores dão suporte apenas a tipos de E/S de parâmetro com suporte na fonte de dados subjacente. O tipo é uma combinação de um ou mais valores DBPARAMIOENUM:

  • DBPARAMIO_INPUT Um parâmetro de entrada.

  • DBPARAMIO_OUTPUT Um parâmetro de saída.

  • DBPARAMIO_NOTPARAM O acessador não tem parâmetros. A configuração eParamIO para esse valor em acessadores de linha lembra o usuário de que os parâmetros são ignorados.

dbtype
(Opcional) Um Indicador de Tipo OLE DB para a entrada da coluna.

precisão
(Opcional) A precisão a ser usada para a entrada da coluna. Para detalhes, confira a descrição do elemento bPrecision da estrutura DBBINDING

scale
(Opcional) A escala a ser usada para a entrada da coluna. Para detalhes, confira a descrição do elemento bScale da estrutura DBBINDING

status
(Opcional) Uma variável de membro usada para manter o status desta coluna. O status indica se o valor da coluna é um valor de dados ou algum outro valor, como NULL. Para valores possíveis, confira Status na Referência do Programador OLE DB.

length
(Opcional) Uma variável de membro usada para manter o tamanho da coluna em bytes.

Comentários

db_param define parâmetros que você usa em comandos; portanto, você o usa com db_command. Por exemplo, você pode usar db_param para associar parâmetros em consultas SQL ou procedimentos armazenados. Os parâmetros em um procedimento armazenado são indicados por pontos de interrogação (?) e você deve associar os membros de dados na ordem em que os parâmetros aparecem.

db_param delimita dados de membro que podem participar da associação baseada em ICommandWithParameters OLE DB. Ele define o tipo de parâmetro (entrada ou saída), tipo OLE DB, precisão, escala, status e comprimento do parâmetro especificado. Esse atributo insere as macros de consumidor OLE DB BEGIN_PARAM_MAP... END_PARAM_MAP. Cada membro marcado com o atributo db_param ocupará uma entrada no mapa na forma de uma COLUMN_ENTRY.

db_param é usado em conjunto com os atributos db_table ou db_command.

Quando o provedor de atributos de consumidor aplica esse atributo a uma classe, o compilador renomeia a classe como _YourClassNameAccessor, em que YourClassName é o nome que você deu à classe, e o compilador também criará uma classe chamada YourClassName, que deriva de _YourClassNameAccessor. No Modo de Exibição de Classe, você verá ambas as classes.

Exemplo

O exemplo a seguir cria uma classe de comando com base no procedimento armazenado SalesbyYear no banco de dados da Northwind. Ele associa o primeiro parâmetro no procedimento armazenado à variável m_RETURN_VALUE e o define como um parâmetro de saída. Ele associa os dois últimos parâmetros (entrada) a m_Beginning_Date e m_Ending_Date.

O exemplo a seguir associa a variável nOutput a um parâmetro de saída.

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

Requisitos

Contexto do atributo Valor
Aplicável ao class, struct, membro, método, local
Repetível Não
Atributos obrigatórios Nenhum
Atributos inválidos Nenhum

Para obter mais informações sobre os contextos de atributo, confira Contextos de atributo.

Confira também

Atributos de consumidor do OLE DB