JavaScript操作数据库.ppt_第1页
JavaScript操作数据库.ppt_第2页
JavaScript操作数据库.ppt_第3页
JavaScript操作数据库.ppt_第4页
JavaScript操作数据库.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、第18章 JavaScript操作数据库,1,使用ADODB对象来完成JavaScript和数据库的交互。使用的ActiveX对象主要有三种:用于连接的“Connection”对象,类型字符串为“ADODB.Connection”;数据集“RecordSet”对象,类型字符串为“ADODB.Recordset”.,2 数据库技术基础,要使用数据库,首先应当了解数据库的结构,及数据库的应用技术标准。对于一般的小型或中型应用来说,比较常见的数据库通常为关系型数据库。目前常用的数据源的低级应用程序接口比较常见的是OLE DB。,2.1 关系型数据库简介,数据库可以由单一数据表格构成,也可以由多个相互

2、关联的表格构成(称为关系数据库)。这些表格通过共同具有的域来相互关联。数据库软件包括从简单的运行在“Windows 3.x”操作系统中的“Microsoft Cardfile.exe”程序,到比较复杂但相对便宜的关系数据库,比如“FileMaker Pro”或“Microsoft Access”,再到企业级水平的基于服务器的程序,比如“Microsoft SQL Server”或“Oracle”。 关系型数据库通常包含下列组件:客户端应用程序(“Client”)、数据库服务器(“Server”)和数据库(“Database”)。 数据库的作用就是用来储存数据。关系型数据库是由许多数据表(“Ta

3、ble”)所组成,数据表又是由许多条记录(“Row”或“Record”)所组成,每记录又是由许多的字段(“Column”或“Field”)所组成。 客户端是数据的使用者,服务器则是数据的储存和提供者。SQL语言(“Structured Query Language”结构化查询语言)是联系客户端和服务器之间的桥梁。客户端使用SQL语言向服务器端发送请求,服务器解析此请求,返回客户端请求的结果。,2.2 “OLE DB”和“ODBC”技术,“OLE DB”(对象链接和嵌入数据库)是微软的战略性推广的,通向不同的数据源的低级应用程序接口。“OLE DB”不仅包括支持微软资助的,标准数据接口的、开放数

4、据库互联(“ODBC”)的结构化查询语言(“SQL”)能力,还具有面向其他非SQL数据类型的通路。作为微软的组件对象模型(“COM”)的一种设计,“OLE DB”是一组读写数据的方法(在过去可能被称为渠道)。“OLD DB”中的对象主要包括数据源对象、阶段对象、命令对象和行组对象。使用“OLE DB”的应用程序会用到如下的请求序列: (1)初始化“OLE”对象 (2)连接到数据源 (3)发出命令 (4)处理结果 (5)释放数据源对象并停止初始化“OLE”,2.3 “ADO”控件,“ADO”控件是“Microsoft ActiveX Data Objects”的缩写,其作为一个“ActiveX”

5、控件,用于客户应用程序中,允许其通过“OLE DB”的数据提供者,对多种多样的数据库进行访问。“ADO”控件作为一个通用的数据库访问接口,具有易用、高速、低内存负荷、磁盘空间占用少等特点。“ADO”控件支持构建服务器/客户端和基于网络的应用程序的关键特性。 “OLE DB”位于“ODBC”层与应用程序之间.。在ASP页面等数据使用者中,“ADO”是位于“OLE DB”之上的“应用程序”,应用程序的“ADO”调用先被送到OLEDB,然后再交由ODBC处理。应用程序当然也可以直接连接到“OLE DB”层,如果这么做了,服务器端游标(recordset的缺省的游标,也是最常用的游标)性能会得到提升,

6、然而就会失去易用性等“ADO”控件带来的特性。,3 连接数据库,在JavaScript中,使用“new ActiveXObject(“ADODB.Connection”)”方法建立一个新的ADODB的连接(“Connection”)对象。“Connection”对象代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象可以等价于到服务器的实际网络连接。取决于提供者所支持的功能,Connection 对象的某些集合、方法或属性有可能无效。,3.1 “Connection”对象的属性,“Connection”对象具有如下属性: (1)“Attributes”属性,长整型,可读写。设置或

7、返回一个值,代表连接对象的事务属性。 (2)“CommandTimeout”属性,长整型,可读写。 (3)“ConnectionString”属性,字符串型。 (4)“ConnectionTimeout”属性,长整型。此属性在连接建立前可读写,建立后只读,设置或返回连接建立的超时时间,单位为秒,默认值为15秒。 (5)“CursorLocation”属性,长整型,可读写,设置或返回游标服务的位置。 (6)“DefaultDatabase”属性,字符串型,可读写,设置或返回数据提供者提供的默认数据库名。(7)“Errors”集合。此集合包含运行时数据提供者发生的所有错误对象。 (8)“Isola

