CDBVariant 类

表示 MFC ODBC 类的变量数据类型。

语法

class CDBVariant

成员

公共构造函数

名称 描述
CDBVariant::CDBVariant 构造 CDBVariant 对象。

公共方法

名称 描述
CDBVariant::Clear 清除 CDBVariant 对象。

公共数据成员

“属性” 描述
CDBVariant::m_dwType 包含当前存储值的数据类型。 键入 DWORD

公共联合成员

名称 描述
CDBVariant::m_boolVal 包含类型为 BOOL 的值
CDBVariant::m_chVal 包含类型为 unsigned char 的值。
CDBVariant::m_dblVal 包含类型为 double 的值。
CDBVariant::m_fltVal 包含类型为 float 的值。
CDBVariant::m_iVal 包含类型为 short 的值。
CDBVariant::m_lVal 包含类型为 long 的值。
CDBVariant::m_pbinary 包含指向 CLongBinary 类型对象的指针。
CDBVariant::m_pdate 包含指向 TIMESTAMP_STRUCT 类型对象的指针
CDBVariant::m_pstring 包含指向 CString 类型对象的指针。
CDBVariant::m_pstringA 存储指向 ASCII CString 对象的指针。
CDBVariant::m_pstringW 存储指向宽 CString 对象的指针。

备注

CDBVariant 没有基类。

CDBVariantCOleVariant 相似;但是,CDBVariant 不使用 OLE。 CDBVariant 允许存储值而无需担心值的数据类型。 CDBVariant 跟踪当前值的数据类型,该值存储在联合中。

CRecordset 类在三个成员函数中使用 CDBVariant 对象:GetFieldValueGetBookmarkSetBookmark。 例如,GetFieldValue 允许在列中动态提取数据。 因为在运行时可能不知道列的数据类型,所以 GetFieldValue 使用 CDBVariant 对象来存储列的数据。

继承层次结构

CDBVariant

要求

标头:afxdb.h

CDBVariant::CDBVariant

创建 NULL CDBVariant 对象。

CDBVariant();

备注

m_dwType 数据成员设置为 DBVT_NULL。

CDBVariant::Clear

调用成员函数以清除 CDBVariant 对象。

void Clear();

备注

如果 m_dwType 数据成员的值是 DBVT_DATE、DBVT_STRING,或 DBVT_BINARY,则 Clear 释放与联合指针成员关联的内存。 Clearm_dwType 设置为 DBVT_NULL。

CDBVariant 析构函数调用 Clear

CDBVariant::m_boolVal

存储 BOOL 类型的值。

备注

m_boolVal 数据成员属于联合。 在访问 m_boolVal 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_BOOL,则 m_boolVal 将包含有效值;否则,访问 m_boolVal 将产生不可靠的结果。

CDBVariant::m_chVal

存储 unsigned char 类型的值。

备注

m_chVal 数据成员属于联合。 在访问 m_chVal 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_UCHAR,则 m_chVal 包含有效值;否则,访问 m_chVal 将产生不可靠的结果。

CDBVariant::m_dblVal

存储 double 类型的值。

备注

m_dblVal 数据成员属于联合。 在访问 m_dblVal 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_DOUBLE,则 m_dblVal 包含有效值;否则,访问 m_dblVal 将产生不可靠的结果。

CDBVariant::m_dwType

此数据成员包含当前存储在 CDBVariant 对象的联合数据成员中的值的数据类型。

注解

在访问此联合之前,必须检查 m_dwType 的值以确定要访问的联合数据成员。 下表列出了 m_dwType 的可能值和相应的联合数据成员。

m_dwType 联合数据成员
DBVT_NULL 没有联合成员可访问。
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

存储 float 类型的值。

备注

m_fltVal 数据成员属于联合。 在访问 m_fltVal 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_SINGLE,则 m_fltVal 包含有效值;否则,访问 m_fltVal 将产生不可靠的结果。

CDBVariant::m_iVal

存储 short 类型的值。

备注

m_iVal 数据成员属于联合。 在访问 m_iVal 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_SHORT,则 m_iVal 包含有效值;否则,访问 m_iVal 将产生不可靠的结果。

CDBVariant::m_lVal

存储 long 类型的值。

备注

m_lVal 数据成员属于联合。 在访问 m_lVal 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_LONG,则 m_lVal 包含有效值;否则,访问 m_lVal 将产生不可靠的结果。

CDBVariant::m_pbinary

存储指向 CLongBinary 类型对象的指针。

备注

m_pbinary 数据成员属于联合。 在访问 m_pbinary 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_BINARY,则 m_pbinary 包含有效指针;否则,访问 m_pbinary 将产生不可靠的结果。

CDBVariant::m_pdate

存储指向 TIMESTAMP_STRUCT 类型对象的指针。

注解

m_pdate 数据成员属于联合。 在访问 m_pdate 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_DATE,则 m_pdate 包含有效指针;否则,访问 m_pdate 将产生不可靠的结果。

有关 TIMESTAMP_STRUCT 数据类型的详细信息,请参阅 Windows SDK 中 ODBC 程序员参考的附录 D 中的主题 C 数据类型

CDBVariant::m_pstring

存储指向 CString 类型对象的指针。

注解

m_pstring 数据成员属于联合。 在访问 m_pstring 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_STRING,则 m_pstring 包含有效指针;否则,访问 m_pstring 将产生不可靠的结果。

CDBVariant::m_pstringA

存储指向 ASCII CString 对象的指针。

备注

m_pstringA 数据成员属于联合。 在访问 m_pstringA 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_ASTRING,则 m_pstringA 包含有效指针;否则,访问 m_pstringA 将产生不可靠的结果。

CDBVariant::m_pstringW

存储指向宽 CString 对象的指针。

备注

m_pstringW 数据成员属于联合。 在访问 m_pstringW 之前,首先检查 CDBVariant::m_dwType 的值。 如果 m_dwType 设置为 DBVT_WSTRING,则 m_pstringW 包含有效指针;否则,访问 m_pstringW 将产生不可靠的结果。

另请参阅

层次结构图
CRecordset 类