Você pode recuperar o status de uma coluna (para verificar se há DBSTATUS_S_ISNULL, por exemplo) ou o comprimento de uma coluna de comprimento variável.
Para obter o comprimento, use a macro COLUMN_ENTRY_LENGTH.
Para obter o status, use a macro COLUMN_ENTRY_STATUS.
Para obter tanto, use COLUMN_ENTRY_LENGTH_STATUS, como mostrado abaixo.
classe CProduct
{
público:
Char szName [40];
nNameLength longo;
DBSTATUS nNameStatus;
BEGIN_COLUMN_MAP(CProduct)
COLUMN_ENTRY_LENGTH_STATUS (2, szName, nNameLength, nNameStatus)
END_COLUMN_MAP()
};
CTablelt;CAccessor <CProduct> > produto;
produto.Open (session, "Produto");
ao mesmo tempo (produto.MoveNext() = = S_OK)
{
/ / Verificar o nome do produto não é NULL antes de rastreá-lo
se (product.nNameStatus = = DBSTATUS_S_OK)
ATLTRACE ("%s é %d caracteres\n", szName, nNameLength);
}
Quando você usar CDynamicAccessor, o comprimento e status estão vinculados para você automaticamente. Para recuperar os valores de comprimento e status, use as funções de membro GetLength e GetStatus.