《odbc数据库编程》PPT课件.ppt

上传人:za****8 文档编号:12668973 上传时间:2020-05-13 格式:PPT 页数:41 大小:328.01KB
返回 下载 相关 举报
《odbc数据库编程》PPT课件.ppt_第1页
第1页 / 共41页
《odbc数据库编程》PPT课件.ppt_第2页
第2页 / 共41页
《odbc数据库编程》PPT课件.ppt_第3页
第3页 / 共41页
点击查看更多>>
资源描述
第14讲基于ODBC的数据库操作,一.ODBC,1.ODBCOpenDatabaseConnectODBC是一种访问数据库的标准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类的成员函数,表操作的问题,一个表对应一个CRecordset类,数据库的操作过程,1.打开2.操作3.关闭help找CDatabase类的成员函数,CDatabase类的打开和关闭,CDatabasedatabase;if(database.IsOpen()database.Close();database.Open(NULL,FALSE,FALSE,ODBC;DSN=demo;UID=DBA;PWD=SQL;DATABASE=odbcdata);database.Close();,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!