第7章.ppt

大学WEB数据库技术-高晗-课件PPT

收藏

资源目录
跳过导航链接。
压缩包内文档预览:(预览前20页/共112页)
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:21836127    类型:共享资源    大小:13.16MB    格式:ZIP    上传时间:2019-09-06 上传人:QQ24****1780 IP属地:浙江
25
积分
关 键 词:
大学 web 数据库技术 课件 ppt
资源描述:
大学WEB数据库技术-高晗-课件PPT,大学,web,数据库技术,课件,ppt
内容简介:
第7章 用ASP访问与操作数据库,本章学习要点,l ActiveX数据对象 l 连接对象的基本功能、方法及属性 l 记录集对象的方法、属性及集合 l 记录集对象的分页显示功能 l 命令对象的主要方法及属性 l 存储过程,7.1 ActiveX数据对象,在ASP脚本中可以通过3种方式访问数据库: l IDC(Internet Database Connector)方式。 l ADO(ActiveX Data Objects)方式。 l RDS(Remote Data Service)方式 。,(1)Internet数据库接口(IDC) IDC是一个传统的数据库查询工具,用来定义和执行数据库查询的SQL命令,并向浏览器返回一个指定数据格式的页面。虽然使用IDC访问数据库十分简单,几乎不需要编程就能实现对数据库的访问。但IDC缺乏使用上的灵活性,它只能简单地创建IDC(.idc)文件和HTML扩展文件(.htx),然后等待IDC文件被请求,分别完成数据库的访问与输出任务。因此这种方式限制了对数据库的交互控制,同时IDC还有缺少任何游标的缺点。,(2)ActiveX数据对象(ADO) 与IDC不同,用ADO访问数据库更类似于编写数据库应用程序,ADO把绝大部分的数据库操作封装在7个对象中,绝大部分的数据库访问任务都可以通过它们的组合来完成,在ASP页面中编程调用这些对象执行相应的数据库操作。ADO是ASP技术的核心之一,它集中体现了ASP技术丰富而灵活的数据库访问功能。,(3)远程数据服务(RDS) RDS是IIS 1.0中提出的概念,它是由ASP中原来的ADC(Advanced Data Connector)发展而来的。在IIS 1.0中,RDS与ADO集成到一起,使用同样的编程模型,提供访问远程数据库的功能。,ADO能够提供非常强大的数据库访问功能,但是它不支持数据远程操作(Data Remoting)。 RDS就比ADO优越,它支持数据远程操作。它不仅能执行查询并返回数据库查询结果,而且这种结果是“动态的” 。 OLE DB(Object Linking & Embedding Database)和ADO是Microsoft公司为适应网络迅速发展的需要而开发的最新数据访问编程接口。 OLE DB作为一个最新数据访问接口,除提供对关系型数据库的访问之外,还可以访问非关系型数据库和其他的一些资源,例如Excel电子表格中的数据、电子邮件等。,ActiveX数据对象描述,OLE DB用来连接各种不同的数据库。但OLE DB如何从数据库中读数据,读出的数据是什么类型,程序开发者不需要确切的了解OLE DB的内部结构,只需要知道如何利用它去连接数据库就可以了。 ADO对象通过OLE DB从对应的数据库中取得所需要的数据后,在服务器端生成相应的ASP网页后,通过Internet将用户所需的网页传送到用户浏览器中显示出来。,ADO共有7种独立的对象:,l Connection对象(连接对象):ADO的首要对象,它建立与数据源的连接并管理程序对数据的一切操作。 l Recordset对象(记录集对象):用来管理某个查询返回的记录集以及记录集中的游标。 l Field对象(列对象):代表一个记录集中的一个列。通过该对象可以取得一个记录集内不同列的值 。 l Command对象(命令对象):管理查询命令的对象。它定义将对数据源执行的命令,可以接受SQL命令、表的名称和存储过程的名称。 l Property对象(属性对象):一个ADO对象一般包含两种类型对象属性:固有属性和动态属性。 l Parameter对象(参数对象):代表SQL存储过程或有参数查询相关联的参数或自变量。 l Error对象(错误对象):代表对ADO对象操作时所发生的错误信息。,ADO的4个集合的描述如下:,l Properties集合:所有Property对象的集合。Properties集合用来保存与Connection、Command、Recordset和Field对象有关的各个Property对象。 l Parameters集合:所有Parameter对象的集合。Command对象中包含有一个Parameters集合。 l Fields集合:所有Field对象的集合。该集合关联着一个Recordset对象的所有列。记录集中返回的每一列在Fields集合中都有一个相关的Field对象。 l Errors集合:所有Error对象的集合。对ADO对象的操作可能产生一个或多个错误,每当错误发生时,就将一个或多个Error对象放置到Connection对象的Errors集合中。,图7-2说明了ADO所提供的7个对象与4个集合之间的关系。,使用ActiveX数据对象,Microsoft开发了一套用于开发数据库系统应用程序的编程接口规范(API),即ODBC,每种数据库都可以通过它提供自己的编程接口。无论对于本地数据库还是C/S或B/S数据库管理系统,只要系统中有相应的ODBC驱动程序,就可以通过ODBC与之连接并访问数据库中的信息。 在创建数据库脚本之前,必须提供一条使ADO定位、标识和与数据库通信的途径。即在ODBC中添加相应的数据库驱动程序,并创建相应的DSN。 典型情况下,数据源包含了用户安全性、数据库定位和连接参数等与数据库进行连接的信息,且可以获取Windows NT 注册表项中或文本文件的表格。,1ODBC概述,由此可见,DSN是应用程序和数据库之间的桥梁,要通过ODBC访问数据库,前提是必须配置好DSN。一个DSN必须包含以下信息: l DSN名:在程序中访问数据库时,向系统传递的名字(不是数据库实际名字)。 l ODBC驱动程序:在对数据库进行操作时,系统需要调用相应的ODBC驱动程序来提供服务。 l 要连接的数据库或数据库服务器的名称:指定要连接的数据库。不同的数据库系统用于指定名字和方法有些不同。,通过ODBC,可以选择希望创建的DSN类型用户、系统或文件。用户和系统DSN信息存储在Windows NT注册表中。系统DSN允许所有的用户登录到特定的服务器上去访问数据库,而用户DSN只能以指定的用户安全身份证明(用户名和密码)连接到指定数据库。文件DSN将连接情况存储在一个文件中,只有对该文件有访问权限的用户才能够连接到指定的数据库。在网络环境中,为了让所有用户通过ODBC访问数据库,需要创建系统DSN。,2创建和配置ODBC数据源,打开“控制面板” “管理工具” “数据源(ODBC)” ,出现“ODBC数据源管理器”属性页,选择“系统DSN”选项卡,列表框中显示该系统中已经安装的ODBC数据源的有关信息。如图7-3所示。,当要建立的数据源不存在时,就可以单击“添加”按钮,此时弹出“创建新数据源”对话框。如图7-4所示。,按照以下步骤建立ODBC数据源:,(1)设置数据源名称和服务器,(2)设置数据源身份验证,(3)设置连接数据库,(4)设置数据格式和日志,(5)完成设置并测试,在该对话框中,单击“测试数据源”按钮,弹出“SQL Server ODBC 数据源测试”对话框。当出现“测试成功”字样时,表示该数据源可用,如图7-10所示。,数据库操作的基本步骤,(1)打开连接 :ADO打开连接的主要方法是使用Connection.Open方法。另外也可以在同一个操作中调用快捷方法Recordset.Open打开连接,并在该连接上发出命令。 (2)创建命令:查询命令要求数据源返回含有所要求记录行的Recordset对象。命令通常使用SQL编写。 (3)执行命令:返回Recordset记录集的方法有3种:Connection.Execute、Command.Execute以及Recordset.Open。 (4)操作数据:大量Recordset对象方法和属性可用于对Recordset数据行进行检查、定位以及操作。,7.2 连接对象,正如在日常生活中拨打电话要经过拨号连接、会话及会话结束挂断电话一样,在对服务器端的数据库进行操作时,也必须经历类似的过程,即建立连接、会话和关闭与数据库连接。连接对象即Connection对象,就是用来建立和管理应用程序与数据源之间的连接的。通过连接对象属性和方法的调用,可以完成打开、关闭与数据库的连接,并可通过适当的命令来调用执行SQL语句或存储过程等。,创建连接对象,在使用连接对象前,必须先调用Server.CreateObject方法创建该对象。调用格式如下: ,连接对象的属性,(1)Attributes属性:定义了连接对象的事务处理方式,控制事务成功或失败后连接对象向数据库写数据的方式。 (2)CursorLocation属性:该属性取值有两个,一个是adUseClient (客户端的游标),一个是adUseServer(默认,服务器端的游标)。 (3)ConnectionString属性:用于在打开一个Connection实例之前设定数据库的连接信息. (4)ConnectionTimeOut属性:用于设定连接对象的Open方法与数据库连接的最长等待时间,默认值为15秒。 (5)CommandTimeOut属性:用于设定连接对象的Execute方法运行的最长等待时间,默认值为30秒。,(6)Provider属性:返回或设置连接对象的提供者名称。 (7)DefaultDatabase属性:设置连接对象的默认数据库名称。 (8)IsolationLevel属性:设置连接对象运行事务时机。 (9)Mode属性:设置连接的权限,诸如只读或读写。 (10)Version属性:返回ADO版本号。,连接对象的方法,(1)打开与数据库的连接 在创建连接对象后,就可以调用连接对象的Open方法来建立与数据库的连接,通常Open方法有以下3种使用方法:,DSN连接方式 直接连接数据库OLE DB Providers方式 使用ODBC连接字符串的ODBC DSN LESS 连接方式,1)DSN连接方式,直接将连接字串传给Open方法 ,利用连接对象的ConnectionString属性 ,2)直接连接数据库OLE DB Providers方式 前两种连接方法必须先用ODBC数据源管理器来建立一个数据源后方可使用。如不想建数据源,也可以使用ASP提供的直接在脚本中指定连接数据库的方法,例如:,3)使用ODBC连接字符串的ODBC DSN LESS 连接方式 为了提供向后兼容,ODBC的OLE DB 提供者还支持ODBC连接字串,例如:,(2)关闭与数据库的连接,当与数据源的连接任务完成后,应调用Close方法来关闭与数据源的连接,以便释放与该连接有关的系统资源。 在使用Close方法关闭与数据源的连接后,若要释放连接对象本身,可以给已经创建的连接对象赋值Nothing,将连接对象彻底从内存中清除。 例如: ,(3)通过打开的连接执行SQL语句 在创建连接对象并将它和一个数据库成功地建立连接后,用户可以通过连接对象的Execute方法执行SQL语句或存储过程,从而直接与数据库对话,完成对数据库的插入、更新和删除数据操作,这些操作不返回数据。语法格式如下: Conn.Execute CommandText,RecordsAffected,Option,包含表名、SQL语句或存储过程名称等的一个字符串,可选,当对数据库提出请求时所返回或影响的记录数,用来指定CommandText参 数的性质,例:将数据库表playbill中点击次数大于100的节目等级更 新为三星级,并返回被更改的节目记录数。, 100“,HowMany,adCmdText Response.Write(HowMany) MyConn.Close %,若连接对象Execute方法所运行的SQL命令或存储过程会以列为单位返回运行结果,则采用其语法格式如下: Set Recordset=conn.Execute(CommandText,RecordsAffected,Options),例:向表users中输入10个会员并返回所有会员名单。, “ RS.movenext loop MyConn.Close %,创建事务处理,事务是整体成功或失败的操作。事务处理用于对数据库进行可靠的更新。在对数据库进行许多相关更改或同时更新多个数据库时,要保证所有更改都被正确执行,如果这些更改中的任何一个失败,则都需要恢复到数据库表的原始状态,也就是说,在一次事物活动中,要么所有的操作都成功,要么所有的操作都失败,从而保证关系数据库中数据的完整性。 BeginTrans方法开始一个事务,使用CommitTrans方法提交一个事务,使用RollbackTrans方法取消一个事务。,连接对象的数据集合,连接对象提供Errors与Properties两种数据集合,前者表示连接对象运行时最近一次的错误或警告信息,后者表示连接对象所定义的相关属性。,1Errors数据集合与Error对象,在程序调试和实际运行时,难免会发生错误。使用ADO对象时发生的运行错误都收集在Errors集合中。Connenction、RecordSet和Command对象都有各自的Errors集合(使用语法为:对象名.Errors)。Errors集合无须用Set语句创建,它由系统自动创建。如果没有错误,则它是一个空集合。如果非空,则其中每个成员是一个Error对象。,(1)Errors集合,Errors集合所提供的属性和方法如下: Count属性:可用来取得Errors数据集合中所包含的Error对象的个数。 Clear方法:可用来清除Errors数据集合中所包含的所有Errors对象。 Item方法:可用来取得Errors数据集合中所包含的所有Errors对象,使之成为空集。 要获得错误对象,可用Errors集合的Item方法,语法如下: Set 对象名= XX.Errors.Item(index) 或简单地写成 Set 对象名= XX.Errors(index),(2)Error对象,Error对象是发生“运行时错误”时由系统生成的对象,是负责存储一个系统运行时所发生的错误或警告的,一个对象储存着一条错误的所有信息。Error对象没有“方法”,只有若干只读的属性,这些属性用来储存错误信息,其中最重要的属性是Description,它包含了关于该错误的描述。想要获得错误信息,可在可能发生错误的语句后面捕获和显示错误。,Error对象提供了Description属性、Number属性、Source属性、NativeError属性、SQLState属性、HelpContext属性及HelpFile属性等,其具体说明如下: Description属性:错误或警告所发生的原因或描述。 Number属性:所发生错误或警告的代码,即包含错误常量的长整型值。 Source属性:造成系统发生错误或警告的来源。在向数据源发出请求之后,如果 Errors 集合中有多个 Error 对象,则将会用到该属性。 SQLState 和 NativeError 属性:提供来自 SQL 数据源的信息。,(3)错误处理,代码执行过程中,可能因各种原因而发生错误。在ASP中,可以通过连接对象的Errors数据集合取得代码运行时所发生的错误或警告信息,其使用方法如下:,1)直接对连接对象来使用: Set Errs = Cnn.Errors 或者 Cnn.Errors 2)建立Recordset对象或Command对象后,再通过其ActiveConnection属性来使用连接对象: Set Errs = rsTest.ActiveConnection.Errors 或者 rsTest.ActiveConnection.Errors,2Properties数据集合与Property对象,前面曾经说明Connection对象、Command对象、Recordset对象与Field对象都包含一个Properties数据集合。在Properties数据集合中包含有与Connection对象、Command对象、Recordset对象及Field对象对应的Property对象。,(1)Properties数据集合 Properties数据集合所提供的方法与属性有Count属性、Refresh方法和Item方法等,具体说明如下: Count属性:获取Properties数据集合中所包含Property对象的个数。 Refresh方法:重新获取Properties数据集合中所包含的所有Property对象。 Item方法:获取Properties数据集合中所包含Property对象的个数。该方法有一个参数,表示所要取得的Property对象索引值,这个索引值通常介于0Count属性值-1之间。,(2)Property对象 Property对象是负责记录连接对象、Command对象、Recordset对象与Field对象的每一项属性值。Property对象提供了Name属性、Value属性、Type属性及Attribute属性等,具体说明如下: Name属性:对象属性的名称。 Value属性:对象属性的属性值。 Type属性:对象属性的数据类型。 Attribute属性:对象的特性,是指示特定于提供者的属性特征的长整型值。,ASP与其他数据库连接的几种方法,访问数据库时可以设置DSN数据源,然后通过数据源访问数据库。但如果数据库服务器在不能到达的地方(例如国外),没有办法设置数据源,可以采用不设置数据源(非数据源方式)而直接访问数据库。方法是:将DNS提供的信息直接写在程序中,即只需将数据源换成ODBC的连接字符串或OLE DB连接字符串,其他对记录集的操作方法完全相同。这里给出几种常用的ADO连接方式。 ODBC DSN 连接方式 ODBC DSN LESS 连接方式 OLE DB Providers方法 MS Remote方式 不同的数据库系统的具体连接代码见教材7.2.4节。,管理数据库连接,一个Web 数据库应用程序(例如为几千个客户服务的联机购物应用程序)是否能经得起考验,关键在于如何合理地管理数据库连接。即便是在没有任何信息传输时,打开并且保持数据库连接,也会严重耗费数据库服务器的资源并且可能会导致连接性问题。因此,设计良好的Web数据库应用程序将会回收数据库连接并能够补偿由于网络堵塞造成的延迟。,1使连接超时,连接活动的增长可能使数据库服务器的负担加重,大量增加建立数据库连接的时间。过长连接延时的结果是降低数据库的性能。用连接对象的ConnectionTimeout属性,可以限制放弃连接尝试并发出错误消息之前应用程序等待的时间。,2共享连接,连接共享维持打开的数据库连接并管理不同的用户共享该连接,以维持其性能和减少空闲的连接数。对每一个连接请求,连接池首先确定池中是否存在空闲的连接,如果存在,连接池返回连接而不是建立到数据库的新连接。,3使用跨页连接,尽管可以通过存储ASP的Application对象的连接来重复使用跨页连接,但没有必要始终使连接保持打开。如果有许多用户需要连接到同一个ASP数据库应用程序,一个好的方法就是将跨页连接字符串置于ASP的Application对象中,重复使用数据库连接。,4关闭连接,要想更好地使用连接池,就应尽快地关闭数据库连接。默认情况下,当脚本执行完以后,连接将被终止。当不再需要连接时将其关闭,可以减少对数据库服务器的要求并可以使其他用户能够使用该连接。 可以使用连接对象的Close方法终止连接对象与数据库之间的连接。,7.3 记录集对象,ADO中的内建对象RecordSet是数据库访问的主要接口,它指向数据表中的一个记录集,有点类似于C语言中指针的概念。在任何时刻一个Recordset对象只能指向一条记录。虽然使用Connection、Command对象也能够访问和管理返回的数据集,但与Recordset对象相比缺乏灵活性。通过Recordset对象,能够实现比较复杂的数据库管理任务。,创建Recordset对象,创建Recordset对象可用以下2种方式:,(1)在创建的Connection对象上创建Recordset对象。,程序 sample7-06.asp ,(2)直接使用Recordset对象的功能来创建Recordset对象,记录集对象的重要属性,当前记录指针可以用来标识当前记录。那么又如何处理这个指针呢?当需要移到下一条记录或者是其他记录时,是通过游标来实现的。在访问当前行的字段时,游标知道目前位于哪一行,所以能返回正确的值。如果试图移出记录集的最后一行,游标也会处理。理解游标的一种好方法是将游标想像成为一个可以在记录集内移动的窗口。这一窗口与记录集的单个行同样高、同样长,因此一次只能看到一行数据值。当移到另一条记录时,这个窗口也跟着移动。能用游标做什么是由其类型所决定的,因此该组属性十分重要,它决定了游标对数据集所能做的操作,并对游标的移动有着深刻的影响。,1Recordset对象的行为属性,(1)CursorType(游标类型)属性:该属性决定Recordset对象所使用的游标类型。游标决定了可以对一个记录集进行什么操作,还决定了其他用户可以对一个记录集进行什么样的改变。可以用下面4种不同类型的游标打开一个记录集: adOpenDynamic(动态游标) adOpenKeyset(键集游标) adOpenStatic(静态游标) adOpenFowardOnly(前向游标),程序: ,(2)LockType(锁定类型)属性:当打开记录集时,可以指定锁定类型LockType。锁定就是如何确保数据的完整性,确保更改不会被覆盖。需要避免的典型情况是多次更新,锁定类型有下面4种:,adLockReadOnly:常量值1。 adLockPessimistic:常量值2。 adLockOptimstic:常量值3。 adLockBatchOptimstic:常量值4。,程序: ,(3)Filter属性,频繁的使用SQL语句更新数据集将增大系统的负担,降低系统性能。使用Filter属性将可以方便地对Recordset对象的数据集设置过滤条件。 Filter属性的语法格式如下: Recordset.Filter=Criteria.String 其中,Criteria.String就是过滤条件字符串,它可由一个或多个用AND或OR等逻辑运算符连接的子句组成。 过滤条件使用完毕,需解除该过滤条件时,只要将空字符串赋值该Filter属性即可,如:,当一个Recordset对象打开时,从数据源中返回所需的记录数据,并将其保存在缓冲区中。用该属性指定一个Recordset对象一次可存于缓冲区中记录的数目,即从数据库服务器上一次可以取得多少个记录,默认值为1。改变该属性值为一个适当的值可以提高数据库服务器的效率。下面的脚本将CacheSize设定为6: ,(4)CacheSize属性,该属性指示通过查询返回给Recordset记录的最大数目。默认值为0,即返回所有所需的记录。 在打开Recordset前,该属性是可读写的,用MaxRecords属性可限制数据提供者从数据源返回的记录数。而Recordset打开后,该属性是只读的。,(5)MaxRecords属性,2与游标移动有关的属性,(1)BOF属性:该属性指明当前记录指针是否在首记录之前。 (2)EOF属性:该属性指明当前记录指针是否在尾记录之后。 (3)BookMark属性:当在记录集中移动时,可能需要保留记录的位置,以后再移回来。同真实的书签相似,一个记录集书签是一个指向单个记录的惟一的指针。 (4)RecordCount属性:该属性返回Recordset对象中记录的个数,为一长整型值。,(5)AbsolutePage属性:该属性可以设置或返回当前记录的绝对页号。 (6)PageCount属性:该属性用来返回Recordset对象中包含的数据页数,为一长整型值。 (7)PageSize属性:该属性定义Recordset中一页所包含的记录数,为一长整型值。 (8)AbsolutePosition属性:该属性用于设置Recordset对象当前记录的顺序位置。,3与记录排列顺序有关的属性 (1)CursorLocation属性:该属性决定Recordset对象能否被排序及CursorLocation的类型。其语法格式如下: Recordset. CursorLocation=Value 其中Value的值可以取以下两常量值: adUseServer:常量值为2。使用服务器端提供的游标,为系统默认值。若设置为该值,则Recordset对象将不能按照Sort属性进行排序。 adUseClient:常量值为3。使用客户端提供的游标。若设置为该值,就能使用Sort属性对Recordset对象进行排序,(2)Sort属性:该属性指定数据集将按哪些字段进行升序或降序排序。它可以设置或返回一个用逗号分隔的字段名排序字符串,其中的每个名称是Recordset中的Field。其语法格式如下: Recordset.Sort=SortOrder 其中,SortOrder为指定的排序字段或若干个排序关键字组成的字符串,可以使用关键词ASC指定升序排序或使用关键词DESC指定降序排序。,4与系统维护有关的属性,(1)ActiveConnection属性:该属性用来设置或返回当前活动的连接对象所使用的连接命令字符串。 (2)Source属性:该属性指示记录集对象中数据的来源,可以使用下列项之一:Command对象、SQL语句、表的名称或存储过程。 (3)State属性:该属性是只读的,可应用于所有的对象,作用是返回其对象状态是打开还是关闭的。 (4)Status属性:该属性指示有关批量更新,或其他大量操作时的Recordset对象的当前状态。,记录集对象的方法,1打开与关闭记录集对象的方法,Recordset.OpenSource,ActiveConnection,CursorType,LockType,Options,(1)打开记录集的Open方法 Open方法用来打开一个基于ActiveConnection和Source属性的Recordset,还可以用来传递打开游标所需的所有信息。 语法格式:,(2)关闭记录集的Close方法 在结束了记录集对象的操作后,可使用Close方法释放所有关联的系统资源。使用Close方法关闭记录集对象后,系统并没有将其占用的内存释放。要将对象从内存中完全删除,可将该对象变量设置为Nothing。 在使用Open方法再次打开记录集对象前,一定要先使用Close方法将其关闭,否则ADO将给出错误信息。,2有关记录移动的方法,(1)Move NumRecords方法:在记录集中向前或向后移动指定数目的记录数。 (2)MoveFirst方法:将Recordset对象中的当前记录指针移动到记录集的第一条记录上。 (3)MoveNext方法:将Recordset对象中的当前记录指针向后移动一个记录。 (4)MovePrevious方法:将Recordset对象中的当前记录指针向前移动一个记录。 (5)MoveLast方法:将Recordset对象中的当前记录指针移动到记录集的最后一条记录上。,程序: sample7-08.asp “ RS.moveprevious loop RS.Close MyConn.Close %,3编辑修改数据的方法,(1)Supports方法:为方便判别Recordset对象的当前状态,可使用Supports方法确定Recordset对象是否支持特定的功能。 (2)AddNew方法:该方法用于在数据库中添加一条新记录。 (3)Update方法:该方法用于保存对Recordset对象的当前记录所做的所有修改。 (4)CancelUpdate方法:该方法用于取消在调用Update方法前对当前记录或新记录所做的任何更改。,(5)UpdateBatch方法:如果工作在批量更新模式下,当修改了Recordset对象中的一些数据后,可以使用UpdateBatch方法将Recordset对象中的所有更改提交到连接的数据库中。 (6)CancelBatch方法:该方法将取消批次模式(batch)的数据更新动作。通常必须配合adLockBatchOptimistic的LockType属性一起使用。 (7)Delete方法:该方法用于删除当前记录或一组记录。,4记录集对象的方法,(1)NextRecordset方法:该方法清除当前Recordset对象并返回下一个记录集。 (2)Requery方法:该方法通过重新执行基于对象的查询,来更新Recordset对象中的记录数据。 (3)Resync方法:该方法从连接的数据库中刷新当前Recordset对象中的记录数据。,5记录集对象的查询方法,通过Recordset对象的Find方法,可在记录集中检索到符合条件的第一个记录,这个被找到的记录将成为当前记录。在一般的数据库应用程序中,这种查询是必不可少的,同样在网络数据库中也是一种重要的数据查询方法。 Find方法的语法格式如下: Recordset.Find Criteria,SkipRows,SearchDirection,Start,记录集对象数据集合,记录集对象提供的数据集合包括Fields数据集合与Properties数据集合等。Fields数据集合中包含Recordset对象的所有Field数据字段对象;Properties数据集合中则是包含Recordset对象的所有属性。,1Fields数据集合 Fields数据集合所提供的方法与属性有Count属性、Refresh方法与Item方法等,具体说明如下: Count属性:获取Fields数据集合中所包含的Field对象个数。 Refresh方法:重新获取Fields数据集合中所包含的所有Field对象。 Item方法:获取Fields数据集合中所包含的所有Field对象。该方法有一个参数,表示所要取得的Field对象索引值,这个索引值通常介于0Count属性值-1之间。,2Field对象 Field对象负责记录记录集对象的每一项字段相关属性,Field对象所提供的属性、方法及数据集合具体说明如下:,Name属性:对象属性的名称。 Value属性:对象属性的属性值。 Type属性:对象属性的数据类型,与Property对象的Type属性相同。 Attributes 属性和 Properties 集合:决定给定字段中哪些类型的功能可得到支持。 NumericScale:表示数据字段所被允许存储的数字个数。,Precision属性:表示数据字段所被允许的最大数字,通常表示此数据字段的有效数字。 ActualSize 属性:返回给定字段中数据的实际大小。 DefinedSize 属性:返回已声明的字段大小。 OriginalValue属性:数据字段的内容是从第一次启动或是在调用Update方法前的值。 UnderlyingValue属性:数据库中所取出来的数据与OriginalValue属性有所不同。 AppendChunk方法和GetChunk方法:处理包含长二进制或长字符数据的字段值。,记录集对象的使用,综合使用记录集对象的属性和方法可以编写出功能强大的数据库应用程序。利用记录集对象中的一些属性,可以精确地控制记录指针的行为,提高检索和更新数据的能力。尽管连接对象和命令对象简化了连接数据库和查询任务,但它们与记录集对象相比仍有许多不足。所有一般的ASP应用程序均使用记录集对象来管理检索和修改数据。由于记录集对象的AddNew、Delete、Update方法操作数据集的效率较低,推荐使用SQL语句来完成相应操作 。,1用记录集显示记录,记录集可以用来代表表中的记录。与表一样,一个记录集包含一条或多条记录(行),每个记录包括一个或多个域(字段)。在任何时刻,只有一条记录是当前记录。 要创建记录集对象的一个实例,可以使用连接对象的Execute()方法。当使用Execute()方法从一个数据库返回查询结果时,一个记录集对象就会被自动创建。例如:,2对记录集进行分页,将数据库的查询结果分页显示的方法有很多,但主要有两种: (1)将数据库中所有符合查询条件的记录一次性的都读入到recordset,存放在内存中,然后通过ADO Recordset 对象所提供的几个专门支持分页处理的属性,如PageSize(页大小)、PageCount(页数目)以及AbsolutePage(绝对页)来管理分页处理。 (2)根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。,要把一个记录集分成多个页,可以用PageSize属性指定一页中的记录个数。然后用AbsolutePage属性移动到一个特定的页。最后,用PageCount属性返回总页数。分页显示实例代码参见教材程序 sample7-11.asp。,7.4 命令对象,命令对象提供了一种简单有效的方法来处理查询或存储过程,通过该对象可以方便地查询数据库并返回记录集,并对该记录集执行有关操作。,命令对象的属性和方法,命令对象既可以利用已经创建的连接对象来创建,也可以不用先创建连接对象就直接使用命令对象,只需设置命令对象的ActiveConnection属性为一个连接字串即可,这时ADO将自动创建一个隐含的连接对象,但不会分配一个对象变量给它。因此如果多个命令对象要使用相同的连接,则应明确地创建并打开一个连接对象,这样就可将连接对象赋给该变量。,1创建命令对象,使用命令对象之前,必须先用Server.Createobject方法创建该对象。可以使用下列脚本创建命令对象: ,2命令对象的属性,(1)ActiveConnection属性:设置或返回命令对象所使用的连接对象。可以将ActiveConnection属性设置为一个已经存在并打开的连接对象,也可以为其定义一个连接使用的有效字串。 (2)CommandText属性:该属性设置数据库查询字串,并在执行命令对象的Execute方法时将该字串提交给数据提供者处理。 (3)CommandType属性:该属性定义如何使用CommandText。该属性包括adCmdText、adCmdTable、adCmdStoredProc及adCmdUnknown。,(4)CommandTimeOut属性:该属性定义命令对象终止并产生错误之前需等待的时间,默认为30秒。 (5)Prepared属性:该属性决定数据提供者在首次执行命令对象前是否保存命令的编译版本,该属性是一个布尔型值。,3命令对象的方法,(1)CreateParameter方法:该方法用来产生一个新的Parameter对象,并在执行之前加到命令对象的Parameters集合中。语法格式如下: Set Param=comm.CreateParameter(name,type,direction,size,value) (2)Execute方法:用来执行由CommandText属性值所指定的查询、SQL语句或存储过程。有以下两种格式: 按行返回的格式 Set Recordset =Command.Execute(RecordsAffected,Parameters,Options) 没有返回的格式 Command.Execute RecordsAffected,Parameters,Options,4命令对象数据集合,命令对象所提供的数据集合包括Parameters数据集合及Properties数据集合。前者表示所要传递的参数,后者表示命令对象的所有属性集合。命令对象是通过Parameter对象来传递一个参数,而Parameters数据集合则是此命令对象的所有Parameter对象的集合。,(1)Parameters数据集合,Parameters数据集合所提供的方法与属性具体说明如下:,Count属性:用来取得Parameters数据集合中所包含的Parameter对象个数。 Append方法:增加一个Parameter对象到Parameters数据集合中。 Delete方法:从Parameters数据集合中删除一个Parameter对象。 Refresh方法:重新取得Parameters数据集合中所包含的所有Parameter对象。 Item方法:获取Parameters数据集合中所包含的所有Parameter对象。该方法有一个参数,表示所要取得的Parameter对象索引值,这个索引值通常介于0Count属性值-1之间。,(2)Parameter对象 Parameter对象负责所要传递参数的相关属性,包括:Name属性、Value属性、Type属性及Attribute等属性,具体说明如下: Name属性:对象属性的名称。 Value属性:参数的设置初值。 Type属性:对象属性的数据类型,与Property对象的Type属性相同。 Attribute属性:对象的特性。,命令对象的使用,1使用命令对象执行SQL语句,用命令对象的一个实例可以返回记录集或执行一个不返回记录集的SQL命令。,程序 sample7-12.asp 100“ MyCommand.CommandType=adCMDText MyCommand.Execute MyConn.Close %,命令对象也可用来返回一个记录集。,程序 sample7-13.asp ,也可以和一个已经存在的记录集一起使用命令对象 。,程序 sample7-14.asp ,2存储过程及存储过程体的创建,存储过程(有时也称存储查询)是存储在数据库中预先定义的SQL查询语句。,(1)存储过程的优点,1)存储过程被数据库编译过,这样可以产生一个“执行计划”,因此数据库可确切地知道它将做什么,从而加快了过程的执行速度。 2)存储过程通常被数据库高速缓存,这样使它们运行得更快,因为此时不需要从磁盘中读取它们。 3)指定数据库中的表只能被存储过程修改可以确保数据更安全。,4)可以避免将ASP代码和冗长的SQL语句混在一起,从而使ASP代码更易于维护。 5)可以将所有SQL代码集中存放于服务器。 6)可以在存储过程中使用输出参数,允许返回记录集或其他的值。 7)可以在多个网页中调用同一个存储过程,这使得站点易于维护。 8)可以在存储过程中利用Transact-SQL的强大功能。,(2)存储过程的基本语法规则,1)局部变量。用于保持存储过程的中间值。 例如: DECLARE var1 integer, var2 varchar(20) SELECT var1 = 32, var2 = MyAge 2)条件语句。存储过程中提供的条件语句包括:ifelse语句和while语句。 3)goto 语句。在存储过程的执行中,语句是顺序执行的。goto语句则打破了语句的执行顺序,立即跳转去执行其他语句。,4)return语句。用于无条件的退出存储过程。return之后的任何语句都不再执行。return语句可以给调用语句返回一个值,但不能返回NULL值。SQL Server经常为存储过程返回一个状态值。如果成功地执行,则返回一个0,如果出现了错误,则返回一个为负数的错误码。 5)使用游标(CURSOR)。在需要一行一行处理时,游标十分有用。游标可以打开一个结果集合(按照指定的标准选择的行),并提供在结果集中一行一行处理的功能。基于游标的类型,可以对其进行回滚或者前进。,(3)建立新的存储过程,新建存储过程的过程和方法在第6章中已经介绍过。另外还可使用ASP脚本来创建存储过程,例如用下面程序来创建存储过程,返回节目单playbill表中节目编号(pro_id)为1的节目名称。,程序 sample7-15.asp ,3使用命令对象调用存储过程 如果想以尽可能高效的方式从会员信息表users中取出所有记录,并在ASP网页中显示会员信息,就应该使用存储过程。将存储过程的名字作为命令文本,并设置相应的类型。 在下面的程序中调用sp_myproc以显示所有会员名单。,程序 sample7-16.asp “ RS.MoveNext LOOP RS.Close MyConn.Close %,4使用返回状态值,用命令对象可以从一个存储过程得到返回状态值。例如,要统计users表中的会员总数,效率最高的方法是建立一个存储过
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大学WEB数据库技术-高晗-课件PPT
链接地址:https://www.renrendoc.com/p-21836127.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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