8、tionLevel”属性,长整型,可读写,设置或返回连接对象的隔离级别。 (9)“Mode”属性,长整型,此属性在连接建立前可读写,建立后只读。 (10)“Properties”集合。此集合包含来自数据提供者的属性。 (11)“Provider”属性,字符串型,此属性在连接建立前可读写,建立后只读。 (12)“State”属性,长整型,只读。此属性标识连接的状态。 (13)“Version”属性,字符串型,只读,返回ADO控件实例的版本信息。,3.2 “Connection”对象的方法,“BeginTrans”、“CommitTrans”和“RollbackTrans”方法用于处理连接对象中的

9、事务过程。此三个方法均无参数。其作用为: (1)“BeginTrans”方法,开始一个新的事物 (2)“CommitTrans”方法,保存事务中发生的更改,并结束当前事务,其也可能打开一个新的事物。 (3)“RollbackTrans”方法,取消事务中发生的更改,并结束当前事务,其也可能打开一个新的事物。 如果希望将对源数据所做的一系列更改作为一个单元进行操作,可以使用这些“Connection”对象的方法。例如在电子商务中,执行货币转帐的操作,执行的更改至少需要两步:从转出帐户中减去某个数额,并在转入帐户上添加对等数额。其中任意步骤发生错误,都将导致帐户收支不平衡。在打开的事务中进行这些更改

10、可确保只能选择进行全部更改或不作任何更改。,3.3 “ADO”控件连接对象综述,使用“Connection”对象的集合、方法和属性可执行下列操作: (1)在打开连接前使用“ConnectionString”、“ConnectionTimeout”和“Mode”属性对连接进行配置。 (2)设置“CursorLocation”属性以便调用支持批更新的“客户端游标提供者”。 (3)使用“DefaultDatabase”属性设置连接的默认数据库。 (4)使用“IsolationLevel”属性为在连接上打开的事务设置隔离级别。 (5)使用“Provider”属性指定“OLE DB”提供者。 (6)使用

11、“Open”方法建立到数据源的物理连接。使用“Close”方法将其断开。 (7)使用“Execute”方法执行对连接的命令,并使用“CommandTimeout”属性对执行进行配置。 (8)可使用“BeginTrans”、“CommitTrans”和“RollbackTrans ”方法以及“Attributes”属性管理打开的连接上的事务(如果数据提供者支持则包括嵌套的事务)。 (9)使用“Errors”集合检查数据源返回的错误。 (10)通过“Version”属性读取使用中的“ADO”执行版本。 (11)使用“OpenSchema”方法获取数据库模式信息。,4 执行SQL命令,在获取了对数据

12、库的连接后,下一步需要做的就是执行相应的SQL代码,来向数据提供者发出所需要执行的命令。这就需要用到“ADO”控件的命令对象“ADODB.Command” “Command”对象用于执行指定的查询,并返回查询后的数据集对象,以便执行大量操作或处理数据库结构。 在JavaScript中构建“Command”对象的语法为: objCommand = new ActiveXObject(“ADODB.Command”);,4.1 命令(“Command”)对象的属性,“Command”对象的属性有: (1)“ActiveConnnection”属性,可读写,标识此“Command”对象所属的“Con

13、nection”对象。 (2)“CommandStream”属性,可读写,流数据类型。 (3)“CommandText”属性,字符串型,可读写。 (4)“CommandTimeout”属性,此属性作用等同于“Connection”对象的“CommandTimeout”属性,且不会被“Connection”对象的“CommandTimeout”属性所覆盖。 (5)“CommandType”属性,此属性定义了“CommandText”或“CommandStream”属性的类型。(6)“Dialect”属性,标识“CommandText”和“CommandStream”属性使用的方言属性。 (7)“

14、Name”属性,字符串型,可读写,设置或返回此控件的名称。 (8)“NamedParameters”属性,布尔型,可读写,设置或返回是否将参数名发送给数据提供者。 (9)“Parameters”集合。此集合包含所有的“Parameter”对象。 (10)“Prepared”属性,布尔型,可读写,设置或返回执行前是否保存命令的编译版本。 (11)“Properties”属性和“State”属性。这两个属性类似于“Connection”对象中的同名属性。,4.2 命令(“Command”)对象的方法,“Command”对象的方法有三个:“Cancel”、“CreateParameter”和“Exe

15、cute”。 “Cancel”方法类似于“Connection”对象的同名方法。 “CreateParameter”用于创建一个新的“Parameter”对象,其语法为: objParameter = command.CreateParameter (Name, Type, Direction, Size, Value); 此方法返回值是一个新建的参数(“Parameter”)对象。 此方法的参数“Name”可选,字符串型,为新建“Parameter”对象的名称;“Type”可选,长整型,指定新建“Parameter”对象的数据类型,可能的取值见下表,4.3 命令(“Command”)对象的使

16、用概要,可以使用“Command”对象的集合、方法、属性进行下列操作: (1)使用“CommandText”属性定义命令(例如SQL语句)的可执行文本。 (2)通过“Parameter”对象和“Parameters”集合定义参数化查询或存储过程参数。 (3)可使用“Execute”方法执行命令并在适当的时候返回“Recordset”对象。 (4)执行前应使用“CommandType”属性指定命令类型以优化性能。 (5)使用“Prepared”属性决定提供者是否在执行前保存准备好(或编译好)的命令版本。 (6)使用“CommandTimeout”属性设置提供者等待命令执行的秒数。 (7)通过设置

