- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 连接数据库 连接数据库的方式 ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 连接数据库的方式 ODBC(Open DataBase Connectivity) 应用程序使用ODBC API访问数据库时,是由ODBC管理器将应用程序的数据库访问请示传递给相应的数据库驱动程序,驱动程序再用SQL语句完成DBMS的访问任务。 DAO(Data Access Objects ) DAO使用Microsoft Jet提供的数据库访问对象集直接访问DBMS,速度比ODBC要快。 注册ODBC数据源 应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。 MFC ODBC的构成 ODBC管理器:位于控制面板 驱动程序管理器: ODBC32.dll ODBC驱动程序:以DLL文件形式出现 MFC的ODBC类简介 MFC的ODBC类对较复杂的ODBC API进行了封装,提供了简化的调用接口,从而大大方便了数据库应用程序的开发。程序员不必了解ODBC API和SQL的具体细节,利用ODBC类即可完成对数据库的大部分操作。 MFC的ODBC类简介 MFC的ODBC类主要包括: CDatabase类:主要功能是建立与数据源的连接。 CRecordset类:该类代表从数据源选择的一组记录(记录集),程序可以选择数据源中的某个表作为一个记录集,也可以通过对表的查询得到记录集,还可以合并同一数据源中多个表的列到一个记录集中.通过该类可对记录集中的记录进行滚动、修改、增加和删除等操作。 MFC的ODBC类简介 CRecordView类:提供了一个表单视图与某个记录集直接相连,利用对话框数据交换机制(DDX)在记录集与表单视图的控件之间传输数据。该类支持对记录的浏览和更新,在撤销时会自动关闭与之相联系的记录集。 通常情况下,CDatabase针对某个数据库,它负责连接数据源;CRecordset针对数据源中的记录集,它负责对记录的操作 CRecordset类的数据成员 CRecordset类的成员函数... CRecordset类的成员函数 数据库应用程序的实现 创建并注册数据源 创建数据库应用框架 设计记录操作界面 更新记录 排序和筛选 创建并注册数据源 ODBC管理器的使用 用户DSN 用户数据源只对当前用户可见,而且只能用于当前机器上 系统DSN 系统数据源对当前机器上的所有用户可见 文件DSN 文件数据源可以由安装了相同驱动程序的用户共享 数据源创建示例 创建数据库应用框架 AppWizard的选项设置:step 2 CExam9_1Set类 class CExam9_1Set : public CRecordset { public: CExam9_1Set(CDatabase* pDatabase = NULL); DECLARE_DYNAMIC(CExam9_1Set) // Field/Param Data //{{AFX_FIELD(CExam9_1Set, CRecordset) long m_CustomerID; CString m_LastName; CString m_FirstName; CString m_HomeCountry; CString m_HomeState; CString m_PhoneNumber; CString m_Comments; //}}AFX_FIELD // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CExam9_1Set) public: virtual CString GetDefaultConnect(); // Default connection string virtual CString GetDefaultSQL(); // default SQL for Recordset virtual void DoFieldExchange(CFieldExchange* pFX); // RFX support //}}AFX_VI
文档评论(0)