- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 访问数据库和文件读写 10.1 MFC提供的数据库访问类 Visual C++的MFC类库中集成了许多ODBC类。当使用AppWizard创建一个数据库应用程序时,在该程序中就已经加入了许多不同的ODBC类,例如CDatabase、CRecordset、CRecordView、CDBException和CFieldExchange,其中最重要的是CDatabase、CRecordset、CRecordView这三个类。这些类封装了ODBC SDK函数,从而使用户可以无需了解SDK函数就可以很方便地操作支持ODBC的数据库。 10.1.1 CDatabase类 MFC CDatabase类封装了应用程序与需要访问的数据库之间的连接,控制事务的提交和执行SQL语句的方法。主要用来与一个数据源相连。 OpenEx()函数 为了创建一个新的CDatabase,并与一个数据库连接,可以建立一个新的CDatabase对象,且调用它的OpenEx()成员: virtual BOOL OpenEx(LPCTSTR lpszConnectString,DWORD dwOptions=0); Open()函数 除了OpenEx()函数,CDatabase提供了Open(), 它用同样的方式打开数据库,但使用不同的参数形式, 调用方法如下: virtual BOOL Open(LPCTSTR lpszDSN,BOOL bExclusive=FALSE, BOOL bReadOnly=FALSE, LPCTSTR lpszConnect=”ODBC”, BOOL bUseCursorLib=TRUE); Close()函数 Close()函数用来关闭数据源的连接。不管是用OpenEx()函数,还是用Open()函数打开了数据库,结束时都应该调用CDatabase::Close(),关闭对数据源的连接。 用CDatabase执行SQL语句 通过调用CDatabase::ExecuteSQL()函数,可以执行SQL语句,函数的调用格式如下: void ExecuteSQL(LPCSTR lpszSQL); 函数只带有一个参数,就是传给lpszSQL的SQL字符串,并对数据源执行该函数。这里要注意的是ExecuteSQL()函数没有返回值。如果SQL语句失败,就会出现CDBException类型的异常。 用CDatabase进行事务处理 CDatabase类可以处理数据库连接中的事务。事务允许用户把一些SQL语句作为一个单独操作执行,如果在事务中一个语句出错,那么其他语句也会停止执行。 调用CDatabase::BeginTrans()函数可以开始使用一个MFC ODBC类的事务。然后就可以调用CDatabase::ExecuteSQL()函数来执行组成这个事务的操作,或者使用从这个CDatabase中派生出的CRecordset对象执行这些操作。 10.1.2 CRecordset类 CRecordset类封装了大部分操纵数据库的方法,包括浏览、修改记录,控制游标移动,排序等操作。 在开始处理一个记录集之前,需要构建一个新的CRecordset对象,然后调用该对象的Open()成员以打开记录集。 10.1.2 CRecordset类(续) CRecordset类封装了大部分操纵数据库的方法,包括浏览、修改记录,控制游标移动,排序等操作。 在开始处理一个记录集之前,需要构建一个新的CRecordset对象,然后调用该对象的Open()成员以打开记录集。调用的格式如下: virtual BOOL Open (UNIT nOpenType=AFX_DB_USE_DEFAULT_TYPE, LPCTSTR lpszSQL=NULL, DWORD dwOptions=none); 记录集类型 CRecordset类对象提供了从数据源中提取出的记录集。CRecordset对象通常用于两种形式:动态行集(dynasets)和快照集(snapshots)。动态行集能保持与其他用户所做的更改保持同步,快照集则是数据的一个静态视图。每一种形式在记录集被打开时都提供一组记录,所不同的是,当在一个动态行集里滚动到一条记录时,由其他用户或是应用程序中的其他记录集对该记录所做的更改会相应地显示出来。 记录集内容 CRecordset::Open()中lpszSQL参数定
您可能关注的文档
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 第4章 数组.ppt
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 第5章 面向对象.ppt
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 第6章 面向对象的高级应用及C#语法新特性.ppt
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 第7章.ppt
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 第8章 程序的生成、异常处理和调试.ppt
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 第9章.ppt
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 第10章.ppt
- Visual C# 2008程序设计电子教案+习题答案+源代码曹静 习题参考答案 第六章.doc
- Visual C# 2008程序设计教程 教学课件 作者 978 7 302 26232 9 ch01.ppt
- Visual C# 2008程序设计教程 教学课件 作者 978 7 302 26232 9 ch02.ppt
- 2023咸阳职业技术学院招聘笔试真题参考答案详解.docx
- 2023四川化工职业技术学院招聘笔试真题及参考答案详解.docx
- 2023哈尔滨职业技术学院招聘笔试真题及参考答案详解.docx
- 2023商洛职业技术学院招聘笔试真题及答案详解1套.docx
- 2023呼伦贝尔职业技术学院招聘笔试真题参考答案详解.docx
- 2023南阳农业职业学院招聘笔试真题参考答案详解.docx
- 2023天津公安警官职业学院招聘笔试真题带答案详解.docx
- 2023年上海电机学院招聘笔试真题参考答案详解.docx
- 2023年四川艺术职业学院招聘笔试真题参考答案详解.docx
- 2023安徽体育运动职业技术学院招聘笔试真题及答案详解一套.docx
文档评论(0)