17、“ActiveConnection”属性使打开的连接与“Command”对象关联。 (8)设置“Name”属性将“Command”标识为与“Connection”对象关联的方法。 (9)将“Command”对象传送给“Recordset”的“Source”属性以便获取数据。,5 处理获得的数据,使用“Command”对象执行指定的查询、“SQL”语句或者储存的过程后,其返回一个数据集(“Recordset”)对象,程序通过操作此数据集对象来获取所需的数据,或执行添加、删除记录等操作。 “Recordset”对象可以直接通过“new ActiveXObject”方法获得,其语法为: objRec

18、ordset = new ActiveXObject(“ADODB.Recordset”); 或者可以通过“Connection”或“Command”对象的“Execute”方法的返回值获得。,5.1 数据集(“Recordset”)对象的属性(一),“Recordset”对象的属性如下: (1)“AbsolutePage”属性,长整型,可读写,设置或返回从1开始至“Recordset”对象所含页数的长整型数值,(2)“AbsolutePosition”属性,长整型,可读写,设置或返回从1至“Recordset”对象所含记录数的长整型值,(3)“ActiveCommand”属性,指向创建相关“

19、Recordset”对象的“Command”对象。此属性只读,如果没有使用“Command”对象创建当前“Recordset”,将返回空值(“null”)。(4)“ActiveConnection”属性,标识当前“Recordset”对象所属的“Connection”对象。(5)“BOF”和“EOF”属性为布尔型。指示记录指针的位置是否超出范围。(6)“Bookmark”属性,可读写,返回唯一标识“Recordset”对象中当前记录的书签,或者将“Recordset”对象的当前记录设置为由有效书签所标识的记录。(7)“CacheSize”属性,长整型,可读写。设置或返回记录集对象在本地内存中的

20、记录条目数。此属性的值必须大于0,默认值为1。(8)“CursorLocation”属性类似于“Connection”对象的同名属性。(9)“CursorType”属性,整型,“Recordset”对象关闭时此属性可读写,否则只读,设置或返回数据集的游标类型,(10)“DataMember”属性,字符串型,指定要从“DataSource”属性所引用的对象中检索的数据成员的名称,此属性对大小写不敏感。(11)“EditMode”属性,长整型,只读,表示当前记录的编辑状态。(12)“Fields”集合,包含记录集中或某条记录中的列信息。此集合成员是“Field”对象,每个“Field”对象对应记录

21、集中的一列。,5.2 数据集(“Recordset”)对象的属性(二),(13)“Filter”属性,可读写,设置或返回作用在数据集上的筛选条件。其允许的数据类型有:字符串型,由一个或多个用“AND”或“OR”操作符连接的子句组成的字符串;书签数组,指向“Recordset”对象中记录的唯一书签值构成的数组;长整型,其可能取值和含义见下表。,5.3 数据集(“Recordset”)对象的方法,“Recordset”对象的方法有: (1)“AddNew”方法,用于向“Recordset”对象中添加新的记录。其语法为:recordset.AddNew( FieldList, Values); (2

22、)“Cancel”方法,类似于“Connection”对象和“Command”对象的同名方法。 (3)“CancelBatch”方法,用于取消挂起的批量更新,其语法为:recordset.CancelBatch(AffectRecords); (3)“CancelUpdate”方法用于在调用“Update”方法前,取消对当前记录或新建记录的更改,其语法为:recordset.CancelUpdate(); (4)“Clone”方法可以基于当前记录集对象,克隆一个完全相同的记录集,同时定义新记录集的锁定类型,其语法为:var newRecordset = oldRecordset.Clone(L

23、ockType); (5)“Close”方法用于关闭“Recordset”对象。此方法无参数,无返回值,其语法为:recordset.Close(); (6)“Delete”方法用于删除当前的记录,或者指定的一组记录,其语法为:recordset.Delete(AffectRecords); (7)“Find”方法,用于在记录集中查找符合条件的记录,其语法为:recordset.Find(Criteria, SkipRows, SearchDirection, Start); (8)“GetRows”方法,将“Recordset”对象中的指定部分数据作为一个二维数组返回,其语法为: array

24、 = recordset.GetRows(Rows, Start, Fields ) (9)“Move”、“MoveFirst”、“MoveLast”、“MoveNext”和“MovePrevious”方法用于移动记录集中的记录指针。“Move”方法的语法为:recordset.Move(NumRecords, Start) (10)“Open”方法用于打开“Recordset”对象,其语法为:recordset.Open( Source, ActiveConnection, CursorType, LockType, Options) (11)“Requery”方法重新执行查询并刷新其数据内容,其语法为:recordset.Requery(Options); (12)“Update”方法用于保存对“Recordset”对象的当前记录所作的更改,此方法无参数。“UpdateBatch”方法用于将所有挂起的批量更新写入磁盘,此方法无参数。,5.4 字

温馨提示

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

评论

0/150

提交评论