Як змінити динамічні методи доступу?

Під час використання CDynamicAccessor, відкритого методу команда створює функції доступу для вас автоматично, на основі стовпців інформацією відкрилося набір рядків. Ви можете змінити динамічний поводи контролювати саме як пов'язані стовпці.

Скасувати динамічні методи доступу, передати помилкових як останній параметр CCommand::Open методу. Це запобігає відкриті створення функції доступу автоматично. Можна назвати GetColumnInfo і називаємо AddBindEntry для кожного стовпця, який потрібно зв'язати. Наступний код показує, як це зробити

USES_CONVERSION;
подвійний dblProductID;

CCommandlt;CDynamicAccessor > продукту;
/ / Відкрити таблицю, проходячи Хибність, щоб заборонити автоматичне зв'язування продукту.Відкрити (сесії, _T ("виберіть * від продуктів"), NULL, NULL, DBGUID_DEFAULT, false);

ULONG nColumns;
DBCOLUMNINFO * pColumnInfo;
/ / Отримати інформацію стовпця з відкритих набір рядків
продукт.GetColumnInfo (та nColumns та pColumnInfo);

/ / Зв'язати Ідентифікатор продукту як подвійним
.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);

Чар * pszProductName;
Чар * pszReorderLevel;
bool bRC;

/ / Цикл через записи трасування з інформацією.
під час (продукту.MoveNext() = = S_OK)
{
   bRC = продукт.GetValue (1 & dblProductID);
   pszProductName = (знак *) продукту.GetValue(2);
   pszReorderLevel = (знак *) продукту.GetValue(9);

ATLTRACE (_T ("перевизначити = % л. ф. \"%s\ "\"%s\"\n"), dblProductID,
      A2T(pszProductName), A2T(pszReorderLevel));
}

Index