Можно получить длину столбца переменной длины или состояние столбца (для проверки DBSTATUS_S_ISNULL, например).
Чтобы получить длину, используйте макрос COLUMN_ENTRY_LENGTH.
Чтобы получить статус, используйте макрос COLUMN_ENTRY_STATUS.
Для того чтобы получить оба, можно воспользоваться COLUMN_ENTRY_LENGTH_STATUS, как показано ниже.
класс CProduct
{
общественности:
Чар szName [40];
длинные nNameLength;
DBSTATUS nNameStatus;
BEGIN_COLUMN_MAP(CProduct)
COLUMN_ENTRY_LENGTH_STATUS (2 szName, nNameLength, nNameStatus)
END_COLUMN_MAP()
};
CTablelt;CAccessor <CProduct> > продукт;
продукт.Открытый (сессия, «Продукт»);
во время (продукт.MoveNext() == S_OK)
{
/ / Проверить имя продукта не является NULL до отслеживания его
Если (product.nNameStatus == DBSTATUS_S_OK)
ATLTRACE («%s это %d characters\n», szName, nNameLength);
}
При использовании CDynamicAccessorдлина и состояние связаны для вас автоматически. Чтобы получить значения длины и состояния, воспользуйтесь GetLength и GetStatus функциями-членами.