CRecordView 和 CDaoRecordView 的对话框数据交换函数

本主题列出了用于在 CRecordsetCRecordView 窗体或 CDaoRecordsetCDaoRecordView 窗体之间交换数据的DDX_Field 函数。 DAO 用于 Access 数据库,并通过 Office 2013 提供支持。 DAO 3.6 是最终版本,被视为已过时。

注意

DDX_Field 函数与 DDX 函数类似,它们都与窗体中的控件交换数据。 但又不同于 DDX,它们与视图的关联记录集对象的字段交换数据,而不是与记录视图本身的字段交换数据。 有关详细信息,请参阅 CRecordViewCDaoRecordView 类。

DDX_Field 函数

名称 描述
DDX_FieldCBIndex 在记录集字段数据成员与 CRecordViewCDaoRecordView 组合框中当前选定内容的索引之间传输整数数据。
DDX_FieldCBString 在记录集字段数据成员与 CRecordViewCDaoRecordView 中的组合框的编辑控件之间传输 CString 数据。 将数据从记录集移动到控件时,此函数将选择组合框中以指定字符串中的字符开头的项。
DDX_FieldCBStringExact 在记录集字段数据成员与 CRecordViewCDaoRecordView 中的组合框的编辑控件之间传输 CString 数据。 将数据从记录集移动到控件时,此函数将选择组合框中与指定字符串完全匹配的项。
DDX_FieldCheck 在记录集字段数据成员与 CRecordViewCDaoRecordView 中的复选框之间传输布尔数据。
DDX_FieldLBIndex 在记录集字段数据成员与 CRecordViewCDaoRecordView 列表框中当前选定内容的索引之间传输整数数据。
DDX_FieldLBString 管理列表框控件与记录集字段数据成员之间 CString 数据的传输。 将数据从记录集移动到控件时,此函数将选择列表框中以指定字符串中的字符开头的项。
DDX_FieldLBStringExact 管理列表框控件与记录集字段数据成员之间 CString 数据的传输。 将数据从记录集移动到控件时,此函数将选择与指定字符串完全匹配的第一个项。
DDX_FieldRadio 在记录集字段数据成员与 CRecordViewCDaoRecordView 中的一组单选按钮之间传输整数数据。
DDX_FieldScroll 设置或获取 CRecordViewCDaoRecordView 中滚动条控件的滚动位置。 从 DoFieldExchange 函数调用。
DDX_FieldSlider 同步记录视图中滑块控件的 Thumb 位置以及 int 记录集的字段数据成员。
DDX_FieldText 重载的版本可用于在记录集字段数据成员和 CRecordViewCDaoRecordView 中的编辑框之间传输 int、UINT、longDWORDCStringfloatdoubleshortCOleDateTimeCOleCurrency 数据

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
CRecordViewCDaoRecordView 对象中的控件的 ID。

索引
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

注解

将数据从记录集移动到控件时,此函数会根据 index 中指定的值设置控件中的选定内容。 从记录集传输到控件时,如果记录集字段为 Null,则 MFC 会将索引的值设置为 0。 从控件传输到记录集时,如果控件为空或未选择任何项,则记录集字段设置为 0。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。

示例

有关 DDX_Field 的一般示例,请参阅 DDX_FieldTextDDX_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
CRecordViewCDaoRecordView 对象中的控件的 ID。

value
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

备注

将数据从记录集移动到控件时,此函数会将组合框中的当前选定内容设置为以 value 中指定的字符串中的字符开头的第一行。 从记录集传输到控件时,如果记录集字段为 Null,则从组合框中移除任何选定内容,组合框的编辑控件设置为空。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null(如果该字段允许)。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 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
CRecordViewCDaoRecordView 对象中的控件的 ID。

value
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

备注

将数据从记录集移动到控件时,此函数会将组合框中的当前选定内容设置为与 value 中指定的字符串完全匹配的第一行。 从记录集传输到控件时,如果记录集字段为 NULL,则从组合框中移除任何选定内容,组合框的编辑框设置为空。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 NULL。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 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
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

备注

调用 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
CRecordViewCDaoRecordView 对象中的控件的 ID。

索引
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

备注

