数据库应用程序开发91游标.ppt_第1页
数据库应用程序开发91游标.ppt_第2页
数据库应用程序开发91游标.ppt_第3页
数据库应用程序开发91游标.ppt_第4页
数据库应用程序开发91游标.ppt_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章 数据库应用程序开发,9.1游标的管理,9.3管理系统开发实例,9.2客户端访问SQL Server的方式,主要内容,游标的概念 游标的基本操作 应用程序访问数据库的过程 ODBC数据源的配置 OLE DB接口的体系结构 利用ADO控件连接数据库的方法 基于SQL Server 2005应用开发的基本流程,9.1游标的管理,9.1.1 游标的简介及用途 1.游标的概念 游标(Cursor)是一种处理数据的方法,为了查看或者处理结果集中的数据,游标提供了在结果集中向前或者向后浏览数据的能力。我们可以把游标看成一个在记录集中的指针,通过这个指针既可以指向当前位置,又可以指向结果集中的任意位置,并且允许用户对指定位置的数据进行处理,可以把结果集中的数据放在数组、应用程序或其他位置。,2.使用游标的优点 允许程序对由查询语句SELECT返回的记录集中的每一行数据执行相同或不同的操作,而不是对整个行集合执行同一个操作; 提供对基于游标位置的行进行删除和更新的能力; 游标实际上作为面向集合的数据库管理系统和面向行的程序设计之间的桥梁,使这两种处理方式通过游标联系起来。提供脚本、存储过程和触发器中使用的用于访问结果集中数据的T-SQL语句。,1游标的声明: 格式:DECLARE cursor_nameinsensitiveSCROLLCURSOR local global static|keyset|dynamic FOR select_statement forREAD ONLY|UPDATEOF column_name_list,9.1.2游标的基本操作,2游标的创建过程 1)打开Microsoft SQL Server Manager 管理器。单击常用工具栏中的按钮,新建一个数据库查询文档,如图9.1所示。,图 9. 1 新建查询,2)在数据库引擎查询文档中输入如下代码: Use xs Declare hy1 cursor for Select * from 学生 where 性别=男 只读游标的创建: Use xs Declare hy2 cursor for Select * from 学生where 入学成绩500 For read only 更新游标的创建: Use xs Declare hy3 cursor for Select * from 学生 where 班级=计算机 For update 正确输入后,按键盘上的“F5”键执行SQL语句,显示如下提 示信息: Command(s) completed successfully。 创建游标完毕。,3游标的打开 格式:OPEN GLOBAL cursor_name|cursor_variable_name 说明: Cursor_name:要打开的游标名。 cursor_variable_name:游标变量名,该变量名是引用了的一个游标。 GLOBAL: 用来说明打开的是全局游标,省略时打开局部游标。 4游标数据的读取 创建游标并打开游标以后,利用T-SQL可以读取游标中的数据,语法格式如下: Fetch next | prior | first | last absolute n | relative n From 游标名 into 变量名,5关闭游标: 利用游标处理完数据之后,必须关闭游标,格式如下: Close 游标名称 6释放游标 游标关闭以后并没有释放游标所占用的系统资源,因此关闭游标以后,必须释放游标才能释放游标所占的系统资源,格式如下: Deallocate 游标名称,9.2 客户端访问SQL SERVER的方式,数据库应用程序是通过SQL Server 2005应用程序接口向SQL Server服务器发送SQL语句,实现数据库的访问。因此,要想访问数据库,必须学习使用SQL Server应用程序接口。 SQL SERVER 2005采用了分层的通信体系结构,把应用程序与底层的网络协议分隔开,用户可以通过数据库对象或API应用程序接口访问数据库。 应用程序采用数据库应用程序接口(API)开发。 数据库接口:是应用程序给SQL SERVER发送请求和处理 SQL SERVER返回结果的接口。,应用程序接口:数据库API定义一个应用程序如何连接到数 据库,包括两类数据库API: ODBC和OLE DB。 ODBC:是一个标准的访问数据库的编程接口,支持使用 ODBC数据对象接口写的应用程序或者组件。 OLE DB:是一个基于组件对象模型(COM)的数据库访 问接口,它支持使用OLE DB数据对象接口写的 应用程序。 数据库对象接口ADO(Active X Data Objects): 是一个在简化数据模型中封装的OLE DB API,使用ADO进行开发要比使用OLE DB开发的速度快,OLE DB是使用ADO的基础,ADO可以在VB,VC,ASP中使用。,9.2.1 ODBC接口 ODBC定义: ODBC是Open DatabaseConnectivity的英文简 写。它是一种用来在相关或不相关的DBMS中存取数 据的,用C语言实现的标准应用程序数据接口。通过 ODBC API,应用程序可以存取保存在多种不同DBMS 中的数据,而不论每个DBMS使用了何种数据存储格式 和编程接口。 在使用ODBC连接SQL Server2005数据库之前,必须在ODBC中配置SQL Server数据源。数据源存储了如何与指定数据库连接的信息,有三种类型:文件DSN、系统DSN、用户DSN。,在Windows2003的【控制面板】中的管理工具中选择【数据源(ODBC)】,如图9.7所示:,图 9.7创建数据源窗口,用户DSN:只能被当前登陆的用户管理和使用,只有创建者才能使用,只能在本地机器上运行。 系统DSN:对于同一计算机或服务器上的所有用户都可以使用。所有Windows下的应用程序都可以使用系统数据源。 文件DSN:是以文件形式储存的数据源配置,是ODBC3.0以上版本增加的一种数据源。 配置数据源的过程如下: 1点击“用户DSN”或者“系统DSN”后,点击【添加】按 钮,系统弹出如图9.8所示:,图 9.8 配置数据源,2在驱动程序中选择“SQL Server”驱动程序, 点击完成按钮,弹出图9.9。,图 9.9 配置数据源,3在名称中输入新数据源的名称,用来被应用程序使用。在描述中输入该数据源的说明文字。在服务器中选择需要连接的数据库服务器的名称。然后单击【下一步】按钮出现图9.10:图 9.10 配置数据源,图 9.10 配置数据源,4单击客户端配置可以配置客户端连接服务器使用的通讯协议和端口。在登录ID和密码中输入登录数据库的用户名和密码。单击【下一步】进入图9.11所示画面:,图 9.11 配置数据源,5更改默认数据库为当前数据库连接要访问的数据库单击【下一步】弹出图9.12: 6单击测试数据源按钮,可以看到新数据源与数据库连接是否正确。,图 912 测试数据源,9.2.2 OLE DB接口 微软定义了OLE DB用户的4个主要层次: 数据提供者:使用OLE DB SDK(软件开发工具)创建OLE DB提供者的人。提供者用户与数据库和事件交互作用,发信号通知特殊事件的发生。 数据消费者:访问数据库中信息的应用程序、系统驱动程序或者用户。 数据服务提供者:创建用以增强用户或者数据库管理员使用管理数据库能力的独立应用程序的开发者 部件开发者:创建应用程序部件或模块,以减少创建数据库应用程序所需的编码工作。如VB6.0提供的ADO组件。 一般来说,数据库应用程序即OLE DB消费者是通过OLE DB用户界面和OLE DB 提供者(Provider)来访问数据源,他们之间的关系如图9.13所示。,图 9.13 OLE DB消费者和 使用者之间的关系,对于不同的OLE DB提供者,OLE DB 提供不同级别的功能,但是他们都支持一个通用的用户界面。不同的OLE DB数据源使用自己的数据源,他们之间的关系如图9.14所示。,图 914 应用程序通过ADO 调用OLE DB的模型,9.2.3 ADO组件 Active数据对象(ActiveDataObjects):ADO实际是一种提供访问各种数据类型的连接机制。ADO设计为一种极简单的格式,通过ODBC的方法同数据库接口。可以使用任何一种ODBC数据源,即不止适合于SQLServer、Oracle、Access等数据库应用程序,也适合于Excel表格、文本文件、图形文件和无格式的数据文件。ADO是基于OLE DB之上的技术,因此ADO 通过其内部的属性和方法提供统一的数据访问接口方法。 ADO可以编写OLE DB提供者对数据库中数据访问和操作的应用程序。其特点是易于使用、性能好、占用内存小。 在ADO对象模型中,主要包括Connection、recordset、Command三个对象。其功能如下:,Connection:是ADO对象连接数据库的第一步,通过 Connection与sql server 2005数据库建立连接。 Command:通过Connection与 数据库建立连接后, Command对象承担数据库查询的任务,查询请求通过 sql语句来描述。首先指定Command 对象的 CommandString属性为sql语句字符串,然后执行数据库 查询动作,查询以后,将结果存储在recordset对象中。 Recordset:在执行数据库查询后,结果保存在recordset 对象中,然后利用程序设计语言来处理recordset对象中 的记录。 在使用recordset对象的open 方法时,可通过Cursortype 设置打开Recordset时应该使用的游标类型,其类型如下: 仅向前游标(adOpenForward) 为默认游标类型,记录集为只读,只能在记录中向前移动。,静态游标(AdOpenStatic) 记录集为只读,允许记录集向前,向后移动,但其他用户所做的添加、更改不可见。 键集游标(AdOpenKeyset) 记录集为读写,允许记录集各种类型的移动,但无法看到其他用户对数据的更改。 动态游标(AdOpenDynamic) 记录集为读写,可用于查看对数据表所做的添加、更改和删除。 1.使用ADO的简单流程: 连接数据库。 指定访问数据库的查询命令。 执行命令。 如果这个命令使数据按表中的形式返回,则将这些行存储在易于检查、操作或者更改的缓存中。,可以使用缓存行的更改内容更改数据表。 提供常规方法检测错误。 关闭数据库连接。 2利用ADO对象访问数据库的过程 VB6.0提供了ActiveX数据对象,在程序中使用ADO对象之前,首先在声明工程中引用对象库Microsoft AxtiveX Data Object Library,否则会出现类型为定义的编译错误。因为ADO对象 connection,recordset 包含在对象库中,添加步骤如下: 1)启动Visual Basic集成开发环境,然后选择工程菜单下的【引用】命令,打开引用对话框。 图 9.15 引用数据对象 2)在列表中,单击Microsoft AxtiveX Data Object 2.6 Library项目左侧的复选框如图9.15所示。单击【确定】。,图 9.15 引用数据对象,3) 利用connection对象和数据库建立连接,其方法如下: 首先声明connection对象,既可以先定义一个connection 类型的对象变量,然后建立该对象的实例,如: Dim cn AS NEW ADODB.Connection Set cn=NEW ADODB.Connection 又可以在声明的同时创建该对象的实例如: DIM cn AS NEW AODDB.Connection 4) 然后应用connectiosn对象的open方法与数据库建立连接,语法如下: Cn.open ConnectionString,userid,password 参数说明: connectionString:是一个OLE DB连接字符串。 Userid:建立数据库连接的用户名。 Password:建立连接的用户名对应的密码。,3通过Connection对象的open方法与SQL SERVER2005连接有如下两种: 1)通过ODBC数据源建立连接。 2)通过OLE DB 连接字符串连接。 4通过Connection对象的execute方法对数据库 操作 在建立数据库连接以后,可以通过Connection对象的execute方法执行在数据库中的记录的查询、修改等操作,操作的返回值是一个记录集。具体方法如下: Set rs=cn.execute(sql_str) 其中参数sql_str是一个字符串,给出要执行的数据库的sql语句或者存储过程等。,5通过Connection对象的close方法关闭数据库连接 在一次数据库操作结束之后,应该使用Connection对象的close方法关闭数据库的连接,并将这个对象变量从内存中释放。具体方法如下: Cn.close Cn=nothing,9.3 管理系统开发实例 通过前面介绍的数据库基础知识以及使用方法,下面我们来学习如何用VISUAL BASIC实现基于SQL Server 2005数据库开发。本节以一个完整的实例来进行讲解。 9.3.1 需求分析 随着学校的规模扩大,学生数量不断增加,因此学生

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论