实验4 ODBC编程.doc
《实验4 ODBC编程.doc》由会员分享,可在线阅读,更多相关《实验4 ODBC编程.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验3 ODBC编程1实验目的与要求(1)了解C/S结构的应用系统设计与实现的全过程。(2)学会开发工具与数据库互连的方法。(3)能使用开发工具操纵数据库。2实验环境要求(1)服务器端 SQL Server 2005(2)客户端 VC6.0(3)服务器端与客户端网络互连3实验内容利用已有的“教师授课管理数据库”,建立“教师授课管理系统”。(1)维护“教师授课管理数据库” 对“教师授课管理数据库”,检查所有的表的相关约束设置,并准备好部分数据(注意:各表中的数据必须符合约束规则)。(2)开发客户端数据库应用程序1)划分应用程序的功能模块 图书销售管理系统可以由五个模块组成,各模块的功能如下:a)
2、教师管理 教师信息查询增加教师 删除教师 修改教师信息b)学生管理 学生信息查询增加学生 删除学生 修改学生信息c)课程管理 课程信息查询增加课程 删除课程 修改课程信息d)教师授课管理 教师授课信息查询 增加教师授课信息 删除教师授课信息 修改教师授课信息e) 学生选课及成绩管理 学生选课 学生成绩录入 学生成绩查询f)数据管理数据备份数据恢复要求:列出各子功能模块所涉及到的表,并说明对表所做的操作。2)应用程序的实现各功能模块均由函数实现,在主函数中,建立一个主菜单列表,由用户选择要实现的功能,调用相应的功能函数。主函数如下:int main()int k;while(1)coutn;co
3、utn; cout *n; cout 1.教师管理n; cout 2.学生管理n; cout 3.课程管理n; cout 4.教师授课管理n; cout 5.学生选课及成绩管理n;cout 6.数据管理n; cout 7.退出n; cout *n; cout 请选择17:k;if(k=6)break;switch(t)case 1:teachermanage (); /调用教师管理函数 break;case 2: studentmanage(); /调用学生管理函数break;case 3:coursemanage(); /调用课程管理函数break;case 4:teachingmanage
4、(); /调用教师授课管理函数break;case 5:grademanage(); /调用学生选课及成绩管理函数break;case 6: datamanage(); /调用数据管理函数break; default: break;return 0;实现要求:1)每位同学至少要完成teachermanage ()、studentmanage()、coursemanage()、teachingmanage()和grademanage()五个功能模块函数中的一个的编写;2)在各功能模块中,自行设计子菜单,按不同要求完成对数据库中的数据操作:显示、查找、删除、修改等;3)与数据库的连接和断开单独用函
5、数实现。知识准备1数据库应用系统的组成数据库应用系统是以数据库为核心的信息系统,在数据库应用系统中强调数据共享与数据集成,数据库应用系统共有四个层次组成,它们分别是平台层、数据层、应用层及界面层。2数据库应用系统的开发以数据库应用系统平台为基础,并使用DBMS、中间件、开发工具(包括应用开发工具与界面开发工具)可以对数据库应用系统作开发,其开发的内容包括下面几个部分:(1)数据层开发 包括数据模式建立、数据加载、数据完整性、完全性的设置等内容。(2)应用层开发 包括应用程序编制以及与数据库接口等开发。(3)界面层开发 包括应用界面程序的编制等内容。3C/S结构方式是网络上的一种基本分布式结构方
6、式。在C/S结构模式中,它由一个服务器S(server)与多个客户机C(client)所组成,它们间由网络相联并通过接口进行交互,其简单示意图可见图6-6。服务器S客户机C客户机C客户机C图6-6 C/S结构示意图4数据库应用系统的开发工具(1)数据层开发 SQL Server 2005(2)应用层与界面层开发 VC 6.05ODBCODBC即开放式数据库互连(Open Database Connectivity)是基于关系数据库的结构化查询语言SQL而设计的,用于访问数据库的统一界面标准。它包含一组可扩展的动态链接库,提供了一个标准的数据库应用的程序设计接口,可以通过它编写对数据库进行增、删
7、、改、查和维护等操作的应用程序。 在ODBC层上的应用程序看来,各个异构关系数据库只是相当于不同的数据源,这些数据源的组织结构对于开发人员是透明的,因此可以编写独立于数据库的访问程序,在应用程序中发出SQL命令,由ODBC发给数据库,数据库再将处理结果经过ODBC返回给应用程序。 6ODBC数据源DSN(1)数据源 数据的来源和访问该数据所需的连接信息。数据的来源:一般为DBMS、电子表格以及文本文件;连接信息:包括服务器位置、数据库名称、登录ID、密码等(2)ODBC数据源 记录下列内容:连接到数据源所使用的 ODBC 驱动程序。ODBC 驱动程序连接到数据源所使用的信息。连接所使用的驱动程
8、序特有的选项。7使用ODBC编程步骤编写ODBC程序主要有一下几个步骤:(1)分配ODBC环境句柄:调用函数SQLAllocHandle,声明一个SQLHENV的变量。设置环境属性:完成环境分配后,用函数SQLSetEnvAttr设置环境属性,注册ODBC版本号。(2)分配连接句柄:调用SQLAllocHandle函数,声明一个SQLHDBC类型的变量。设置连接属性:所有连接属性都可通过函数SQLSetConnectAttr设置,调用函数SQLGetConnectAttr可获取这些连接属性的当前设置值。(3)连接数据源:对于不同的程序和用户接口,用不同的函数把连接句柄与数据库连接。SQLCon
9、nect:该函数只要提供数据源名称、用户ID和口令,就可以进行连接了。SQLDriverConnect:该函数用一个连接字符串建立至数据源的连接,它可以让用户输入必要的连接信息,使用系统中还没定义的数据源。(4)准备并执行SQL语句1)分配语句句柄:通过调用SQLAllocHandle函数分配。函数SQLGetStmrrAttr和SQLSetStmrrAttr用来获取和设置一个语句句柄的选项。2)执行SQL语句SQLExecDirect:该函数直接执行SQL语句,对于只执行一次的SQL语句来说,该函数是执行最快的方法。SQLPrepare和SQLExecute:对于需要多次执行的SQL语句来说
10、,可先调用SQLPrepare准备SQL语句的执行,用SQLExecute执行准备好的语句。3)使用参数:使用参数可以使一条SQL语句多次执行,得到不同的结果。函数SQLBindParameter负责为参数定义变量,将一段SQL语句中的一个参数标识符(?)捆绑在一起,实现参数值的传递。(5)获取结果集应用程序通过绑定(Binding)(建立结果集与用户变量的联系,使结果集中的每一列与用户申请的变量一一对应)对结果集进行操作。1)绑定列:首先必须分配与结果集中字段相对应的变量,然后通过函数SQLBindCol将记录字段同程序变量绑定在一起,对于长记录字段,可以通过调用函数SQLGetData直接
11、取回数据。绑定字段可以根据自己的需要全部绑定,也可以绑定其中的某几个字段。通过调用函数SQLBindCol将变量地址值赋为NULL,可以结束对一个记录字段的绑定,通过调用函数SQLFreeStmt,将其中选项设为SQL_UNBIND,或者直接释放句柄,都会结束所有记录字段的绑定。2)SQLFetch:该函数用于将结果集的下一行变成当前行,并把所有捆绑过的数据字段的数据拷贝到相应的缓冲区。3)游标:应用程序获取数据是通过游标(Cursor)来实现的,在ODBC中,主要有3种类型的光标:单向游标、可滚动游标和块游标。(6)记录的添加、删除和更新:数据源数据更新可通过3种方式:1)通过SQLExec
12、Direct函数使用相应的SQL语句,适用于任何ODBC数据源;2)调用SQLSetPos函数实现结果集定义更新;3)调用SQLBulkOperations函数实现数据更新,调用前,须先调用SQLFetch或SQLFetchScroll设定当前行集的位置。后两种方式有的数据源不支持,可调用SQLGetInfo确定数据源。(7)错误处理:每个ODBC API函数都能产生一系列反映操作信息的诊断记录,可以用SQLGetDiagField函数获取诊断记录中特定的域,另外,可以使用SQLGetDiagRec获取诊断记录中一些常用的域。(8)事务处理:事务提交有两种方式:自动提交模式和手动提交模式。自动
13、提交模式是默认的连接属性设置,对于所有的ODBC驱动程序都能适应这种模式下,所有语句都是作为一个独立的事务进行处理的。应用程序可通过调用函数SQLSetConnectAttr设定连接属性SQL_ATTR_AUTOCOMMIT, 手动提交模式把一组SQL语句放入一个事务中,程序必须调用函数SQLEenTran明确地终止一个事务。若使用多个激活的事务,就必须建立多个连接,每一个连接包含一个事务。(9)断开数据连接并释放环境句柄:完成数据库操作,关闭应用程序时,先调用SQLFreeHandle释放语句句柄,再调用SQLDisconnect函数关闭同数据库的连接,释放连接句柄。最后调用SQLFreeH
14、andle释放前面分配的环境,释放环境句柄。8C+与ODBC数据源的连接(1)用ODBC API编程,一般要用到以下一些函数。函数 功能SQLALLocEnv 初始化ODBC环境,返回环境句柄SQLALLocConnect 为连接句柄分配内存并返回连接句柄SQLConnect 连接一个SQL数据资源SQLDriverConnect 连接一个SQL数据资源,允许驱动器向用户询问信息SQLALLocStmt 为语句句柄分配内存并返回语句句柄SQLExecDirect 把SQL语句送到服务器SQLFetchAdvances 到结果集的下一行(或第一行)SQLGetData 从结果集的特定的一列取回数
15、据SQLFreeStmt 释放与语句句柄相关的资源SQLDisconnect 切断连接SQLFreeConnect 释放与连接句柄相关的资源SQLFreeEnv 释放与环境句柄相关的资源(2)C+中使用ODBC API的编程方法初始化ODBC,获取ODBC环境句柄SQLHENV henv=SQL_NULL_HENV; /定义环境句柄retcode = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv); /分柄环境句柄henvretcode = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验4 ODBC编程 实验 ODBC 编程
限制150内