This program fragment shows how values are retrieved from fields and converted to C++ variables.
#import "c:\Program Files\Common Files\System\ADO\msado15.dll"
no_namespace rename("EOF", "EndOfFile")
#include <stdio.h>
Class CEmployee
{
public:
FetchEmployeeData();
char m_szFirstName[30];
char m_szLastName[30];
int nAge;
};
CEmployee::FetchEmployeeData()
{
_ConnectionPtr pCon();
_RecordsetPtr pRs();
FieldPtr pfldFirstName, pfldLastName, pfldAge;
_variant_t vFirstName, vLastName, vAge;
pCon.CreateInstance(__uuidof(Connection));
pCon->Open(“pubs”, “sa”, “”);
pRs.CreateInstance(__uuidof(Recordset));
pRs->Open(“select FirstName, LastName, Age from Employees”, pCon,
adOpenForwardOnly, adLockReadOnly, adCmdUnknown);
pfldFirstName = pRs->Fields->GetItem(0);
pfldLastName = pRs->Fields->GetItem(1);
pfldAge = pRs->Fields->GetItem(2);
while (VARIANT_FALSE == pRs->EndOfFile)
{
vFirstName.Clear();
vLastName.Clear();
vAge.Clear();
vFirstName = pfldFirstName->Value;
WideCharToMultiByte(CP_ACP, 0, vFirstName.bstrVal, -1,
m_szFirstName, sizeof(m_szFirstName), NULL, NULL);
vLastName = pfldLastName->Value;
WideCharToMultiByte(CP_ACP, 0, vLastName.bstrVal, -1,
m_szLastName, sizeof(m_szLastName), NULL, NULL);
nAge = vAge.iVal;
pRs->MoveNext();
}
}