CDBVariant Class

Represents a variant data type for the MFC ODBC classes.

Syntax

class CDBVariant

Members

Public Constructors

Name Description
CDBVariant::CDBVariant Constructs a CDBVariant object.

Public Methods

Name Description
CDBVariant::Clear Clears the CDBVariant object.

Public Data Members

Name Description
CDBVariant::m_dwType Contains the data type of the currently stored value. Type DWORD.

Public Union Members

Name Description
CDBVariant::m_boolVal Contains a value of type BOOL.
CDBVariant::m_chVal Contains a value of type unsigned char.
CDBVariant::m_dblVal Contains a value of type double.
CDBVariant::m_fltVal Contains a value of type float.
CDBVariant::m_iVal Contains a value of type short.
CDBVariant::m_lVal Contains a value of type long.
CDBVariant::m_pbinary Contains a pointer to an object of type CLongBinary.
CDBVariant::m_pdate Contains a pointer to an object of type TIMESTAMP_STRUCT.
CDBVariant::m_pstring Contains a pointer to an object of type CString.
CDBVariant::m_pstringA Stores a pointer to an ASCII CString object.
CDBVariant::m_pstringW Stores a pointer to a wide CString object.

Remarks

CDBVariant does not have a base class.

CDBVariant is similar to COleVariant; however, CDBVariant does not use OLE. CDBVariant allows you to store a value without worrying about the value's data type. CDBVariant tracks the data type of the current value, which is stored in a union.

Class CRecordset utilizes CDBVariant objects in three member functions: GetFieldValue, GetBookmark, and SetBookmark. For example, GetFieldValue allows you to dynamically fetch data in a column. Because the data type of the column may not be known at run time, GetFieldValue uses a CDBVariant object to store the column's data.

Inheritance Hierarchy

CDBVariant

Requirements

Header: afxdb.h

CDBVariant::CDBVariant

Creates a NULL CDBVariant object.

CDBVariant();

Remarks

Sets the m_dwType data member to DBVT_NULL.

CDBVariant::Clear

Call this member function to clear the CDBVariant object.

void Clear();

Remarks

If the value of the m_dwType data member is DBVT_DATE, DBVT_STRING, or DBVT_BINARY, Clear frees the memory associated with the union pointer member. Clear sets m_dwType to DBVT_NULL.

The CDBVariant destructor calls Clear.

CDBVariant::m_boolVal

Stores a value of type BOOL.

Remarks

The m_boolVal data member belongs to a union. Before accessing m_boolVal, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_BOOL, then m_boolVal will contain a valid value; otherwise, accessing m_boolVal will produce unreliable results.

CDBVariant::m_chVal

Stores a value of type unsigned char.

Remarks

The m_chVal data member belongs to a union. Before accessing m_chVal, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_UCHAR, then m_chVal contains a valid value; otherwise, accessing m_chVal will produce unreliable results.

CDBVariant::m_dblVal

Stores a value of type double.

Remarks

The m_dblVal data member belongs to a union. Before accessing m_dblVal, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_DOUBLE, then m_dblVal contains a valid value; otherwise, accessing m_dblVal will produce unreliable results.

CDBVariant::m_dwType

This data member contains the data type for the value that is currently stored in the CDBVariant object's union data member.

Remarks

Before accessing this union, you must check the value of m_dwType in order to determine which union data member to access. The following table lists the possible values for m_dwType and the corresponding union data member.

m_dwType Union data member
DBVT_NULL No union member is valid for access.
DBVT_BOOL m_boolVal
DBVT_UCHAR m_chVal
DBVT_SHORT m_iVal
DBVT_LONG m_lVal
DBVT_SINGLE m_fltVal
DBVT_DOUBLE m_dblVal
DBVT_DATE m_pdate
DBVT_STRING m_pstring
DBVT_BINARY m_pbinary
DBVT_ASTRING m_pstringA
DBVT_WSTRING m_pstringW

CDBVariant::m_fltVal

Stores a value of type float.

Remarks

The m_fltVal data member belongs to a union. Before accessing m_fltVal, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_SINGLE, then m_fltVal contains a valid value; otherwise, accessing m_fltVal will produce unreliable results.

CDBVariant::m_iVal

Stores a value of type short.

Remarks

The m_iVal data member belongs to a union. Before accessing m_iVal, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_SHORT, then m_iVal contains a valid value; otherwise, accessing m_iVal will produce unreliable results.

CDBVariant::m_lVal

Stores a value of type long.

Remarks

The m_lVal data member belongs to a union. Before accessing m_lVal, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_LONG, then m_lVal contains a valid value; otherwise, accessing m_lVal will produce unreliable results.

CDBVariant::m_pbinary

Stores a pointer to an object of type CLongBinary.

Remarks

The m_pbinary data member belongs to a union. Before accessing m_pbinary, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_BINARY, then m_pbinary contains a valid pointer; otherwise, accessing m_pbinary will produce unreliable results.

CDBVariant::m_pdate

Stores a pointer to an object of type TIMESTAMP_STRUCT.

Remarks

The m_pdate data member belongs to a union. Before accessing m_pdate, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_DATE, then m_pdate contains a valid pointer; otherwise, accessing m_pdate will produce unreliable results.

For more information about the TIMESTAMP_STRUCT data type, see the topic C Data Types in Appendix D of the ODBC Programmer's Reference in the Windows SDK.

CDBVariant::m_pstring

Stores a pointer to an object of type CString.

Remarks

The m_pstring data member belongs to a union. Before accessing m_pstring, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_STRING, then m_pstring contains a valid pointer; otherwise, accessing m_pstring will produce unreliable results.

CDBVariant::m_pstringA

Stores a pointer to an ASCII CString object.

Remarks

The m_pstringA data member belongs to a union. Before accessing m_pstringA, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_ASTRING, then m_pstringA contains a valid pointer; otherwise, accessing m_pstringA will produce unreliable results.

CDBVariant::m_pstringW

Stores a pointer to a wide CString object.

Remarks

The m_pstringW data member belongs to a union. Before accessing m_pstringW, first check the value of CDBVariant::m_dwType. If m_dwType is set to DBVT_WSTRING, then m_pstringW contains a valid pointer; otherwise, accessing m_pstringW will produce unreliable results.

See also

Hierarchy Chart
CRecordset Class