Как переопределить динамический метод доступа?

При использовании CDynamicAccessor, метод Open команда создает метод доступа для вас автоматически, основываясь на столбце информации открытого набора строк. Можно переопределить динамический метод доступа для управления точно как связаны столбцы.

Для переопределения динамического метода доступа, передайте ложных как последний параметр в метод CCommand::Open . Это не позволяет Открыть автоматического создания метода доступа. Затем можно вызвать GetColumnInfo и вызвать AddBindEntry для каждого столбца, который нужно связать. В следующем коде показано как это сделать

USES_CONVERSION;
двойной dblProductID;

CCommandlt;CDynamicAccessor > продукт;
/ / Открыть таблицу, передавая значение false для предотвращения автоматической привязки продукта.Открытый (сессия, _T ("Select * от продуктов"), NULL, NULL, DBGUID_DEFAULT, false);

ULONG nColumns;
DBCOLUMNINFO * pColumnInfo;
/ / Получить сведения о столбце от открытого набора строк
продукт.GetColumnInfo (& nColumns и pColumnInfo);

/ / Привязать Идентификатор продукта как double
.wType pColumnInfo [0] = DBTYPE_R8;
.ulColumnSize pColumnInfo [0] = 8;
продукт.AddBindEntry(pColumnInfo[0]);

/ / Связывают имя продукта, как это
продукт.AddBindEntry(pColumnInfo[1]);

/ / Связывать дозаказа уровень в виде строки
.wType pColumnInfo [8] = DBTYPE_STR;
.ulColumnSize pColumnInfo [8] = 10;
продукт.AddBindEntry(pColumnInfo[8]);

/ / Мы закончили указание привязок. Пойдите вперед и привязку
продукт.BIND();
/ / Бесплатный для сведения о столбцах, которые получены в память / / предыдущий вызов GetColumnInfo
CoTaskMemFree(pColumnInfo);

char * pszProductName;
char * pszReorderLevel;
bool bRC;

/ / Сквозной записи отслеживания информации.
во время (продукт.MoveNext() == S_OK)
{
   bRC = продукт.GetValue (1 и dblProductID);
   pszProductName = (char *) продукт.GetValue(2);
   pszReorderLevel = (char *) продукт.GetValue(9);

ATLTRACE (_T ("переопределение = % lf \"%s\ "\"%s\"\n"), dblProductID,
      A2T(pszProductName), A2T(pszReorderLevel));
}

Index