📄 在odbc 中 应 用ddx 和rfx .htm
字号:
<html><body background="di2001.jpg"><head><meta http-equiv="Content-Type" content="text/html; charset=gb_2312-80"><meta name="GENERATOR" content="Microsoft FrontPage 3.0"><title>在ODBc中应用DDX和RFX </title></head><body bgcolor="#FFFFFF"><h2 align="center"><font size="6" color="#0000FF">在ODBC 中 应 用DDX 和RFX </font></h2><div align="center"><center><table border="0" cellpadding="0" cellspacing="0" width="80%"> <tr> <td valign="top"><h3>MFC 中ODBC 类 库 简 介</h3> <p><font color="#FFFFFF">----</font> MFC 中 针 对ODBC 数 据 库 编 程 提 供 了 五 种 基 类。 这 些 类 封 装 了 有 关ODBC 的API 调 用, 使 用 户 能 够 利 用ODBC 完 成 不 同 类 型 的 数 据 库 编 程 工 作, 如 访 问Foxpro、dBASE 或Sybase 等 不 同 类 型 数 据 库 文 件, 从 而 避 开 各 种 类 型 数 据 库 文 件 的 复 杂 的 内 部 结 构。 这 五 种 基 类 是: <ul type="square"> <li>CDatabase 类 对 象 表 示 与 数 据 源 的 连 接。 用 户 正 是 基 于 此 连 接 实 现 对 数 据 源 的 操 作。 <br> </li> <li>CRecordset 类 对 象 表 示 了 从 数 据 源 中 选 出 的 一 组 记 录。 该 对 象 使 用 户 能 完 成 在 记 录 间 的 滚 动、 更 新 记 录、 对 记 录 进 行 过 滤 排 序 等 操 作。 <br> </li> <li>CRecordView 类 对 象 直 接 与 一CRecordset( 记 录 集) 类 对 象 连 接, 为 该 记 录 集 提 供 显 示 的 视 图。 它 是 数 据 库 操 作 的 界 面。 <br> </li> <li>CFieldExchange 类 支 持 数 据 库 的 字 段 交 换 过 程, 即RFX 机 制。 <br> </li> <li>CDBException 类 完 成 数 据 库 类 操 作 的 异 常 处 理。 用 户 可 根 据 其 中 公 用 成 员 变 量 的 取 值 来 分 析 出 现 错 误 的 原 因 或 显 示 出 相 应 的 文 本 信 息。</li> </ul> <p><font color="#FFFFFF">----</font> 以 下 我 们 利 用VC 中 的AppWizard 生 成 一 个 简 单 的 示 例 程 序 以 供 使 用: </p> <p><font color="#FFFFFF">----</font> 1. 选 择[File] 中 的[New], 在 弹 出 的 对 话 框 中 选 择 文 件 类 型 为[MFC AppWizard(EXE)]。 在[Project name] 中 键 入 文 件 名, 如:testodbc, 点 按[OK] 按 钮。 </p> <p><font color="#FFFFFF">----</font> 2. 在 程 序 类 型 中 选 择[Single document], 点 按[Next] 按 钮。 </p> <p><font color="#FFFFFF">----</font> 3. 在 数 据 库 支 持 中 选 择[Database view with file support], 点 按[Data source] 按 钮 进 入 数 据 库 选 择 对 话 框。 </p> <p><font color="#FFFFFF">----</font> 4. 在[Datasource] 中 选 择[ODBC], 然 后 在 下 拉 列 表 中 选 择 [Visual Foxpro Tables]。[Recordset type] 设 定 为[Snapshot]。 点 按[OK] 按 钮 选 择 数 据 库 源 文 件:test.dbf。 </p> <p><font color="#FFFFFF">----</font> 5. 选 择 了 数 据 库 源 文 件 后, 接 连 点 按[Next], 生 成 程 序 所 需 的 源 文 件。 </p> <p><font color="#FFFFFF">----</font> 此 时 生 成 以 下 各 类 及 其 对 象: <ul type="square"> <li>CAboutDlg <br> </li> <li>CMainFrame <br> </li> <li>CTestodbcApp <br> </li> <li>CTestodbcDoc <br> </li> <li>CTestodbcSet <br> </li> <li>CTestodbcView</li> </ul> <h3>RFX 简 介</h3> <p><font color="#FFFFFF">----</font> RFX 是Record Field Exchange 的 缩 写, 意 即 记 录 字 段 数 据 交 换。 它 在 用 户 选 择 的 记 录 集(Data set) 和 隐 藏 于 后 台 的 数 据 源(Data source) 之 间 建 立 对 应 关 系, 使 用 户 能 通 过 操 作 此 记 录 集 来 实 现 对 数 据 源 的 操 作。MFC 中 提 供 了 一 系 列RFX 调 用 函 数, 通 过 这 些 函 数, 可 以 随 时 在 记 录 集 和 数 据 源 之 间 进 行 数 据 交 换, 这 种 交 换 是 双 向 的。 这 些 函 数 有: </p> <pre> 函 数 数 据 类 型RFX_Bool BOOLRFX_Byte BYTERFX_Binary CByteArrayRFX_Double doubleRFX_Single floatRFX_Int intRFX_Long lonigRFX_LongBinary CLongBinaryRFX_Text CStringRFX_Date Ctime</pre> <p><font color="#FFFFFF">----</font> 它 们 大 多 有 三 个 参 数( 个 别 会 有 四 或 五 个): <ul type="square"> <li>一 个 指 向CFieldExchange 类 对 象 的 指 针; <br> </li> <li>数 据 源 中 的 一 个 字 段 名; <br> </li> <li>与 该 字 段 对 应 的 变 量 名。</li> </ul> <p><font color="#FFFFFF">----</font> 当 用AppWizard 生 成 代 码 时, 程 序 会 自 动 选 择 适 当 的 函 数 与 数 据 类 型 相 匹 配。 </p> <p><font color="#FFFFFF">----</font> 记 录 字 段 数 据 交 换 的 核 心 是CRecordset 类 中 的 虚 函 数DoFieldExchange,RFX 函 数 都 在DoFieldExchange 中 调 用, 它 为RFX 函 数 提 供 了 一 个 指 向CFieldExchange 类 对 象 的 指 针, 其 原 型 为: </p> <p><font color="#FFFFFF">----</font> virtual void DoFieldExchange(CFieldExchang
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -