Emissão de uma consulta parametrizada

Este exemplo emite uma consulta parametrizada simple que recupera registros com um campo de idade (que é maior que 30) de uma tabela em um banco de dados do Microsoft Access. Para oferecer suporte o parâmetro, o registro de usuário deve ter um mapa adicional. O código usa a classe CCommand em vez da classe CTable usada no exemplo anterior, Traversing a simples Rowset.

# include lt;atldbcli.h >

CDataSource conexão;
Sessão CSession;
CCommand < CAccessor <CArtists> > artistas;
 
conexão.Aberta (CLSID_MSDASQL, "NWind", "sa", "");
sessão.Open(Connection);
 
/ / Definir o parâmetro para a consulta
Artists.m_nAge = 30;
artistas.Aberta (sessão, "Selecione * de artistas onde idade >?");
 
/ / Obter dados do conjunto de linhas
ao mesmo tempo (artistas.MoveNext() = = S_OK)
{
   Cout << artists.m_szFirstName;
   Cout << artists.m_szLastName;
}

Registro do usuário, CArtists , parece que isso:

classe CArtists
{
público:
/ / Elementos de dados
   CHAR m_szFirstName [20];
   CHAR m_szLastName [30];
   m_nAge curto;
 
/ / saída de mapa de ligação
BEGIN_COLUMN_MAP(CArtists)
   COLUMN_ENTRY (1, m_szFirstName)
   COLUMN_ENTRY (2, m_szLastName)
   COLUMN_ENTRY (3, m_nAge)
END_COLUMN_MAP()
 
/ / parâmetro vinculação mapa
BEGIN_PARAM_MAP(CArtists)
   COLUMN_ENTRY (1, m_nAge)
END_PARAM_MAP
}

Voltar para cenários comuns de OLE DB consumidor (exemplos)

Index