Scorrimento di un rowset semplice
L'esempio seguente illustra l'accesso rapido e semplice al database che non comporta comandi. Il codice consumer seguente, in un progetto ATL, recupera i record da una tabella denominata Artists in un database di Microsoft Access usando il provider Microsoft OLE DB per ODBC. Il codice crea un oggetto tabella CTable con una funzione di accesso basata sulla classe CArtists
di record utente . Apre una connessione, apre una sessione sulla connessione e apre la tabella nella sessione.
#include <atldbcli.h>
#include <iostream>
using namespace std;
int main()
{
CDataSource connection;
CSession session;
CTable<CAccessor<CArtists>> artists;
LPCSTR clsid; // Initialize CLSID_MSDASQL here
LPCTSTR pName = L"NWind";
// Open the connection, session, and table, specifying authentication
// using Windows NT integrated security. Hard-coding a password is a major
// security weakness.
connection.Open(clsid, pName, NULL, NULL, DBPROP_AUTH_INTEGRATED);
session.Open(connection);
artists.Open(session, "Artists");
// Get data from the rowset
while (artists.MoveNext() == S_OK)
{
cout << artists.m_szFirstName;
cout << artists.m_szLastName;
}
return 0;
}
Il record utente, CArtists
, è simile all'esempio seguente:
class CArtists
{
public:
// Data Elements
CHAR m_szFirstName[20];
CHAR m_szLastName[30];
short m_nAge;
// Column binding map
BEGIN_COLUMN_MAP(CArtists)
COLUMN_ENTRY(1, m_szFirstName)
COLUMN_ENTRY(2, m_szLastName)
COLUMN_ENTRY(3, m_nAge)
END_COLUMN_MAP()
};