Vous pouvez récupérer la longueur d'une colonne de longueur variable ou l'état d'une colonne (pour rechercher DBSTATUS_S_ISNULL, par exemple).
Pour obtenir la longueur, utilisez la macro COLUMN_ENTRY_LENGTH.
Pour obtenir de l'État, utilisez la macro COLUMN_ENTRY_STATUS.
Pour obtenir les deux, utilisez COLUMN_ENTRY_LENGTH_STATUS, comme illustré ci-dessous.
classe CProduct
{
public :
char szName [40] ;
long nNameLength ;
DBSTATUS nNameStatus ;
BEGIN_COLUMN_MAP(CProduct)
COLUMN_ENTRY_LENGTH_STATUS (2, szName, nNameLength, nNameStatus)
END_COLUMN_MAP()
};
CTablelt ;CAccessor <CProduct> > produit ;
produit.Ouvert (session, « Produit ») ;
alors que (produit.MoveNext() == S_OK)
{
/ / Vérifier le nom du produit n'est pas NULL avant traçage il
Si (product.nNameStatus == DBSTATUS_S_OK)
ATLTRACE (« %s est %d characters\n », szName, nNameLength) ;
}
Lorsque vous utilisez CDynamicAccessor, la longueur et l'État sont liés pour vous automatiquement. Pour récupérer les valeurs de longueur et d'État, utilisez les fonctions membres GetLength et GetStatus.