将数据从记录集移动到控件时,此函数会根据 index 中指定的值设置控件中的选定内容。 从记录集传输到控件时,如果记录集字段为 Null,则 MFC 会将索引的值设置为 0。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 0。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 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
CRecordViewCDaoRecordView 对象中的控件的 ID。

value
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

备注

传输方向相反时,此函数会将列表框中的当前选定内容设置为以 value 指定的字符串中的字符开头的第一行。 从记录集传输到控件时,如果记录集字段为 Null,则从列表框中移除任何选定内容。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 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
CRecordViewCDaoRecordView 对象中的控件的 ID。

value
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

注解

传输方向相反时,此函数会将列表框中的当前选定内容设置为与 value 中指定的字符串完全匹配的第一行。 从记录集传输到控件时,如果记录集字段为 Null,则从列表框中移除任何选定内容。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 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
CRecordViewCDaoRecordView 对象中相邻单选按钮控件组(样式为 WS_GROUP)中第一个项的 ID。

value
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

备注

从记录集字段传输到视图时,此函数将打开第 n 个单选按钮(从零开始),并关闭其他按钮。 传输方向相反时,此函数会将记录集字段设置为当前打开(选中)的单选按钮的序号。 从记录集传输到控件时,如果记录集字段为 Null,则不选择任何按钮。 从控件传输到记录集时,如果未选择任何控件,则记录集字段设置为 Null(如果该字段允许)。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 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
CRecordViewCDaoRecordView 对象中相邻单选按钮控件组(样式为 WS_GROUP)中第一个项的 ID。

value
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。

备注

将数据从记录集移动到控件时,此函数将滚动条控件的滚动位置设置为 value 中指定的值。 从记录集传输到控件时,如果记录集字段为 Null,则滚动条控件设置为 0。 从控件传输到记录集时,如果控件为空,则记录集字段的值为 0。

如果使用基于 ODBC 的类,则使用第一个版本。 如果使用基于 DAO 的类,则使用第二个版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 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
指向与之交换数据的关联 CRecordsetCDaoRecordset 对象的指针。

注解

将数据从记录集移动到滑块时,此函数将滑块的位置设置为 value 中指定的值。 从记录集传输到控件时,如果记录集字段为 Null,则滑块控件的位置设置为 0。 从控件传输到记录集时,如果控件为空,则记录集字段的值为 0。

DDX_FieldSlider 不与能够设置范围而不仅仅是位置的滑块控件交换范围信息。

如果使用基于 ODBC 的类,则使用函数的第一个替代版本。 如果使用基于 DAO 的类,则使用第二个替代版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图。 有关滑块控件的信息,请参阅使用 CSliderCtrl

示例

有关 DDX_Field 的一般示例,请参阅 DDX_FieldText。 对 DDX_FieldSlider 的调用类似。

要求

标头:afxdao.h

DDX_FieldText

DDX_FieldText 函数管理编辑框控件与记录集字段数据成员之间 intshortlong、DWORD、CStringfloatdouble、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
CRecordViewCDaoRecordView 对象中的控件的 ID。

value
对关联的 CRecordsetCDaoRecordset 对象中字段数据成员的引用。 值的数据类型取决于使用 DDX_FieldText 的哪个重载版本。

pRecordset
指向与之交换数据的 CRecordsetCDaoRecordset 对象的指针。 此指针使 DDX_FieldText 可以检测和设置 Null 值。

备注

对于 CDaoRecordset 对象,DDX_FieldText 还管理 COleDateTimeCOleCurrency 值的传输。 空编辑框控件指示 Null 值。 从记录集传输到控件时,如果记录集字段为 Null,则编辑框设置为空。 从控件传输到记录集时,如果控件为空,则记录集字段设置为 Null。

如果使用基于 ODBC 的类,则使用带 CRecordset 参数的版本。 如果使用基于 DAO 的类,则使用带 CDaoRecordset 参数的版本。

有关 DDX 的更多信息,请参阅 对话框数据交换和验证。 有关 CRecordViewCDaoRecordView 字段的 DDX 的示例和详细信息,请参阅记录视图一文。

示例

CRecordView 的以下DoDataExchange函数包含 三种数据类型的DDX_FieldText函数调用:IDC_COURSELIST 是一个组合框; 另两个控件是编辑框。 对于 DAO 编程,m_pSet 参数是指向 CRecordsetCDaoRecordset 的指针

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

另请参阅

宏和全局函数