




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. ODBCOpen Database Connect ODBC是一种访问数据库的标准是一种访问数据库的标准2. 这个标准是通过一组这个标准是通过一组ODBC API函数来函数来实现的实现的3. 应用程序可以通过调用应用程序可以通过调用ODBC API函数函数操作支持操作支持ODBC的各种数据库的各种数据库1. 大型的数据库如大型的数据库如: Oracle Informix Sybase2. 其它的如其它的如SQL Server 6.5 Foxpro 等等等等3. 不同厂家的数据库操作函数是不同的,不同厂家的数据库操作函数是不同的,给数据库的操作带来不方便给数据库的操作带来不方便4. 但几乎
2、所有的数据库都支持但几乎所有的数据库都支持ODBC标准标准 (见下图见下图)1. 有多个不同厂家数据库有多个不同厂家数据库 DB1, DB2, DB32. 分别用不同的分别用不同的ODBC驱动程序驱动程序driver1, driver2, driver33. 这些这些ODBC驱动程序有两端接口驱动程序有两端接口4. 一端可以直接操作各自的数据库一端可以直接操作各自的数据库5. 另一端执行另一端执行ODBC的标准,与的标准,与ODBC API函数有连接接口函数有连接接口Windows应用程序应用程序DB2DB3DB1驱动程序驱动程序1驱动程序驱动程序2驱动程序驱动程序3ODBC APIODBC
3、驱动程序管理器驱动程序管理器ODBC的工作原理图的工作原理图1. ODBC API函数有两端接口函数有两端接口2. 一端对用户是透明的,用户可以直接使一端对用户是透明的,用户可以直接使用这些用这些API函数函数3.另一端通过不同数据库数据库厂家的另一端通过不同数据库数据库厂家的ODBC驱动程序驱动程序driver操作数据库操作数据库1.应用程序可以直接使用应用程序可以直接使用ODBC API函数函数操作各种数据库。操作各种数据库。2.直接使用直接使用ODBC API函数操作各种数据函数操作各种数据库的工作比较复杂库的工作比较复杂3.在在MFC中有封装了中有封装了ODBC API函数函数的的MF
4、C中的类中的类4. 应用程序也可以使用封装了应用程序也可以使用封装了ODBC API函数的函数的MFC中的类中的类,应用这些类可以方应用这些类可以方便的完成数据库应用程序的设计便的完成数据库应用程序的设计1. 主要有两个主要有两个: CRecordSet类类 CDataBase类类2. 这两个类声明包含在头文件这两个类声明包含在头文件afxdb.h中中3. 使用这两个类的文件要使用这两个类的文件要 #include 1. CRecordSet 类中类中封装了对封装了对Table(表表)操作操作的各个的各个ODBC API函数函数2. 即即CRecordSet 类中类中的成员函数是对表操的成员函
5、数是对表操作的作的3. 可以将一个可以将一个Table(表表)映射为映射为CRecordset类的数据成员类的数据成员4. 通过通过CRecordset类的成员函数可以操作类的成员函数可以操作该类的数据成员该类的数据成员(即即Table(表表)1. CDataBase 类中类中封装了对一个数据库操封装了对一个数据库操作的各个作的各个ODBC API函数函数2. 即即CDataBase类中类中的成员函数是对数据的成员函数是对数据库操作的库操作的3. 可以将一个数据库映射为可以将一个数据库映射为CDataBase类类的数据成员的数据成员4. 通过通过CDataBase类的成员函数可以操作类的成员函
6、数可以操作该数据库该数据库5. CDataBase类还支持执行类还支持执行SQL语句语句1. 建数据库和表建数据库和表 数据库名数据库名 : odbcdata 表表1名为名为: test字段两个:字段两个:a1 char 10 (Primary Key) a2 char 10 1.) 在在d:odbc文件夹中文件夹中2.)新建表新建表 TestUser ID : DBAPassword : SQL 1.) 主要用控制面板中的主要用控制面板中的ODBC数据源管理数据源管理器器2.) 也可以用其他应用程序自带的的也可以用其他应用程序自带的的ODBC数据源管理器数据源管理器3.) 重要的是必须有相应
7、的数据库厂家的重要的是必须有相应的数据库厂家的ODBC驱动程序驱动程序driver1.)启动启动ODBC数据源管理器数据源管理器2.) 选择选择“User DSN ”标签标签3.) “用户数据源用户数据源”列表框中的是已创建的列表框中的是已创建的ODBC数据源数据源4.) 选择选择“添加添加 ”按钮按钮5.)选择相应的数据库的选择相应的数据库的ODBC驱动程序驱动程序“Sybase anywhere 5.0”6.)在在ODBC Configration的对话框中填写的对话框中填写:Data Source Name: Test1User ID : DBAPassword : SQLDatabas
8、e Name: ODBC1.) 用用MFC AppWizard生成生成MFC应用程序应用程序2.)在第二步时重要:在第二步时重要: what Database Support would you like to include?3.)提供了四种选择:提供了四种选择:None:Header files only:Database View Without file support:Database View With file support:4.) 选择第三种:选择第三种:Database View Without file support:5.) “Data Source.”按钮有效按钮有效
9、6.)在在“Database options”对话框中:对话框中:ODBC: Test7.) 在在“select database tables”对话框中:对话框中:选择选择DBA.test8.)注意:在第六步,视类的基类是:注意:在第六步,视类的基类是: CRecordSet 类类1.) 用用Workspace的的ClassView工具工具发现:有发现:有 C*App类类 CMainFrame类类 C*Doc类类 C*View类类各类的作用已介绍各类的作用已介绍2. )增加了一个类增加了一个类C*Set 这个类由这个类由CRecordSet派生:派生: 由两各相关的文件描述由两各相关的文件描
10、述1.) 记录集合类记录集合类C*Set的数据成员可以看作的数据成员可以看作数据库中表数据库中表Test的的Map2.) 在这个类中的数据成员在这个类中的数据成员 CStringm_aa; CStringm_bb; 同中表同中表Test的字段相对应的字段相对应3.) C*Set类由类由CRecordSet派生:派生: CRecordSet类包含了对数据库表的所有类包含了对数据库表的所有操作的操作的 ODBC API函数函数1.) 打开表打开表2.) 编辑表编辑表a.) insert a record b.) edit a record c.) delete a record d.) 移动移动3
11、.)关闭表关闭表CRecordSet类包含这些对数据库表的操作类包含这些对数据库表的操作函数函数4.) C*Set类管理对表的操作类管理对表的操作在文档类中定义了一个在文档类中定义了一个C*Set类的对象类的对象public:CODBCTestSet m_oDBCTestSet;1.) 在视类中定义了一个在视类中定义了一个C*Set类的指针类的指针 public:CODBCTestSet* m_pSet;2.) void CODBCTestView:OnInitialUpdate() m_pSet = &GetDocument()-m_oDBCTestSet; 指针指针m_pSet被指
12、向了文档对象中的被指向了文档对象中的C*Set类的对象类的对象m_oDBCTestSet1.) 在视类中定义了一个在视类中定义了一个C*Set类的指针类的指针 public:CODBCTestSet* m_pSet;2.) 当调用当调用CRecordSet类的类的Open()函数时,连接函数时,连接数据源数据源3.) m_pSet-Open( ) ;执行这条命令时;将调用执行这条命令时;将调用C*Set类的成员函数类的成员函数CString CODBCTestSet:GetDefaultConnect()return _T(ODBC;DSN=test);4.)或者加上用户名和口令或者加上用户名
13、和口令CString CODBCTestSet:GetDefaultConnect()return _T(ODBC;DSN=test;UID=DBA;PWD=SQL);1.) 当调用当调用CRecordSet类的类的Open()函数时,连接函数时,连接数据源,也创建记录集合数据源,也创建记录集合2.) m_pSet-Open( ) ;执行这条命令时;将调用执行这条命令时;将调用C*Set类的成员函数类的成员函数CString CODBCTestSet:GetDefaultSQL()return _T(DBA.test);3.) 这个函数相当于这个函数相当于SQL命令:命令: select *
14、from test;表示选择表中的所有内容创建记录集合表示选择表中的所有内容创建记录集合1.) 通过文档类或视类可以操作通过文档类或视类可以操作C*Set类的数据类的数据成员成员2.) C*Set类对象完成管理记录集合的功能。类对象完成管理记录集合的功能。 C*Set类的对象可以看作一个记录指针,能够类的对象可以看作一个记录指针,能够指向记录集合的一条记录。指向记录集合的一条记录。3.) 当指向记录集合的一条记录时,可以将这条当指向记录集合的一条记录时,可以将这条记录的各个字段与记录的各个字段与C*Set类的相应的数据成员类的相应的数据成员相互交换数据相互交换数据4.) 交换通过交换通过1.)
15、 void CODBCTestSet: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通过通过MSDN查查CRecordSet类的成员函数类的成员函数1.) m_pSet-Open( );2.) m_pSet-Close( );1 .) 在当前记录集合中增加一条新记录,并将记在当前记录集
16、合中增加一条新记录,并将记录指针指向这条新增加的记录录指针指向这条新增加的记录if(m_pSet-CanAppend( ) m_pSet-AddNew( ); else.2.) 修改数据源的内容,以上操作在记录集合中修改数据源的内容,以上操作在记录集合中增加一条新记录,但没有修改通过增加一条新记录,但没有修改通过ODBC连接连接的数据源中的数据表。的数据源中的数据表。3.) 使用使用m_pSet-Update( )可以完成修改数据源可以完成修改数据源的内容的内容 if(m_pSet-IsOpen( ) if(m_pSet-CanAppend( ) m_pSet-AddNew( ); else.
17、m_pSet-Update( )1 .) 同增加新记录类似同增加新记录类似if(m_pSet-CanAppend( ) m_pSet-Edit( ); else.2.) 使用使用m_pSet-Update( )可以完成修改数据源可以完成修改数据源的内容的内容 m_pSet-Delete( ); m_pSet-MoveNext(); if(m_pSet-IsEOF( ) m_pSet-MoveLast(); if(m_pSet-IsBOF( ) m_pSet-SetFieldNull(NULL);1.) CRecordView视类是从视类是从CFormView类类派生的,称为表单视图派生的,称为表单视图2.) 它与对话框资源连接,可以对对话框资它与对话框资源连接,可以对对话框资源进行可视化设计源进行可视化设计3.) 对话框资源进行可视化设计对话框资源进行可视化设计主要指主要指CRecordView类和类和C*Set类的连接,前面类的连接,前面已介绍已介绍1.)同前例同前例 通过通过MSDN查查CRecordSet类的成员函数类的成员函数能够显示数据能够显示数据Cdialog类的成员函数:类的成员函数:UpdateData(TRUE);UpdateData(FALSE);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肉牛投放协议书
- 船只安全协议书
- 联勤保障协议书
- 有机肥授权销售协议书
- 碰坏东西协议书
- 继母分钱协议书
- 花园修剪协议书
- 肉鸡饲养协议书
- 地下室拆模合同协议书
- 联合展览协议书
- 水产品安全管理协议
- 大型游乐设施生产单位题库-质量安全员
- 北京版二年级下册三位数退位减法竖式计算题200道及答案
- 电子商务设计师(基础知识、应用技术)合卷软件资格考试(中级)试卷与参考答案(2025年)
- 《信息安全技术 数据交易服务安全要求》
- 《汽车电工电子基础》课件 5.2二极管及其测量
- 反射疗法师理论考试复习题及答案
- 2023版中职教材-心理健康与职业生涯-第11课-主动学习-高效学习-课件
- 2024春期国开电大本科《外国文学》在线形考(形考任务一至四)试题及答案
- 阳光雨棚制作安装合同范本
- 福建小凤鲜禽业有限公司100万羽蛋鸡养殖基地项目环境影响报告书
评论
0/150
提交评论