Podczas korzystania z CDynamicAccessor, otwartej metody polecenia akcesor operacji można automatycznie tworzy, na podstawie informacji o kolumnie otwartych wierszy. Można zastąpić dynamiczne akcesor kontroli, dokładnie tak jak kolumny są powiązane.
Aby zastąpić dynamiczne akcesor, przekazać fałszywe jako ostatni parametr metody CCommand::Open . Zapobiega to otwarte od tworzenia akcesor automatycznie. Można następnie wywołać GetColumnInfo i wywołać AddBindEntry dla każdej kolumny, które chcesz powiązać. Poniższy kod pokazuje jak to zrobić
USES_CONVERSION;
podwójne dblProductID;
CCommandlt;CDynamicAccessor > produktu;
/ / Otwórz tabelę, przekazując wartość false, aby uniemożliwić automatyczne powiązanie produktu.Otwarte (sesji, _T ("Select * od produktów"), NULL, NULL, DBGUID_DEFAULT, FAŁSZ);
ULONG nColumns;
DBCOLUMNINFO * pColumnInfo;
/ / Get informacji o kolumnie z otwartych wierszy
produkt.GetColumnInfo (nColumns & pColumnInfo);
/ / Bind identyfikator produktu jako podwójna
.wType pColumnInfo [0] = DBTYPE_R8;
.ulColumnSize pColumnInfo [0] = 8;
produkt.AddBindEntry(pColumnInfo[0]);
/ / Powiązać nazwę produktu, jak
produkt.AddBindEntry(pColumnInfo[1]);
/ / Bind poziomu ponownego zamówienia jako ciąg
.wType pColumnInfo [8] = typem DBTYPE_STR;
.ulColumnSize pColumnInfo [8] = 10;
produkt.AddBindEntry(pColumnInfo[8]);
/ / Możemy dobiegło końca, określając powiązań. Śmiało i powiązania
produkt.BIND();
/ / Zwolnienia pamięci do informacji kolumny, który nas pobierane w / / poprzednie wywołanie GetColumnInfo
CoTaskMemFree(pColumnInfo);
char * pszProductName;
char * pszReorderLevel;
bool bRC;
/ / Pętli rekordy śledzenie informacji.
podczas (produktu.MoveNext() == wartość S_OK)
{
bRC = produkt.Elementu GetValue (1 & dblProductID);
pszProductName = char *** produktu.GetValue(2);
pszReorderLevel = char *** produktu.GetValue(9);
ATLTRACE (_T ("Override = % lf \"%s\ "\"%s\"\n"), dblProductID,
A2T(pszProductName), A2T(pszReorderLevel));
}