CDBVariant 类
Represents a variant data type for the MFC ODBC classes.
代表一个MFC ODBC类的可变数据类型
class CDBVariant
Remarks
CDBVariant does not have abase class. 没有基类
CDBVariant is similar to COleVariant;however, CDBVariant does not use OLE. CDBVariant allows you tostore a value without worrying about the value's data type. CDBVarianttracks the data type of the current value, which is stored in a union.
CDBVariant使你能够存储一个值而不用考虑值的数据类型。它跟踪当前值的数据类型,这些数据类型存储在一个共用体内。
class CDBVariant
{
// Constructor
public:
CDBVariant();
// Attributes
public:
DWORD m_dwType;
union
{
BOOL m_boolVal;
unsigned char m_chVal;
short m_iVal;
long m_lVal;
float m_fltVal;
double m_dblVal;
TIMESTAMP_STRUCT* m_pdate;
CString* m_pstring;
CLongBinary* m_pbinary;
CStringA* m_pstringA;
CStringW* m_pstringW;
};
// Operations
void Clear();
// Implementation
public:
virtual ~CDBVariant();
};
Class CRecordsetutilizes CDBVariant objects in three member functions: GetFieldValue,GetBookmark, and SetBookmark. For example, GetFieldValueallows you to dynamically fetch data in a column. Because the data type of thecolumn may not be known at run time, GetFieldValue uses a CDBVariantobject to store the column's data.
在三个成员函数里,CRecordset类利用CDBVariant对象。GetFieldValue, GetBookmark, and SetBookmark.比如,GetFieldValue可以动态的提取列中的数据。因为列的数据类型在运行时可能不知道,故GetFieldValue 用一个 CDBVariant对象存储列中数据。
voidGetFieldValue(
LPCTSTR lpszName, //域的名字
CDBVariant& varValue, //一个CDBVariant对象的引用,用于存储域值
short nFieldType = DEFAULT_FIELD_TYPE
);
voidGetFieldValue(
short nIndex, //域的索引,以0为基
CDBVariant& varValue,
short nFieldType = DEFAULT_FIELD_TYPE
);
voidGetFieldValue(
short nIndex,
CStringA& strValue
);
voidGetFieldValue(
short nIndex,
CStringW& strValue
);