




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第14讲基于ODBC的数据库操作 一 ODBC 1 ODBC OpenDatabaseConnectODBC是一种访问数据库的标准2 这个标准是通过一组ODBCAPI函数来实现的3 应用程序可以通过调用ODBCAPI函数操作支持ODBC的各种数据库 二 支持ODBC的数据库 1 大型的数据库如 OracleInformixSybase2 其它的如SQLServer6 5FoxproMSAccess等等3 不同厂家的数据库操作函数是不同的 给数据库的操作带来不方便4 但几乎所有的数据库都支持ODBC标准 三 ODBC的工作原理 见下图 1 有多个不同厂家数据库DB1 DB2 DB32 分别用不同的ODBC驱动程序driver1 driver2 driver33 这些ODBC驱动程序有两端接口4 一端可以直接操作各自的数据库5 另一端执行ODBC的标准 与ODBCAPI函数有连接接口 Windows应用程序 DB2 DB3 DB1 驱动程序1 驱动程序2 驱动程序3 ODBCAPI ODBC驱动程序管理器 ODBC的工作原理图 四 ODBCAPI函数 1 ODBCAPI函数有两端接口2 一端对用户是透明的 用户可以直接使用这些API函数另一端通过不同数据库数据库厂家的ODBC驱动程序driver操作数据库 五 MFC封装了ODBCAPI 应用程序可以直接使用ODBCAPI函数操作各种数据库 直接使用ODBCAPI函数操作各种数据库的工作比较复杂在MFC中有封装了ODBCAPI函数的MFC中的类4 应用程序也可以使用封装了ODBCAPI函数的MFC中的类 应用这些类可以方便的完成数据库应用程序的设计 六 封装了ODBCAPI函数的MFC中的类 1 主要有两个 CRecordSet类CDataBase类2 这两个类声明包含在头文件afxdb h中3 使用这两个类的文件要 include 七 CRecordSet类 1 CRecordSet类中封装了对Table 表 操作的各个ODBCAPI函数2 即CRecordSet类中的成员函数是对表操作的3 可以将一个Table 表 映射为CRecordset类的数据成员4 通过CRecordset类的成员函数可以操作该类的数据成员 即Table 表 八 CDataBase类 1 CDataBase类中封装了对一个数据库操作的各个ODBCAPI函数2 即CDataBase类中的成员函数是对数据库操作的3 可以将一个数据库映射为CDataBase类的数据成员4 通过CDataBase类的成员函数可以操作该数据库5 CDataBase类还支持执行SQL语句 九 例题 OdbcDemo 1 建数据库和表数据库名 odbcdata表1名为 test字段两个 a1char10 PrimaryKey a2char10 2 用MicrosoftAccess 1 在d odbc文件夹中2 新建表Test 3 建数据源 1 主要用控制面板中的ODBC数据源管理器2 也可以用其他应用程序自带的的ODBC数据源管理器3 重要的是必须有相应的数据库厂家的ODBC驱动程序driver 4 ODBC数据源管理器 1 启动ODBC数据源管理器2 选择 UserDSN 标签3 用户数据源 列表框中的是已创建的ODBC数据源4 选择 添加 按钮5 选择相应的数据库的ODBC驱动程序 MicrosoftAccessDriver mdb 4 ODBC数据源管理器 6 在ODBCConfigration的对话框中填写 DataSourceName MyMDB DSNUserID Password DatabaseName 选择一个MDB数据库文件 5 创建基于ODBC的数据库应用程序 1 用MFCAppWizard生成MFC应用程序2 在第二步时重要 whatDatabaseSupportwouldyouliketoinclude 3 提供了四种选择 None Headerfilesonly DatabaseViewWithoutfilesupport DatabaseViewWithfilesupport 5 创建基于ODBC的数据库应用程序 4 选择第三种 DatabaseViewWithoutfilesupport 5 DataSource 按钮有效6 在 Databaseoptions 对话框中 ODBC MyMDB DSN7 在 selectdatabasetables 对话框中 选择DBA test8 注意 在第六步 视类的基类是 CRecordView类 6 数据库应用程序框架 1 用Workspace的ClassView工具发现 有C App类CMainFrame类C Doc类C View类各类的作用已介绍2 增加了一个类C Set这个类由CRecordSet派生 由两各相关的文件描述 7 记录集合类C Set 1 记录集合类C Set的数据成员可以看作数据库中表Test的Map2 在这个类中的数据成员CStringm aa CStringm bb 同中表Test的字段相对应3 C Set类由CRecordSet派生 CRecordSet类包含了对数据库表的所有操作的ODBCAPI函数 8 数据库中表的一般操作过程 1 打开表2 编辑表a insertarecordb editarecordc deletearecordd 移动3 关闭表CRecordSet类包含这些对数据库表的操作函数4 C Set类管理对表的操作 9 C Doc类 在文档类中定义了一个C Set类的对象public CODBCTestSetm oDBCTestSet 10 C View类 1 在视类中定义了一个C Set类的指针public CODBCTestSet m pSet 2 voidCODBCTestView OnInitialUpdate m pSet 指针m pSet被指向了文档对象中的C Set类的对象m oDBCTestSet 11 连接数据源 1 在视类中定义了一个C Set类的指针public CODBCTestSet m pSet 2 当调用CRecordSet类的Open 函数时 连接数据源3 m pSet Open 执行这条命令时 将调用C Set类的成员函数CStringCODBCTestSet GetDefaultConnect return T ODBC DSN test 11 连接数据源 4 或者加上用户名和口令CStringCODBCTestSet GetDefaultConnect return T ODBC DSN test UID DBA PWD SQL 12 创建记录集合 1 当调用CRecordSet类的Open 函数时 连接数据源 也创建记录集合2 m pSet Open 执行这条命令时 将调用C Set类的成员函数CStringCODBCTestSet GetDefaultSQL return T DBA test 3 这个函数相当于SQL命令 select fromtest 表示选择表中的所有内容创建记录集合 13 C Set类的数据成员与记录集合的数据交换 1 通过文档类或视类可以操作C Set类的数据成员2 C Set类对象完成管理记录集合的功能 C Set类的对象可以看作一个记录指针 能够指向记录集合的一条记录 3 当指向记录集合的一条记录时 可以将这条记录的各个字段与C Set类的相应的数据成员相互交换数据4 交换通过 13 C Set类的数据成员与记录集合的数据交换 1 voidCODBCTestSet DoFieldExchange CFieldExchange pFX AFX FIELD MAP CODBCTestSet pFX SetFieldType CFieldExchange outputColumn RFX Text pFX T aa m aa RFX Text pFX T bb m bb AFX FIELD MAP 14 打开和关闭记录集合对象 通过MSDN查CRecordSet类的成员函数1 m pSet Open 2 m pSet Close 15 增加新记录 1 在当前记录集合中增加一条新记录 并将记录指针指向这条新增加的记录if m pSet CanAppend m pSet AddNew else 2 修改数据源的内容 以上操作在记录集合中增加一条新记录 但没有修改通过ODBC连接的数据源中的数据表 3 使用m pSet Update 可以完成修改数据源的内容 15 增加新记录 if m pSet IsOpen if m pSet CanAppend m pSet AddNew else m pSet Update 16 修改记录 1 同增加新记录类似if m pSet CanAppend m pSet Edit else 2 使用m pSet Update 可以完成修改数据源的内容 17 删除记录 m pSet Delete m pSet MoveNext if m pSet IsEOF m pSet MoveLast if m pSet IsBOF m pSet SetFieldNull NULL 18 CRecordView视类 1 CRecordView视类是从CFormView类派生的 称为表单视图2 它与对话框资源连接 可以对对话框资源进行可视化设计3 对话框资源进行可视化设计 19 CRecordView视类对象记录集合对象的连接 主要指CRecordView类和C Set类的连接 前面已介绍 20 用MFCClassWizard管理CRecordView类 1 同前例 21打开和关闭记录集合对象 通过MSDN查CRecordSet类的成员函数 对对话框进行编辑 能够显示数据CDialog类的成员函数 UpdateData TRUE UpdateData FALSE 表的操作过程 1 打开2 操作3 关闭help找CRecordset类的成员函数 表操作的问题 一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业园区土地租赁合同范本(含配套设施)
- 公司法务外包市场-洞察及研究
- 单招生物专业试题及答案
- 地矿专业测试题及答案大全
- 兵器专业面试题目及答案
- 医学类专业试题及答案大全
- 物业品质年终工作总结
- 消防安全消费培训课件
- 泳衣英语教学课件设计
- 信息部工作总结和计划
- 剥脱性皮炎课件
- 工程项目科技成果管理培训
- 科技论文写作教程市公开课金奖市赛课一等奖课件
- 中国古典乐器-古筝琵琶英文介绍(带翻译)课件
- 戴明环(PDCA循环)管理培训教材课件
- 塑胶场地施工方案
- 中小学高级职称英语全英答辩题
- 职业健康检查管理办法-解读课件
- 小学地方课程教案(全面完整版)
- 《非常规油气地质实验技术与应用》教学大纲
- 产生你的企业想法课件
评论
0/150
提交评论