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
}