CDynamicAccessorkullandığınızda, komut Open yöntemi erişenine sizin için otomatik olarak açılan satır kümesi sütun bilgileri temel oluşturur. Tam olarak nasıl sütunları ilişkili denetlemek için dinamik erişeni kılabilirsiniz.
Dinamik erişimci geçersiz kılmak için yanlış son parametre olarak CCommand::Open yöntemine geçirin. Bu Açık bir erişimci otomatik olarak oluşturmasını engeller. Sonra GetColumnInfo aramak ve bağlamak istediğiniz her sütun için AddBindEntry arayın. Aşağıdaki kod, nasıl yapacağınızı gösterir.
USES_CONVERSION;
çift dblProductID;
CCommandlt;CDynamicAccessor > Ürün;
/ / Otomatik bağlama ürün önlemek için yanlış geçirmeden tabloyu açın.Açık (oturumu, _t ("Select * from Ürünler"), null, null, DBGUID_DEFAULT, false);
ulong nColumns;
DBCOLUMNINFO * pColumnInfo;
/ Açık satır kümesi sütun bilgileri almak
ürün.VoidGetColumnInfo (& nColumns & pColumnInfo);
/ / Bir çift olarak ürün kimliği bağlama
pColumnInfo [0] .wtype DBTYPE_R8; =
pColumnInfo [0] .ulcolumnsize = 8;
ürün.AddBindEntry(pColumnInfo[0]);
/ / Ürün adı olarak bağlama
ürün.AddBindEntry(pColumnInfo[1]);
/ / Adedinin dizge olarak bağlama
pColumnInfo [8] .wtype dbtype_str; =
pColumnInfo [8] .ulcolumnsize = 10;
ürün.AddBindEntry(pColumnInfo[8]);
/ / Biz bağlamaları belirterek bitirdim. Gitmek önde ve bağlama
ürün.Bind();
/ / Biz alınan sütun bilgileri bellekte / / önceki çağrı GetColumnInfo için
CoTaskMemFree(pColumnInfo);
char * pszProductName;
char * pszReorderLevel;
bool bRC;
/ / Kayıtlar arasında döngü izleme bilgileri.
(ürün.MoveNext() == s_ok)
{
bRC ürün =.GetValue (1 ve dblProductID);
pszProductName = (char *) ürün.GetValue(2);
pszReorderLevel = (char *) ürün.GetValue(9);
atltrace (_t ("geçersiz kılma % lf \"%s\ = "\"%s\"\n"), dblProductID,
A2T(pszProductName), A2T(pszReorderLevel));
}