第11课 ASP与数据库

上传人:cel****303 文档编号:240440496 上传时间:2024-04-10 格式:PPTX 页数:56 大小:2.18MB
返回 下载 相关 举报
第11课 ASP与数据库_第1页
第1页 / 共56页
第11课 ASP与数据库_第2页
第2页 / 共56页
第11课 ASP与数据库_第3页
第3页 / 共56页
点击查看更多>>
资源描述
第第11课 ASP与数据与数据库第1页,共56页。11.1 课前导读 1.网站数据库化 2.使用ADO访问数据库 3.ADO的特点 4.例如数据库 第2页,共56页。11.1 课前导读 作为一种既易于使用又可扩展的技术,ADO可以用于向网页添加数据库访问。使用ADO编写的应用程序可以存取在Internet上任何地方的资源,例如,你可以在家里通过浏览器填写购物单,去购置远在千里之外的物品。1.网站数据库化 将网站数据库化,就是使用数据库来管理整个网站。只要更新数据库的内容,网站的内容就会被自动更新。将网站数据库化的好处如下:第3页,共56页。可以自动更新网页。采用数据库管理,只要更新数据库的数据,网页内容就会自动得到更新,过期的网页也可以被自动拿掉。加强搜寻功能。将网站的内容储存在数据库中,可以利用数据库提供的强大搜寻功能,从多个方面搜寻网站的数据。可以实现各种基于Web数据库的应用。使用者只要使用浏览器,就可以通过Internet或Intranet内部网络,存取Web数据库的数据。可以使用在学校教学、医院、商业、银行、股市、运输旅游等各种应用上。例如银行余额查询、在线购书、在线查询、在线预定机票、在线医院预约挂号、在线 费查询、在线股市买卖交易、在线学校注册选课,以及在线择友等。第4页,共56页。2.使用ADO访问数据库 目前,Microsoft对应用程序访问各种各样的数据源所使用的方法是OLE DB,OLE DB是一套组件对象模型COM接口,但它是相当复杂的。连接应用程序与OLE DB的桥梁就是ADO。可以使用ADO编写简洁和可扩展的脚本,连接到与OLE DB兼容的数据源,如数据库、电子表格、顺序数据文件或电子邮件目录。使用ADO的对象模型,可以轻松地使用VBScript或JScript等脚本语言访问这些接口,并将数据库功能添加到您的Web应用程序中。另外,还可以使用ADO访问与开放式数据库互连ODBC兼容的数据库。ADO可以使用VBScript、JavaScript脚本语言来控制数据库的存取以及输出查询结果。第5页,共56页。3.ADO的特点 ADO可以用来建造客户/效劳器构造及Web的应用,它具有以下的特点:支持批处理(Batch Updating),可以分批处理客户端提出的请求。支持存储过程(Stored Procedures),可使用in/out参数给存储过程输入及输出值,并可以取得存储过程的返回值。可以使用存储过程或批处理SQL指令,传回多组记录集的功能。第6页,共56页。4.例如数据库 虽然可以使用多种数据库系统来从事ASP网页数据 库 的 设 计,但 是 由 于 Microsoft Access属 于Microsoft Office家族,取得较为容易,且界面与Office家族一致,使用容易,因此本教程采用Microsoft Access进展网页数据库的设计。本课的例如数据库文件rsgl.mdb中包含的“职工工资表的构造见表11-1。第7页,共56页。表11-1 “职工工资表的构造字段名称字段名称类型类型必填必填字段长度字段长度索引索引部部门门文本(文本(TextText)是是6 6编编号号文本(文本(TextText)是是6 6主索引主索引姓名姓名文本(文本(TextText)是是8 8基本工基本工资资货币货币(CurrencyCurrency)否否岗岗位津位津贴贴货币货币(CurrencyCurrency)否否职务补贴职务补贴货币货币(CurrencyCurrency)否否奖奖金金货币货币(CurrencyCurrency)否否房租房租货币货币(CurrencyCurrency)否否水水电电货币货币(CurrencyCurrency)否否实发实发工工资资货币货币(CurrencyCurrency)否否第8页,共56页。11.2 课堂教学 11.2.1 ADO的概念 11.2.2 访问数据库第9页,共56页。11.2.1 ADO的概念 1.ADO对象模型 2.Connection对象 3.Command对象 4.Recordset对象第10页,共56页。1.ADO对象模型 ADO对象模型包括7个对象和3个集合,如图11-1所示。其中对象及集合的说明见表11-1。表11-1 ADO对象描述对象对象描述描述ConnectionConnection(连连接接对对象)象)用来建立数据源和用来建立数据源和ADOADO程序之程序之间间的的连连接接CommandCommand(命令(命令对对象)象)用来嵌入用来嵌入SQLSQL查询查询,包括,包括对对存存储过储过程的程的调调用用ParameterParameter(参数(参数对对象)象)用来用来传递传递参数参数给给SQLSQL查询查询,在使用存,在使用存储过储过程程时时用到用到RecordsetRecordset(记录记录集集对对象)象)用来用来浏览浏览及操作及操作实际实际数据数据库库内的数据,内的数据,这这是非常重是非常重要的一个要的一个对对象象FieldField(字段(字段对对象)象)用来取得一个用来取得一个记录记录集集(Recordset)(Recordset)内不同字段的内不同字段的值值ErrorError(错误对错误对象)象)用来返回一个数据用来返回一个数据库连库连接接(Connection)(Connection)上的上的错误错误PropertyProperty(属性(属性对对象)象)指明一个指明一个ADOADO对对象的属性象的属性第11页,共56页。表11-2 ADO集合描述集合集合描述描述ErrorsErrors所有的所有的ErrorError对对象集合。象集合。这这个集合用来响个集合用来响应应一个一个连连接接(Connection)(Connection)上的上的单单一一错误错误ParametersParameters所有的所有的ParameterParameter对对象集合。象集合。这这个集合关个集合关联联着一个着一个CommandCommand对对象象FieldsFields所有的字段所有的字段对对象集合。象集合。这这个集合关个集合关联联着一个着一个RecordsetRecordset对对象的所有象的所有字段字段PropertiesProperties所有的所有的PropertyProperty对对象集合。象集合。这这个集合关个集合关联联着着ConnectionConnection、CommandCommand、RecordsetRecordset或者或者FieldField对对象象 说明:在ADO对象模型中最为重要的对象是三个一般对象:Connection对象、Command对象和Recordset对象,通过这三个对象,可以方便地建立数据库连接,执行SQL查询及存取查询的的结果。第12页,共56页。ConnectionRecordsetCommandErrorsFieldsFieldPrametersPrametersError图11-1 ADO对象模型第13页,共56页。2.Connection对象 ASP使用ADO对各种数据源进展各种操作,其中,Connection对象是必不可少的,Connection对象可以用来在应用程序和数据库中建立一条数据传输连线,在这个根底之上可以使用Command对象及Recordse对象来对Connection对象所连接的数据库进展插入删除、更新和查询等操作。同拨打 一样,建立一个Connection对 象 就 像 是 拿 起 话 筒,翻 开 一 个Connection对象类似于拨号,而使用Command对象及Recordse对象已经是在用这条线路通话了。第14页,共56页。Connection对象的常用属性见表11-3。表11-3 Connection对象的常用属性属性属性意意义义描述描述CommandTimeoutCommandTimeout定定义义了使用了使用ExecuteExecute方法运行一条方法运行一条SQLSQL命令的最命令的最长时长时限,限,才能才能够够中断并中断并产产生生错误错误。默。默认值为认值为3030秒秒(设设定定为为0 0表示没有表示没有限制限制)ConnectionStringConnectionString设设定定连连接数据源的信息,包括、接数据源的信息,包括、PasswordPassword、UserldUserld、DataSourceDataSource、ProviderProvider等参数等参数ConnectionTimeoutConnectionTimeout定定义义了使用了使用openopen方法方法连连接数据源的最接数据源的最长长等待等待时间时间,默,默认值认值为为1515秒秒(设设定定为为0 0时时表示没有限制表示没有限制)DefaultDatabaseDefaultDatabase定定义连义连接的默接的默认认数据数据库库ModeMode建立建立连连接之前,接之前,设设定定连连接的接的读读写方式,决定是否可更改目写方式,决定是否可更改目前数据。前数据。0-0-不不设设定(默定(默认认)、)、1-1-只只读读、2-2-只写、只写、3-3-读读写写ProviderProvider设设置置连连接的数据提供者接的数据提供者(数据数据库库管理程序管理程序),默,默认值认值是是MSDASQL(MicrosotODBC For OLEDB)MSDASQL(MicrosotODBC For OLEDB)StateState读读取当前取当前链链接接对对象的状象的状态态,取,取0 0表示关表示关闭闭,1 1表示打开表示打开第15页,共56页。Connection对象的常用方法见表11-4。表11-4 Connection对象的方法及描述方法方法意意义义描述描述OpenOpen建立一个与数据源的建立一个与数据源的连连接接对对象象CloseClose关关闭闭与数据源的与数据源的连连接,并且接,并且释释放与放与连连接有关的系接有关的系统资统资源源ExecuteExecute执执行行SQLSQL命令或存命令或存储过储过程,以程,以实现实现与数据与数据库库的通的通讯讯BeginTransBeginTrans开始一个新的事开始一个新的事务务,即在内存中,即在内存中为为事事务务开辟一片内存开辟一片内存缓缓冲区冲区CommitTransCommitTrans提交事提交事务务,即把一次事,即把一次事务务中所有中所有变动变动的数据从内存的数据从内存缓缓冲区一次冲区一次性地写入硬性地写入硬盘盘,结结束当前事束当前事务务并可能开始一个新的事并可能开始一个新的事务务RollbackTransRollbackTrans回回滚滚事事务务,即取消开始此次事,即取消开始此次事务务以来以来对对数据源的所有操作,并数据源的所有操作,并结结束本次事束本次事务务操作操作 下面对局部方法进展详细说明。第16页,共56页。Open方法:建立一个与数据源的连接对象,翻开与数据源的连接。其语法格式为:Connobject.Open connectionstring,UserId,Password 其中:Connectstring为可选参数,它是一个字符串变量,包含链接的信息。用法参见Conectionstring属性。UserId为可选参数,它是一个字符串变量,包含建立连接时访问数据库使用的用户名称。Password为可选参数,它是一个字符串变量,包含建立连接时访问数据库使用的密码。第17页,共56页。Close方法:关闭与数据源的连接,并且释放与连接有关的系统资源。其语法格式为:其中:Connobject为已经创立的Connection对象。使用Close方法关闭Connection对象,但没有从内存中删除该对象。因此一个关闭的connection对象还可以用open方法翻开而不必再次创立一个connection对象。此外,在使用close方法 关 闭 连 接 时,也 将 关 闭 以 此 连 接 相 关 的 所 有 活 动 的recoordset对象。但是,与此连接相关的command对象将不受影响,只不过command对象不再参与这个连接。为了释放connection对象所占用的所有资源,可以用下面的方法:Set Connobject=nothing第18页,共56页。Execute方法:执行SQL命令或存储过程,以实现与数据库的通讯。其语法为:有返回记录的格式:Set Rs=Connobject.Execute(CommandText,ReccordAffected,Options)无返回记录的格式:Connobject.Execute CommandText,ReccordAffected,Options 其中:Rs为创立的Recordsed对象;Connobject为已经创立的Connection对象。第19页,共56页。CommandType是一个字符串,它包含一个表名,或某个将被执行的SQL语句;ReccordAffected为可选参数,返回此次操作所影响的记录数。Options为可选参数,用来指定参数的CommandText参 数 的 性 质,即 用 来 指 定 ADO如 何 解 释CommandText参数的参数值,其取值与意义见表11-5。表11-5 Options参数的取值及意义值值意义描述意义描述1 1表示被表示被执执行的字符串包含一个命令文本行的字符串包含一个命令文本2 2表示被表示被执执行的字符串包含一个表名行的字符串包含一个表名4 4表示被表示被执执行的字符串包含一个存行的字符串包含一个存储过储过程名程名8 8没有指定字符串的内容没有指定字符串的内容(这这是默是默认值认值)第20页,共56页。3.Command对象 Command对象用来定义数据库的查询动作,这个查询一般采用SQL语句,大局部数据库都会支持SQL语言解释。通过和SQL Server的查询及存储过程的良好结合,Command对象有更强大的数据库访问能力,无论是对数据库的插入、更新和删除这类无需返回结果集的操作,还是对Select查询这样需返回结果集的操作都一样简单。第21页,共56页。Command对象的常用属性见表11-6。表11-6 Command对象的属性属性属性意义描述意义描述ActiveConnectionActiveConnection定定义义了了CommandCommand对对象的象的连连接信息,用来指定当前的接信息,用来指定当前的CommandCommand对对象的操作象的操作对对象是哪个象是哪个ConnectionConnection对对象象CommandTextCommandText定定义传义传送送给给数据提供者的命令文本。它被用来数据提供者的命令文本。它被用来设设定或返回定或返回一个字符串,一个字符串,该该字符串包含一个字符串包含一个SQLSQL命令、一个表名或一命令、一个表名或一个存个存储过储过程名。默程名。默认值为认值为空字符串空字符串CommandTypeCommandType指示指示CommandTemCommandTem属性中属性中设设定的定的“命令字符串命令字符串”的的类类型型CommandTimeoutCommandTimeout用来用来设设定等候运行一条命令的最定等候运行一条命令的最长长等待等待时间时间,超,超过该时间过该时间命令命令对对象中止并象中止并产产生一个生一个错误错误。设设定定为为0 0时时表示无限期等待表示无限期等待NameName用来用来设设置和置和读读取一个取一个CommandCommand对对象的名字象的名字PreparedPrepared该该属性指示在命令被属性指示在命令被执执行前是否要用命令行前是否要用命令创创建一个建一个预备语预备语句句StateState用来用来设设置或置或读读取当前取当前CommandCommand对对象的状象的状态态是打开的或关是打开的或关闭闭的的第22页,共56页。说明:CommandType属性指示CammandText属性中设定的“命 令 字 符 串 的 类 型,即 用 来 指 ADO如 何 解 释CammandText参数的参数值,它的取值与意义与表11-5中Options参数的取值及意义一样。Command对 象 的 常 用 方 法 有 Execute方 法,用 来 运 行CommandText属性所设定的SQL查询、SQL说明命令或存储过程,以实现与数据库的通讯。其语法为:有返回记录的格式:Set Rs=Comm.Execute(RecordsAffected,Parameters,Options)第23页,共56页。无返回记录的格式:Comm.Execute RecordsAfiected.Parameters,Options 其中:Rs为创立的Recordsed对象;Comm为已经创立的Command对象。RecordAfiected为可选参数,返回此次操作所影响的记录数。Parameters为可选参数,表示一个SQL语句的参数集合。Options为可选参数,用来指定ADO如何解释CommandText参数的参数值,它的取值与意义与表11-5中Options参数的取值及意义一样。第24页,共56页。4.Recordset对象 Recordset对象对应着Command对象的查询返回结果,或者是直接建立的一个带查询的结果集。它把从数据库内查询到的结果封装在一起,并提供简单快捷的方式去访问每一条记录内每一字段的数据,在后面的章节我们会详细去了解这些方式。Recordset对象实际上是依附于Connection对象和Command对象之上的。通过建立及开启一个Connection对象,可以与我们关心的数据库建立连线;通过使用Command对象,那么可以告诉数据库我们想要做什么:是插入一条记录,还是查找符合条件的记录;通过使用Recordset对象,那么可以方便自如地操作Command对象返回的结果。这三个对象中的每个都是必要的,缺一不可。第25页,共56页。(1)Recordset对象的属性 Recordset对象的常用属性见表11-7。表11-7 Recordset对象的常用属性属性属性意意义义描述描述ActiveConnectionActiveConnection定定义义了与数据提供者的了与数据提供者的连连接信息,用来指定当前的接信息,用来指定当前的RecordSetRecordSet对对象属于哪个象属于哪个ConnectionConnection对对象象SourceSource指示指示RecordSetRecordSet对对象的数据源,可以是一个象的数据源,可以是一个commandcommand对对象名、象名、SQLSQL语语句、数据句、数据库库表或存表或存储过储过程程CursorTypeCursorType指定指定RecordSetRecordSet对对象所使用的光象所使用的光标类标类型型LockTypeLockType表示表示编辑时记录编辑时记录的的锁锁定定类类型型FilterFilter用来用来设设定一个定一个过滤过滤条件,以便条件,以便对对RecordSetRecordSet记录进记录进行行过滤过滤CacheSizeCacheSize表示一个表示一个RecordSetRecordSet对对象在高速象在高速缓缓存中的存中的记录记录数数MaxrecordsMaxrecords执执行一个行一个SQLSQL查询时查询时,返回,返回RecordSetRecordSet对对象的最大象的最大记录记录数数BofBof判断判断记录记录指指针针是否到了第一条是否到了第一条记录记录之前之前EofEof判断判断记录记录指指针针是否到了最后一条是否到了最后一条记录记录之后之后RecordCountRecordCount 返回返回RecordSetRecordSet对对象的象的记录记录数数(在使用在使用键盘键盘光光标时标时,该该属性返属性返回的可能是不太准确的数回的可能是不太准确的数值值;一般情况下,并不用;一般情况下,并不用这这种方法种方法来来统计统计RecordSetRecordSet中的中的记录记录数,因数,因为为它的性能并不它的性能并不稳稳定定)第26页,共56页。BookmarkBookmark书签标记书签标记,用来保存存当前,用来保存存当前记录记录的位置的位置AbsolutePositionAbsolutePosition用来用来设设定定RecordSetRecordSet对对象中当前象中当前记录记录的的顺顺序位置是第几行序位置是第几行记录记录PageSizePageSize表示表示RecordSetRecordSet对对象的象的页页面大小面大小(每每页页多少条多少条记录记录),默,默认值为认值为1010PageCountPageCount表示表示RecordSetRecordSet对对象的象的页页面个数面个数AbsolutePageAbsolutePage表示当前表示当前记录记录的的页页号号EditModeEditMode指示当前指示当前记录记录的的编辑编辑状状态态,0 0 已被已被编辑编辑;1 1 已被修改而未已被修改而未提交;提交;2 2 存入数据存入数据库库的新的新记录记录StatusStatus对对RecordSetRecordSet对对象象进进行批量更新后,行批量更新后,查询查询当前当前记录记录的状的状态态第27页,共56页。说明:CursorType属性指定RecordSet对象所使用的光标类型。不同的光标类型决定了对RecordSet所能做的操 作。共 有 四 种 光 标 类 型:0-前 滚 光 标(ForwardOnlyCursor),光标只能向前移动,执行效率高,是Cursor的默认值;1-键盘光标(KeysetCursor),光标可向前向后移动,RecordSet记录集同步反映自它创立后其他用户所作的修改和删除,但却不能同步反映自它创立后其他用户新增加的记录;2-动态光标(DynamicCursor),光标可向前向后移动,任何时候RecordSet记录集都同步反映其他用户的任何操作;3-静态光标(StaticCursor),光标可向前向后移动,自创立后无法同步反映其他用户所做的任何操作,它的功能简单但消耗资源少。第28页,共56页。LockType属性表示编辑时记录的锁定类型。它决定了当不止一个用户试图同时改变一个记录时,RecordSet如何处理数据记录。它的取值有:0-只读锁定,记录只读,不能更新RecordSet,为LockType的默认值;1-悲观锁定,编辑记录开场立刻锁定,直到提交给数据提供者;2-乐观锁定,一次锁定一条记录,只有调用Update方法提交数据时才锁定记录;3-乐观的批量更新,允许同时更新多条记录。第29页,共56页。Filter属性用来设定一个过滤条件,以便对RecordSet记录进展过滤。使用的优点是可以在已经存在的RecordSet对象上进一步过滤出所需的记录。但这种方式增加了系统的开销。它有两种使用方式:方式1:使用关系表达式,例如:Rs.Filter=bh 30 其 中 Rs是 已 经 创 立 的 RecordSet对 象;bh是RecordSet对象的字段数值型。第30页,共56页。方式2:使用准那么常量:0-去除以前的Filter,允许看见所有记录;1-只允许查看已修改但未提交的记录;2-允许查看最后删除、Resync、批量更新、或删除批量方式所影响的记录;3-允许查看数据库最后读取结果的数据。例如:Rs.Filter=1 可以实现更新整个批量记录之前只显示用户修改的记录,使用户在提交数据之前能够进展检查。第31页,共56页。BookMark属性用来存储当前记录的位置。并非每一个数据提供者都支持这个属性。当创立一个允许使用BookMark属性的RecordSet对象时,给每个记录都标上一个独一无二的BookMark,利用BookMark可以返回访问过的记录。Status属性对于多用户连接收理特别有用,通过该属性可以看出更新记录的失败原因。它的返回值和意义如表11-8所示。第32页,共56页。表11-8 Status属性的值和意义值值意意义义描述描述值值意意义义描述描述0 0记录记录更新成功更新成功10241024存在存在记录锁记录锁定,新定,新记录记录未保存未保存l l新新纪录纪录20482048使用使用乐观乐观并并发发事件,未保存事件,未保存2 2记录记录被修改被修改40964096用用户违户违反完整性反完整性规则规则,未保存,未保存4 4记录记录被被删删除除81928192很多待定修改,很多待定修改,记录记录未保存未保存8 8记录记录未被修改未被修改1638416384与一存与一存储对储对象相冲突,未保存象相冲突,未保存1616书签书签不合法,不合法,记录记录未保存未保存3276832768内存不内存不够够,记录记录未保存未保存6464影响多个影响多个记录记录,未保存,未保存6553665536用用户户没有足没有足够权够权限,未保存限,未保存128128指向一待定插入,指向一待定插入,记录记录未保未保存存131072131072违违反基本数据反基本数据库库原理,未保存原理,未保存256256操作被取消,操作被取消,记录记录未保存未保存262144262144记录记录已从数据源已从数据源删删除除第33页,共56页。(2)RecordSet对象的方法 RecordSet对象的方法及意义见表11-9。表11-9 RecordSet对象的方法及意义方法方法意意义义描述描述OpenOpen打开一个打开一个RecordSetRecordSet对对象象CloseClose关关闭闭一个一个RecordSetRecordSet对对象并象并释释放相关的放相关的资资源源CloneClone创创建一个建一个RecordSetRecordSet对对象的完全拷象的完全拷贝贝,但只有所用的,但只有所用的RecordSetRecordSet对对象象类类型允型允许许使用使用BookMarksBookMarks时时才能使用才能使用该该方法方法MoveFirstMoveFirst把把RecordSetRecordSet指指针针指向第一行指向第一行记录记录MoveLastMoveLast把把RecordSetRecordSet指指针针指向最后一条指向最后一条记录记录(该该RecordSetRecordSet必必须须支持支持书签书签)MovePreviousMovePrevious把把RecordSetRecordSet指指针针上移一行上移一行(使用前使用前应应判断判断BOFBOF是否是否为为真;真;该该RecordSetRecordSet必必须须支持支持书签书签)MovenextMovenext把把RecordSetRecordSet指指针针下移一行下移一行(使用前使用前应应判断判断EOFEOF是否是否为为真真)MoveMove把把RecordSetRecordSet指指针针指向指定的指向指定的记录记录GetPowsGetPows从一个从一个RecordSetRecordSet对对象象读读取一行或多行取一行或多行记录记录到一个数到一个数组组中中NextRecordSetNextRecordSet清除当前的清除当前的RecordSetRecordSet并并执执行下一条指令,以行下一条指令,以传传回下一个回下一个RecordSetRecordSet对对象,如果没有下一条指令象,如果没有下一条指令则则返回返回NothingNothing给给RecordSetRecordSet第34页,共56页。RequeryRequery重新重新执执行的行的SQLSQL查询查询操作,以更新操作,以更新RecordSetRecordSet对对象中的数据象中的数据ResyncResync从数据源更新当前的从数据源更新当前的RecordSetRecordSet记录记录,实现实现与数据源的同步与数据源的同步AddnewAddnew增加一条空增加一条空纪录纪录DeleteDelete删删除当前除当前记录记录UpdateUpdate保存当前保存当前记录记录的任何的任何变动变动CancelUpdateCancelUpdate取消前一个取消前一个UpdateUpdate方法所做的一切修改方法所做的一切修改UpdateBatchUpdateBatchRecordSetRecordSet工作在批量方式工作在批量方式时时,取消,取消对对RecordSetRecordSet的更新的更新SuportsSuports获获取取创创建的建的RecordSetRecordSet对对象的能力信息象的能力信息 说明:Open方法:翻开一个RecordSet对象。其语法格式为:Rs.OpenSource,ActiveConnection,CursorType,LockType,Option第35页,共56页。其中:Rs为已经创立的RecordSet对象;Source为可选参数,可以是一个Command对象名、SQL字符串存储过程或数据库的表名;ActiveConnection参见ActiveConnection属性;CursorType是RecordSet对象所使用的光标类型,用法参见CursorType属性;LockTypec是编辑RecordSet对象记录时所使用的锁定类型,用法参见LockType属性;Options指示数据提供者如何处理Source的内容类型,它的取值与意义见表11-5。第36页,共56页。使用Close方法关闭RecordSet对象,并不从内存中删除该对象,只是无法读取其中的数据,但仍然可以读取它的属性。因此一个关闭的ReccordSet对象还可以用Open方法翻开并保持其原有属性。如果正在进展编辑更新数据的操作,在调用Close方法前必须先调用Update或CancelUpdate方法,否那么将会出现错误。如果以批量模式更新数据记录(Reccordset的LockType属性设为3),那么对缓冲区数据的修改将全部丧失。另外,使用Clone方法复制一个已经翻开的RecordSet对象,调用Close方法不影响任何复制的RecordSet对象。用下面的命令可以释放RecordSet对象所占用的所有资源:set Rs=nothing第37页,共56页。Move方法用于把记录指针指向指定的记录。其语法格式为:Move n,start 其中n为要移动的记录数,取正时表示向前(下)移动,取负时表示向后(上)移动;start是可选参数,表示移动的起点。使用Move、MoveFirst、MoveLast、MovePrevious、MoveNext方法移动记录指针时,需要注意RecordSet对象的光标类型。如“前滚光标限制了记录指针只能向前移动。第38页,共56页。GetRows方法从一个RecordSet对象读取一行或多行记录到一个数组中,一般用来读取大量的数据。其语法格式为:Myarray=Rs.GetRows(rows,start,fields)其中Myarray为目标数组名;Rs为已经创立的RecordSet对象;Rows为返回数组的行数;start为读取数据的起点(书签);Fields为RecordSet的字段。AddNew方法用于增加一条空纪录。调用该方法时在RecordSet对象中增加一个新行,并将指针移到行首以准备保存新数据。该方法一般和Update方法相搭配共同完成数据更新的任务。不过这种方法很消耗资源、效率最低,最好用SQL语句来实现数据更新。第39页,共56页。Delete方法用于删除当前记录。当RecordSet工作在批量方式时,可实现批量删除。不过该方法非常消耗系统资源,效率非常低。其语法格式为:Delete value 其中value=1默认值表示该方法只删除当前记录;value=2表示该方法删除所有由Filter属性设定的记录。第40页,共56页。11.2.2 访问数据库 1.连接到数据源 2.使用Recordset对象处理结果第41页,共56页。1.连接到数据源 (1)创立连接字符串 创立Web数据应用程序的第一步是为ADO提供一种定位并标识数据源的方法。这一步通过“连接字符串实现。连接字符串是一系列用分号分隔的参数,用于定义诸如数据源提供程序和数据源位置等参数。ADO使用连接字符串标识OLE DB提供程序并将提供程序指向数据源。提供程序是一个组件,用来描述数据源并以行集合的形式将信息展示给应用程序。第42页,共56页。表11-10列出了几种通用数据源的OLE DB连接字符串。表11-10 常用的通用数据源的OLE DB连接字符串数据源数据源OLE DBOLE DB连接字符串连接字符串Microsoft AccessMicrosoft AccessProvider=Microsoft.Jet.OLEDB.4.0;Source=Provider=Microsoft.Jet.OLEDB.4.0;Source=指向指向.mdb.mdb文件的文件的物理路径物理路径Microsoft SQL Microsoft SQL ServerServerProvider=SQLOLEDB.1;Source=Provider=SQLOLEDB.1;Source=指向服指向服务务器上数据器上数据库库的路径的路径OracleOracleProvider=MSDAORA.1;Source=Provider=MSDAORA.1;Source=指向服指向服务务器上数据器上数据库库的路径的路径Microsoft Indexing Microsoft Indexing ServiceServiceProvider=MSIDXS.1;Source=Provider=MSIDXS.1;Source=指向文件的路径指向文件的路径 为了向后兼容性,ODBC的OLE DB提供程序支持ODBC连接字符串语法。表11-11列出了常用的ODBC连接字符串。第43页,共56页。表11-11 常用的ODBC连接字符串数据源驱动程序数据源驱动程序ODBCODBC连接字符串连接字符串Microsoft AccessMicrosoft AccessDriver=Microsoft Access Driver(*.mdb);DBQ=Driver=Microsoft Access Driver(*.mdb);DBQ=指向指向.mdb.mdb文文件的物理路径件的物理路径SQL ServerrSQL ServerrDriver=SQL Server;SERVER=Driver=SQL Server;SERVER=指向服指向服务务器的路径器的路径OracleOracleDriver=Microsoft ODBC for Oracle;SERVER=Driver=Microsoft ODBC for Oracle;SERVER=指向服指向服务务器器的路径的路径Microsoft ExcelMicrosoft ExcelDriver=Microsoft Excel Driver(*.xls);DBQ=Driver=Microsoft Excel Driver(*.xls);DBQ=指向指向.xls.xls文件文件的物理路径的物理路径;DriverID=278;DriverID=278Microsoft Excel 97Microsoft Excel 97Driver=Microsoft Excel Driver(*.xls);DBQ=Driver=Microsoft Excel Driver(*.xls);DBQ=指向指向.xls.xls文件文件的物理路径的物理路径;DriverID=790;DriverID=790ParadoxParadoxDriver=Microsoft Paradox Driver(*.db);DBQ=Driver=Microsoft Paradox Driver(*.db);DBQ=指向指向.db.db文件文件的物理路径的物理路径;DriverID=26;DriverID=26文本文本Driver=Microsoft Text Driver(*.txt;*.csv);DefaultDir=Driver=Microsoft Text Driver(*.txt;*.csv);DefaultDir=指向指向.txt.txt文件的物理路径文件的物理路径Microsoft Visual Microsoft Visual FoxProFoxPro(带带有一有一个数据个数据库库容器)容器)Driver=Microsoft Visual FoxPro Driver=Microsoft Visual FoxPro Driver;SourceType=DBC;SourceDb=Driver;SourceType=DBC;SourceDb=指向指向.dbc.dbc文件的物理路文件的物理路径径Microsoft Visual Microsoft Visual FoxProFoxPro(不(不带带数据数据库库容器)容器)Driver=Microsoft Visual FoxPro Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDb=Driver;SourceType=DBF;SourceDb=指向指向.dbf.dbf文件的物理路文件的物理路径径第44页,共56页。(2)连接到数据源 ADO提供的Connection对象,用于建立和管理应用程序与OLE DB兼容数据源或ODBC兼容数据库之间的连接。Connection对象的属性和方法可以用来翻开和关闭数据库连接,并发布对更新信息的查询。要建立数据库连接,首先必须创立Connection对象实例。下述代码创立Connection对象实例,接着翻开一个连接:创立connection对象Set conn=Server.CreateObject(ADODB.Connection)使用OLE DB连接字符串翻开连接conn.Open Provider=Microsoft.Jet.OLEDB.4.0;Data Source =C:MarketDatarsgl.mdb第45页,共56页。或 创立connection对象 set conn=server.createobject(adodb.Connection)创立OLE DB连接字符串 CS=Provider=Microsoft.jet.OLEDB.4.0;Data Source=conn.ConnectionString=CS&Server.MapPath(rsgl.mdb)翻开连接 说明:连接字符串在等号(=)的左右不包含空格。在上例中,Connection对象的Open方法将引用连接字符串。第46页,共56页。2.使用Recordset对象处理结果 建立了连接对象Connection,并翻开了数据库连接后,就可以使用Recordset对象存取表中的记录。要使用Recordset对象处理结果,首先必须创立Recordset对象实例。下述代码创立Recordset对象实例,并翻开Recordset对象:创立Recordset对象Set RS=Server.CreateObject(adodb.recordset)翻开Recordset对象RS.Open 职工工资,conn,2,3,2 翻开Recordset对象后,就可以读取、插入、删除和更新其中的记录。下面通过一个综合使用Recordset对象属性和方法的例子来说明记录集Recordset对象的应用。第47页,共56页。【例11-1】综合使用Recordset对象的属性与方法,建立一个工资管理网页应用程序,如图11-1所示。工资管理网页应用程序包括6个asp文件,它们分别是:Main.asp:工资管理网页主框架,包括两个框架。上方框架为控制菜单,下方框架为数据显示、操作区域。Menu.asp:上方框架的来源网页,用以控制各种数据操作。List1.asp:记录显示页面。List2.asp:记录修改页面,用以修改指定记录数据。第48页,共56页。List3.asp:记录增加页面,用以增加新记录。List4.asp:记录删除页面,用以删除指定记录。(1)主框架网页 主框架网页Main.asp的代码如下:说明:下方框架的名称为“Bottom,各个记录操作网页都将在此翻开。第49页,共56页。(2)控制菜单网页 控制菜单网页Menu.asp是上方框架的来源网页。其代码。说明:以超级链接作为控制菜单,前4个链接以不同的参数连接网页List1.asp,后3个链接分别连接3个不同的网页文件。(3)记录显示 记录显示网页List1.asp显示记录集Recordset对象的单条记录,其代码。说明:记录集Recordset对象的AbsolutePosition属性设置或返回当前记录号。第50页,共56页。fields.count表 示 记 录 集 中 字 段 的 个 数;fields(i).name属 性 表 示 第 i+1个 字 段 的 名 称;fields(i).value属性那么表示当前记录第i+1个字段的值。应及时使用Connection对象和Recordset对象的Close方法关闭数据库连接,并释放对象所占用的内存空间。(4)记录修改 修改数据需要用到Recordset对象的Update方法。记录修改网页List2.asp以文本框的形式显示待修改的记录,提交按钮确定修改用以提交修改内容,其代码。第51页,共56页。说明:当文本框中的内容改变时,事件代码自动计算“实发工资。ShowPage过程同时包括记录数据的更新功能。(5)记录增加 记录增加页面List3.asp用以增加新记录,其中代码用到Recordset对象的AddNew方法。代码。(6)记录删除代码。第52页,共56页。11.3 上机练习 翻开Recordset对象后,记录指针也称“光标指向首记录。要读取其他的记录,需要用到Recordset对象的属性和Move方法。【练习11-1】翻开数据库rsgl.mdb,将其中“职工工资表记录分页列表显示,如图11-3所示。图11-3 分页列表显示第53页,共56页。说明:将文件以list5.asp为文件名存盘。Recordset对象的PageSize属性表示分页大小;PageCount表示页面数;AbsolutePage属性表示当前页号。代码中使用Recordset对象MoveNext方法,将指针移向下一条记录。代码显示。第54页,共56页。【练习11-2】修改记录的网页。程序代码,运行结果。说明:将文件以list6.asp为文件名存盘。本练习综合了超级链接和提交按钮的使用。第55页,共56页。谢谢观赏谢谢观赏第56页,共56页。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


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

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


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