È possibile recuperare la lunghezza di una colonna a lunghezza variabile o lo stato di una colonna (per verificare per DBSTATUS_S_ISNULL, per esempio).
Per ottenere la lunghezza, utilizzare la macro COLUMN_ENTRY_LENGTH.
Per ottenere lo stato, utilizzare la macro COLUMN_ENTRY_STATUS.
Per ottenere entrambi, utilizzare COLUMN_ENTRY_LENGTH_STATUS, come illustrato di seguito.
classe CProduct
{
pubblica:
char szName [40];
lunga nNameLength;
DBSTATUS nNameStatus;
BEGIN_COLUMN_MAP(CProduct)
COLUMN_ENTRY_LENGTH_STATUS (2, szName, nNameLength, nNameStatus)
END_COLUMN_MAP()
};
CTablelt;CAccessor <CProduct> > prodotto;
prodotto.Apri (sessione, "Prodotto");
mentre (prodotto.MoveNext () = = S_OK)
{
/ / Controllare il nome del prodotto non è NULL prima di tracciatura e
Se (product.nNameStatus = = DBSTATUS_S_OK)
ATLTRACE ("%s è %d characters\n", szName, nNameLength);
}
Quando si utilizza CDynamicAccessor, la lunghezza e lo stato sono vincolati per voi automaticamente. Per recuperare i valori di lunghezza e lo stato, utilizzare le funzioni membro GetLength e GetStatus.