CRecordView 和 CDaoRecordView 的对话框数据交换函数
本主题列出了用于在 CRecordset 和 CRecordView 窗体或 CDaoRecordset 和 CDaoRecordView 窗体之间交换数据的DDX_Field 函数。 DAO 用于 Access 数据库,并通过 Office 2013 提供支持。 DAO 3.6 是最终版本,被视为已过时。
注意
DDX_Field 函数与 DDX 函数类似,它们都与窗体中的控件交换数据。 但又不同于 DDX,它们与视图的关联记录集对象的字段交换数据,而不是与记录视图本身的字段交换数据。 有关详细信息,请参阅 CRecordView
和 CDaoRecordView
类。
DDX_Field 函数
名称 | 描述 |
---|---|
DDX_FieldCBIndex | 在记录集字段数据成员与 CRecordView 或 CDaoRecordView 组合框中当前选定内容的索引之间传输整数数据。 |
DDX_FieldCBString | 在记录集字段数据成员与 CRecordView 或 CDaoRecordView 中的组合框的编辑控件之间传输 CString 数据。 将数据从记录集移动到控件时,此函数将选择组合框中以指定字符串中的字符开头的项。 |
DDX_FieldCBStringExact | 在记录集字段数据成员与 CRecordView 或 CDaoRecordView 中的组合框的编辑控件之间传输 CString 数据。 将数据从记录集移动到控件时,此函数将选择组合框中与指定字符串完全匹配的项。 |
DDX_FieldCheck | 在记录集字段数据成员与 CRecordView 或 CDaoRecordView 中的复选框之间传输布尔数据。 |
DDX_FieldLBIndex | 在记录集字段数据成员与 CRecordView 或 CDaoRecordView 列表框中当前选定内容的索引之间传输整数数据。 |
DDX_FieldLBString | 管理列表框控件与记录集字段数据成员之间 CString 数据的传输。 将数据从记录集移动到控件时,此函数将选择列表框中以指定字符串中的字符开头的项。 |
DDX_FieldLBStringExact | 管理列表框控件与记录集字段数据成员之间 CString 数据的传输。 将数据从记录集移动到控件时,此函数将选择与指定字符串完全匹配的第一个项。 |
DDX_FieldRadio | 在记录集字段数据成员与 CRecordView 或 CDaoRecordView 中的一组单选按钮之间传输整数数据。 |
DDX_FieldScroll | 设置或获取 CRecordView 或 CDaoRecordView 中滚动条控件的滚动位置。 从 DoFieldExchange 函数调用。 |
DDX_FieldSlider | 同步记录视图中滑块控件的 Thumb 位置以及 int 记录集的字段数据成员。 |
DDX_FieldText | 重载的版本可用于在记录集字段数据成员和 CRecordView 或 CDaoRecordView 中的编辑框之间传输 int 、UINT、long 、DWORD 、CString、float 、double 、short 、COleDateTime 和 COleCurrency 数据。 |
DDX_FieldCBIndex
DDX_FieldCBIndex
函数同步记录视图中组合框控件的列表框控件中选定项的索引,以及与记录视图关联的记录集的 int
字段数据成员。
void AFXAPI DDX_FieldCBIndex(
CDataExchange* pDX,
int nIDC,
int& index,
CRecordset* pRecordset);
void AFXAPI DDX_FieldCBIndex(
CDataExchange* pDX,
int nIDC,
int& index,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中的控件的 ID。
索引
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
将数据从记录集移动到控件时,此函数会根据 index 中指定的值设置控件中的选定内容。 从记录集传输到控件时,如果记录集字段为 Null,则 MFC 会将索引的值设置为 0。 从控件传输到记录集时,如果控件为空或未选择任何项,则记录集字段设置为 0。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 DDX_FieldCBIndex
的示例类似。
要求
标头:afxdao.h
DDX_FieldCBString
DDX_FieldCBString
函数管理记录视图中组合框控件的编辑控件和与记录视图关联的记录集的CString
字段数据成员之间的CString数据传输。
void AFXAPI DDX_FieldCBString(
CDataExchange* pDX,
int nIDC,
CString& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldCBString(
CDataExchange* pDX,
int nIDC,
CString& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中的控件的 ID。
value
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
将数据从记录集移动到控件时,此函数会将组合框中的当前选定内容设置为以 value 中指定的字符串中的字符开头的第一行。 从记录集传输到控件时,如果记录集字段为 Null,则从组合框中移除任何选定内容,组合框的编辑控件设置为空。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null(如果该字段允许)。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 该示例包括对 DDX_FieldCBString
的调用。
要求
标头 afxdao.h
DDX_FieldCBStringExact
DDX_FieldCBStringExact
函数管理记录视图中组合框控件的编辑控件和与记录视图关联的记录集的CString
字段数据成员之间的CString数据传输。
void AFXAPI DDX_FieldCBStringExact(
CDataExchange* pDX,
int nIDC,
CString& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldCBStringExact(
CDataExchange* pDX,
int nIDC,
CString& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中的控件的 ID。
value
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
将数据从记录集移动到控件时,此函数会将组合框中的当前选定内容设置为与 value 中指定的字符串完全匹配的第一行。 从记录集传输到控件时,如果记录集字段为 NULL,则从组合框中移除任何选定内容,组合框的编辑框设置为空。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 NULL。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 对 DDX_FieldCBStringExact
的调用类似。
要求
标头 afxdao.h
DDX_FieldCheck
DDX_FieldCheck
函数管理对话框、窗体视图或控件视图对象中的复选框控件与对话框、窗体视图或控件视图对象的 int
数据成员之间 int
数据的传输。
void AFXAPI DDX_FieldCheck(
CDataExchange* pDX,
int nIDC,
int& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldCheck(
CDataExchange* pDX,
int nIDC,
int& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
与控件属性关联的复选框控件的资源 ID。
value
对与之交换数据的对话框、窗体视图或控件视图对象的成员变量的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
调用 DDX_FieldCheck
时,value 设置为复选框控件的当前状态,或者控件状态设置为 value,具体取决于传输的方向。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。
要求
标头 afxdao.h
DDX_FieldLBIndex
DDX_FieldLBIndex
函数同步记录视图中列表框控件内选定项的索引,以及与记录视图关联的记录集的 int
字段数据成员。
void AFXAPI DDX_FieldLBIndex(
CDataExchange* pDX,
int nIDC,
int& index,
CRecordset* pRecordset);
void AFXAPI DDX_FieldLBIndex(
CDataExchange* pDX,
int nIDC,
int& index,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中的控件的 ID。
索引
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
将数据从记录集移动到控件时,此函数会根据 index 中指定的值设置控件中的选定内容。 从记录集传输到控件时,如果记录集字段为 Null,则 MFC 会将索引的值设置为 0。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 0。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。
要求
标头 afxdao.h
DDX_FieldLBString
DDX_FieldLBString
将记录视图中列表框控件的当前选定内容 复制到与记录视图关联的记录集的CString字段数据成员中。
void AFXAPI DDX_FieldLBString(
CDataExchange* pDX,
int nIDC,
CString& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldLBString(
CDataExchange* pDX,
int nIDC,
CString& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中的控件的 ID。
value
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
传输方向相反时,此函数会将列表框中的当前选定内容设置为以 value 指定的字符串中的字符开头的第一行。 从记录集传输到控件时,如果记录集字段为 Null,则从列表框中移除任何选定内容。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 对 DDX_FieldLBString
的调用类似。
要求
标头 afxdao.h
DDX_FieldLBStringExact
DDX_FieldLBStringExact
函数将记录视图中列表框控件的当前选定内容复制到与记录视图关联的记录集的 CString 字段数据成员中。
void AFXAPI DDX_FieldLBStringExact(
CDataExchange* pDX,
int nIDC,
CString& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldLBStringExact(
CDataExchange* pDX,
int nIDC,
CString& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中的控件的 ID。
value
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
注解
传输方向相反时,此函数会将列表框中的当前选定内容设置为与 value 中指定的字符串完全匹配的第一行。 从记录集传输到控件时,如果记录集字段为 Null,则从列表框中移除任何选定内容。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 对 DDX_FieldLBStringExact
的调用类似。
要求
标头 afxdao.h
DDX_FieldRadio
DDX_FieldRadio
函数将记录视图记录集的从零开始的 int
成员变量与记录视图中一组单选按钮中当前选定的单选按钮相关联。
void AFXAPI DDX_FieldRadio(
CDataExchange* pDX,
int nIDC,
int& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldRadio(
CDataExchange* pDX,
int nIDC,
int& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中相邻单选按钮控件组(样式为 WS_GROUP)中第一个项的 ID。
value
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
从记录集字段传输到视图时,此函数将打开第 n 个单选按钮(从零开始),并关闭其他按钮。 传输方向相反时,此函数会将记录集字段设置为当前打开(选中)的单选按钮的序号。 从记录集传输到控件时,如果记录集字段为 Null,则不选择任何按钮。 从控件传输到记录集时,如果未选择任何控件,则记录集字段设置为 Null(如果该字段允许)。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 对 DDX_FieldRadio
的调用类似。
要求
标头 afxdao.h
DDX_FieldScroll
DDX_FieldScroll
函数同步记录视图中滚动条控件的滚动位置以及与记录视图(或选择将其映射到的任何整数变量)关联的记录集的 int
字段数据成员。
void AFXAPI DDX_FieldScroll(
CDataExchange* pDX,
int nIDC,
int& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldScroll(
CDataExchange* pDX,
int nIDC,
int& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中相邻单选按钮控件组(样式为 WS_GROUP)中第一个项的 ID。
value
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。
备注
将数据从记录集移动到控件时,此函数将滚动条控件的滚动位置设置为 value 中指定的值。 从记录集传输到控件时,如果记录集字段为 Null,则滚动条控件设置为 0。 从控件传输到记录集时,如果控件为空,则记录集字段的值为 0。
如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 对 DDX_FieldScroll
的调用类似。
要求
标头 afxdao.h
DDX_FieldSlider
DDX_FieldSlider
函数同步记录视图中滑块控件的 Thumb 位置以及与记录视图(或选择将其映射到的任何整数变量)关联的记录集的 int
字段数据成员。
语法
void AFXAPI DDX_FieldSlider(
CDataExchange* pDX,
int nIDC,
int& value,
CRecordset* pRecordset );
void AFXAPI DDX_FieldSlider(
CDataExchange* pDX,
int nIDC,
int& value,
CDaoRecordset* pRecordset );
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
滑块控件的资源 ID。
value
对要交换的值的引用。 此参数保留或将用于设置滑块控件的当前 Thumb 位置。
pRecordset
指向与之交换数据的关联 CRecordset
或 CDaoRecordset
对象的指针。
注解
将数据从记录集移动到滑块时,此函数将滑块的位置设置为 value 中指定的值。 从记录集传输到控件时,如果记录集字段为 Null,则滑块控件的位置设置为 0。 从控件传输到记录集时,如果控件为空,则记录集字段的值为 0。
DDX_FieldSlider
不与能够设置范围而不仅仅是位置的滑块控件交换范围信息。
如果使用基于 ODBC 的类,则使用函数的第一个替代版本。 如果使用基于 DAO 的类,则使用第二个替代版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView
和 CDaoRecordView
字段的 DDX 的示例和详细信息,请参阅记录视图。 有关滑块控件的信息,请参阅使用 CSliderCtrl。
示例
有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 对 DDX_FieldSlider
的调用类似。
要求
标头:afxdao.h
DDX_FieldText
DDX_FieldText
函数管理编辑框控件与记录集字段数据成员之间 int
、short
、long
、DWORD、CString、float
、double
、BOOL 或 BYTE 数据的传输。
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
BYTE& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
int& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
UINT& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
long& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
DWORD& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
CString& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
float& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
double& value,
CRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
short& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
BOOL& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
BYTE& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
long& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
DWORD& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
CString& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
float& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
double& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
COleDateTime& value,
CDaoRecordset* pRecordset);
void AFXAPI DDX_FieldText(
CDataExchange* pDX,
int nIDC,
COleCurrency& value,
CDaoRecordset* pRecordset);
参数
pDX
指向 CDataExchange 对象的指针。 框架提供了此对象以建立数据交换的上下文,包括其方向。
nIDC
CRecordView 或 CDaoRecordView 对象中的控件的 ID。
value
对关联的 CRecordset
或 CDaoRecordset
对象中字段数据成员的引用。 值的数据类型取决于使用 DDX_FieldText
的哪个重载版本。
pRecordset
指向与之交换数据的 CRecordset 或 CDaoRecordset 对象的指针。 此指针使 DDX_FieldText
可以检测和设置 Null 值。
备注
对于 CDaoRecordset 对象,DDX_FieldText
还管理 COleDateTime 和 COleCurrency 值的传输。 空编辑框控件指示 Null 值。 从记录集传输到控件时,如果记录集字段为 Null,则编辑框设置为空。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null。
如果使用基于 ODBC 的类,则使用带 CRecordset 参数的版本。 如果使用基于 DAO 的类,则使用带 CDaoRecordset 参数的版本。
有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordView 和 CDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。
示例
CRecordView 的以下DoDataExchange
函数包含 三种数据类型的DDX_FieldText
函数调用:IDC_COURSELIST
是一个组合框; 另两个控件是编辑框。 对于 DAO 编程,m_pSet 参数是指向 CRecordset 或 CDaoRecordset 的指针。
void CMyDaoRecordView::DoDataExchange(CDataExchange* pDX)
{
CDaoRecordView::DoDataExchange(pDX);
DDX_FieldCBString(pDX, IDC_LASTNAME, m_pSet->m_LastName, m_pSet);
DDX_FieldText(pDX, IDC_ID, m_pSet->m_EmployeeID, m_pSet);
DDX_FieldText(pDX, IDC_AGE, m_pSet->m_Age, m_pSet);
}
要求
标头 afxdao.h