Se puede recuperar el estado de una columna (para buscar DBSTATUS_S_ISNULL, por ejemplo) o la longitud de una columna de longitud variable.
Para obtener la longitud, utilice la macro COLUMN_ENTRY_LENGTH.
Para obtener el Estado, utilice la macro COLUMN_ENTRY_STATUS.
Para obtener ambos, utilice COLUMN_ENTRY_LENGTH_STATUS, como se muestra a continuación.
clase CProduct
{
público:
char szName [40];
nNameLength largo;
DBSTATUS nNameStatus;
BEGIN_COLUMN_MAP(CProduct)
COLUMN_ENTRY_LENGTH_STATUS (2, szName, nNameLength, nNameStatus)
END_COLUMN_MAP()
};
CTablelt;CAccessor <CProduct> > producto;
producto.Abrir (sesión, "Producto");
mientras (producto.MoveNext() == S_OK)
{
/ / Comprobar el nombre del producto no es NULL antes de lo seguimiento
Si (product.nNameStatus == DBSTATUS_S_OK)
ATLTRACE ("%s es %d los caracteres\n", szName, nNameLength);
}
Cuando se utiliza CDynamicAccessor, la longitud y el estado están enlazados para usted automáticamente. Para recuperar los valores de longitud y estado, utilice las funciones miembro GetLength y GetStatus.