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

下载本文档

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

文档简介

1,Asp操作数据库,2,访问web数据库的技术,目前,在windows操作系统平台上,主要有以下几种访问web数据库的技术,3,1.利用CGI访问web数据库CGI(CommonGatewayInterface),即公共网关接口,是较早实现的访问web数据库的技术。CGI实际上是用来在用户浏览器和web服务器之间传递信息的中间件程序,适用于UNIX和windows等多种服务器平台。,4,使用CGI方式访问web数据库的工作过程是:用户通过web浏览器输入查询请求信息,浏览器通过HTTP协议向web服务器发出响应的查询请求,web服务器按照CGI协议激活CGI程序并由该程序向数据库管理系统发出SQL命令,再将SQL命令的执行结果转化为HTML文档后提交给web服务器,最后由web服务器返回该用户端的web浏览器。,5,2.利用IDC访问web数据库IDC(InternetDatabaseConnector):数据库连接器,是Microsoft公司的web服务器IIS所带的一个动态连接库,它通过ODBC接口实现对各种数据库的访问。说明:IDC仅支持Microsoft公司的web服务器IIS,而不支持其他的web服务器。,6,3.利用ADC访问web数据库ADC(AdvancedDatabaseConnector即:先进数据库连接器)的特点是提高了Activex控件来访问数据库,并且其数据查询操作是在客户端浏览器中完成。Activex控件也成为OLE控件,是可以运行在web页面上的程序组件,其执行效率较高。,7,4.利用ASP与ADO访问web数据库ADO(ActivexDataobject)是一组用于在ASP脚本程序中访问后台数据库的Activex数据对象。使用ASP编程访问web数据库时,必须使用ADO对象。无论采用哪种数据库系统,只要该数据库系统具有与之对应的ODBC或OLEDB驱动程序,就可以通过ADO对象方便地对其进行访问。,8,ADO数据库访问技术,ADO(ActivexDataObject)是asp内置的、用于访问web数据库的activex服务器组件。将它与asp结合起来,编写提供后台数据库信息的动态网页,并在客户浏览器端实现对web数据库的查询、插入、更新和删除数据的操作。ADO的主要优点是易用、高速、占用内存和磁盘空间较少,所以非常适合作为服务器端的数据库访问技术。,9,ASP对数据库的访问是通过其ADO对象来实现的,ADO对象为开发者提供了一种简单、快捷、高效的数据库访问方法,ADO对象可以包含在ASP脚本程序中来完成对数据库的连接,并使用SQL语言对数据库进行各种操作。,10,目前,Microsoft对应用程序访问各种各样的数据源所使用的方法是OLEDB,OLEDB是一套组件对象模型(COM)接口,但它是相当复杂的。连接应用程序与OLEDB的桥梁就是ADO。,11,1.ADO对象模型ADO对象模型包括7个对象和4个集合,12,13,ADO对象模型,14,Connection数据对象,与数据库的所有通信都是通过一个打开的connection对象进行。对一个数据库进行数据的插入和读取之前必须先打开与这个数据库的连接。在这个连接之上可以使用Command对象及Recordset对象来对Connection对象所连接的数据库进行插入删除、更新和查询等操作。,创建connection对象实例的语句格式:Set对象名=server.createobject(”ADODB.connection”)例:Setconn=server.createobject(”ADODB.connection”),Connection对象的常用方法,Open方法:建立一个与数据源的连接对象,打开与数据源的连接其语法格式为:Conn.Openconnectionstring,UserId,Password,options,Close方法:关闭与数据源的连接,并且释放与连接有关的系统资源。其语法格式为:Conn.close其中:Conn为已经创建的Connection对象。,说明:使用Close方法关闭Connection对象,但没有从内存中删除该对象。因此一个关闭的connection对象还可以用open方法打开而不必再次创建一个connection对象。为了释放connection对象所占用的所有资源,可以用下面的方法:SetConn=nothing,Execute方法:执行SQL命令或存储过程,以实现与数据库的通讯。其语法为:Conn.ExecuteCommandtext,ReccordAffected,Options其中:Rs为创建的Recordsed对象;Conn为已经创建的Connection对象。,Connection对象连接数据库的多种方式:,连接Access数据库1.OLEDB连接方式使用OLEDB连接Access数据库需要使用如右图所示参数;,例如:,2.ODBC的系统DSN连接方式操作:控制面板管理工具数据源ODBC打开,选择“系统DSN”属性页,单击“添加”,弹出对话框通过以上步骤,就可以创建一个系统DSN,然后使用connection对象进行连接,其源代码为:,3.ODBC的无DSN连接方式通过这种方式连接数据库,需要使用两个参数:Driver和DBQ将参数Driver设定为AccessODBC驱动程序名称;将DBQ设定为Access数据库的实际路径文件名称,其代码为:,27,打开和关闭数据库连接,第一步:建立connection对象第二步:使用connection对象的open方法建立数据库连接。第三步:使用connection对象的execute方法执行sql语句,执行查询语句。第四步:关闭数据库。,28,第一步:建立connection对象,Recordset对象,在使用connection对象打开数据库连接之后,接下来可以使用ADO对象模块提供的recordset对象存取表的记录。建立recordset对象实例的方法如下:Setrs=server.createobject(“adodb.recordset)在recordset对象中包含了由field对象组成的fields数据集合,每个field对象对应于recordset记录集中的一列接下来先介绍filed对象的相关知识,Field对象,在recordset对象中包含了由field对象组成的fields数据集合,每个field对象对应于recordset记录集中的一列。,Field数据集合的常用属性:,35,例题:假定建立了一个recordset对象的实例rs,36,rs的内部结构和数据库表一样具有二维结构rs对象包含一个无形的指针,默认的情况下指向表的第一行rs(0),rs(学号),rs.fields(0),rs.fields(学号)是相同的。rs(2),rs(年龄),rs.fields(2),rs.fields(年龄)也是相同的。,37,实例rs的应用,rs(0).name=rs.fields(0).name=“学号”rs(3).name=rs.fields(3).name=“系别”当前记录指向第一条记录时,那么:rs(0)=rs(0).value=rs(学号)=“04001”rs(2)=rs(2).value=rs(年龄)=19,38,实例rs的应用,当前记录指向第三条记录时,那么:rs(0)=rs(0).value=rs(学号)=“04150”rs(2)=rs(2).value=rs(年龄)=56,39,rs(0)rs(学号)rs(2)rs(年龄)rs.fields(0)rs.fields(2)rs.fields(学号)rs.fields(年龄),rs(i).name,rs(i).value或rs(i),40,Asp操作数据库,记录集对象(Recordset),41,创建记录集对象的一个实例,可以使用connection对象的execute()方法,但是用execute创建的记录集指针只能向下,而不能向上移动,即不能执行movefirst和moveprevious指令。,42,Recordset数据对象,利用Recordset对象的属性和方法可以完全操作一个数据库,只要用sql语句可以完成操作,利用Recordset对象都可以实现!,43,Recordset对象有一个无形的指针,关系型数据库表是一张二维表,每一行代表一个实体信息!recordset可以指向不同的行;第一次打开数据库的时候,指针定位在第一行,在向后移动movenext(),44,Recordset常用的属性和方法,MoveNumrecords:在记录集中向前或向后移动指定数目的记录数,当值大于0时,向前(记录集的末尾方向)移动,小于0时向后移动;Movefirst:移动到记录集的第一条记录;Movenext:移动到当前记录的下一条记录;Moveprevious:移动到当前记录的上一条记录;Movelast:移动到记录集的最后一条记录,Bof属性:用来判断当前的记录指针时都位于第一条记录之前Eof属性:用来判断当前的记录指针是否位于最后一条记录之后Recordcount属性:返回recordset记录集中记录的条数Pagesize属性:需要分页时,返回每页所显示的记录条数Pagecount属性:返回记录集中记录分页显示的总页数,Recordset常用的属性,46,使用recordset对象打开数据库,第一步:建立connection对象第二步:使用connection对象的open方法建立数据库连接。第三步:建立Recordset对象第四步:利用建立好的Recordset对象的Open方法打开数据库(具体操作)第五步:关闭数据库。,47,第一步:建立connection对象,%dimconnSetconn=server.createobject(adodb.connection),48,第二步:使用connection对象的open方法建立数据库连接,conn.open“DSN=数据源名称orconn.Opendriver=MicrosoftAccessDriver(*.mdb);dbq=datasource=“1-键盘光标,记录集可以向前移动或向后移动,RecordSet记录集同步反映自它创建后其他用户所作的修改和删除,但却不能同步反映自它创建后其他用户新增加的记录;2-动态光标,记录指针可以自由地上下移动,任何时候RecordSet记录集都同步反映其他用户的任何操作;3-静态光标,光标可向前向后移动,自创建后无法同步反映其他用户所做的任何操作,52,锁定类型:决定了当不止一个用户同时试图改变同一个记录时,数据库应如何处理。有4中锁定类型:1只读锁定(默认值),不能修改记录;2指定编辑一个记录的时候,立即锁定;3只有调用Update方法才锁定记录4指定记录只能成批更新。,53,第五步:关闭数据库。,rs.close(),54,当数据库第一次打开时,recordset指针定位在第一条记录上,可以利用absoluteposition直接定位到某条记录上。基本的语法是:rs.absoluteposition=n,55,例:,56,利用一循环输出数据库中所有的数据,语法:rs.movenext()rs.bof文件开头rs.eof文件结尾rs.movepreviousrs.movefirstrs.movelastrs在最后一条记录上时,再执行rs.movenext()后rs.Eof就为真!rs.Eof为真时,就不再读取数据,Command数据对象,Command对象的功能是:执行SQL语句和调用SQLServer的存储过程.,使用Command对象改善查询使用ADO的Command对象执行查询的方式与使用“Connection”和“Recordset”对象执行查询的方式一样,但是使用“Command”对象可以准备(或编译)对数据库源的查询,然后使用各种不同的值重复发送此查询。用这种方法编译查询的好处在于,当您需要重新发布修改过的已有查询时,可以大大地减少发布时间。另外,还可以留下部分SQL查询不进行定义,用到了在执行之前改变查询部分的选项。,Command对象的属性,ActiveConnection属性:定义Command对象的连接信息.这个属性一般指向一个当前打开的Command对象CommandText属性:为SQL语句、查询、表名或者SQLServer存储过程的名字。CommandType属性:优化数据提供者的执行速度。,使用command对象操作数据库,第一步:建立connection对象第二步:使用connection对象的open方法建立数据库连接。第三步:建立command对象第四步:使用command对象的ActiveConnection属性与connection对象进行连接,61,第一步:建立connection对象,%Setconn=server.createobject(adodb.connection),62,第二步:使用connectio

温馨提示

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

最新文档

评论

0/150

提交评论