- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在ODBC中应用DDX及RFX在ODBC中应用DDX及RFX在ODBC中应用DDX及RFX
在 ODBC 中应用DDX 和 RFX
MFC 中ODBC 类库简介----MFC 中针对ODBC数据库编程提供了五种基类。这些类封装了有关ODBC的API调用,使用 户能够利用ODBC完成不同类型的数据库编程工作,如访 问Foxpro、dBASE 或Sybase 等不同类型数据库文件,从而避开各种类型数据库文件的复杂的内部结构。这五种基类是:
CDatabase 类对象表示与数据源的连接。用户正是基于此连接实现对数据源的操作。
CRecordset 类对象表示了从数据源中选出的一组记录。该对象使用户能完成在记录间的滚动、更新记录、对记录进行过滤排序等操作。
CRecordView 类对象直接与一CRecordset(记录集)类对象连接,为该记录集提供显示的视图。它是数据库操作的界面。
CFieldExchange 类支持数据库的字段交换过程,即RFX机制。
CDBException 类完成数据库类操作的异常处理。用户可根据其中公用成员 变量的取值来分析出现错误的原因或显示出相应的文本信息。
以下我们利用VC中的AppWizard生成一个简单的示例程序以供使用:---- 1.选择[File]中的[New],在弹出的对话框中选择文件类型为 [MFC AppWizard(EXE)]。在[Project name]中键入文件名,如: testodbc,点按[OK]按钮。---- 2.在程序类型中选择[Single document], 点按[Next]按钮。---- 3.在数据库支持中选择[Database view with file support],点按 [Data source]按钮进入数据库选择对话框。---- 4.在[Datasource]中选择[ODBC],然后在下拉列表中选择 [Visual Foxpro Tables]。[Recordset type]设定为[Snapshot]。 点按[OK]按钮选择数据库源文件:test.dbf。---- 5.选择了数据库源文件后,接连点按[Next],生成程序所需的源文件。---- 此时生成以下各类及其对象:
CAboutDlg
CMainFrame
CTestodbcApp
CTestodbcDoc
CTestodbcSet
CTestodbcView
RFX 简介----RFX 是Record Field Exchange 的缩写,意即记录字段数据交换。它在用户选择的记录集(Data set) 和隐藏于后台的数据源(Data source)之间建立对应关系,使用户能通过操作此记录集来实现对数据源的操作。MFC中提供了一系列RFX 调用函数,通过这些函数,可以随时在记录集和数据源之间进行数据交换,这种交换是双向的。这些函数有:函数 数据类型RFX_Bool BOOLRFX_Byte BYTERFX_Binary CByteArrayRFX_Double doubleRFX_Single floatRFX_Int intRFX_Long lonigRFX_LongBinary CLongBinaryRFX_Text CStringRFX_Date Ctime
----它们大多有三个参数(个别会有四或五个):
一个指向CFieldExchange 类对象的指针
数据源中的一个字段名
与该字段对应的变量名
---- 当用AppWizard生成代码时,程序会自动选择适当的函数与数据类型相匹配。
---- 记录字段数据交换的核心是CRecordset类中的虚函数DoFieldExchange,RFX函数都在DoFieldExchange中调用,它为RFX函数提供了一个指向CFieldExchange类对象的指针,其原 型为:
---- virtual void DoFieldExchange(CFieldExchang pFX);
----上文示例中生成的CTestodbcSet类是从CRecordset派生而来的,为了利用RFX机制,它声明了两个成员变量:CString m_name 和 CString m_age,分别对应数据库表文件中的[name] 和[age] 字段。在CTestodbcSet 类重载的方法DoFieldExchange(CFieldExchange * pFX)中,可以看到调用了两个RFX
文档评论(0)