表示 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 没有基类。
CDBVariant 与 COleVariant 相似;但是,CDBVariant 不使用 OLE。 CDBVariant 允许存储值而无需担心值的数据类型。 CDBVariant 跟踪当前值的数据类型,该值存储在联合中。
CRecordset 类在三个成员函数中使用 CDBVariant 对象:GetFieldValue、GetBookmark 和 SetBookmark。 例如,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 释放与联合指针成员关联的内存。 Clear 将 m_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 将产生不可靠的结果。