Este ejemplo utiliza múltiples descriptores de acceso para recuperar un conjunto de datos. Una aplicación puede utilizar múltiples descriptores de acceso para optimizar el acceso a los datos. El conjunto de filas recupera un bloque de datos que pueden ser utilizados por múltiples descriptores de acceso. (El descriptor de acceso se define en los Registros de usuario OLE DB).
# include lt;atldbcli.h >
CDataSource conexión;
CSession período de sesiones;
CTable < CAccessor <CMultiArtists> > artistas;
/ / Conectar la base de datos, sesión y los descriptores de acceso
conexión.Abierto (CLSID_MSDASQL, "Neptuno", "sa", "");
período de sesiones.Open(Connection);
artistas.Abrir sesión ("artistas");
/ / Recuperar los datos
mientras (artistas.MoveNext() == S_OK)
{
Cout << artists.m_szFirstName;
Cout << artists.m_szLastName;
artistas.GetData(1); / / Recuperar datos para otro descriptor de acceso
Cout << artists.m_nAge;
}
El registro de usuario este aspecto:
clase CMultiArtists
{
público:
/ / Elementos de datos
CHAR m_szFirstName [20];
CHAR m_szLastName [30];
m_nAge corto;
/ / Mapa de enlace de salida
BEGIN_ACCESSOR_MAP (CMultiArtists, 2)
BEGIN_ACCESSOR (0, verdadero)
COLUMN_ENTRY (1, m_szFirstName)
COLUMN_ENTRY (2, m_szLastName)
END_ACCESSOR(0)
BEGIN_ACCESSOR (1, false) / / no un descriptor de acceso automático
COLUMN_ENTRY (3, m_nAge)
END_ACCESSOR()
END_ACCESSOR_MAP()
}
Volver a los escenarios comunes de consumidor DB OLE (ejemplos)