ASP数据库实际操作基础_第1页
ASP数据库实际操作基础_第2页
ASP数据库实际操作基础_第3页
ASP数据库实际操作基础_第4页
ASP数据库实际操作基础_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

ASP数据库实际操作基础使用ASP技术设计网页,把数据库放到网页的后面,使用户不必直接操作数据库,而是通过网页来使用数据库,这样用户可以方便灵活的,在自己权限范围内操作数据库。2023/3/20章节内容本章的主要内容是:数据库存取组件Connection对象Command对象Recordse对象2023/3/209.1数据库存取组件数据库存取组件(DatabaseAccessComponent)是使用ADO(ActiveXDataObjects)技术来存取符合ODBC标准的数据库或者具有表格状数据形式的一种ASP内置组件。ADO数据库存取组件(以下简称ADO)可以兼容大部分的数据库,本书主要介绍ADO对ACCESS数据库的存取操作。2023/3/209.1数据库存取组件ADO数据库存取组件主要包括三个对象Connection对象又叫连接对象,主要用来在ASP文件和数据库之间建立连接,为两者间的信息传递提供通道,是Command对象的基础。Command对象又叫命令对象,主要对数据库执行操作,包括:增加、删除、修改和查询四种常用的操作。Recordse对象又叫记录集对象,如果对数据库执行查询操作,就会返回一个记录集合,包含满足条件的记录。2023/3/20ADO的使用方法三个对象拥有丰富的属性和方法,使用灵活多样,为了便于大家掌握,本书对三个对象的主要属性和方法进行说明的同时,提供了一种比较科学的和完整的使用方法。ADO对象的使用方法是:首先使用Connection对象建立和数据库的连接,然后使用Command对象执行对数据库的操作,如果执行的操作时查询,使用Recordset对象获取查询的结果。2023/3/209.2Connection对象功能概述:使用ADO对数据库进行操作,首先要依靠Connection对象在网页和数据库之间建立连接。使用方法:首先创建Connection对象,然后设置Connection对象的属性,最后执行Connection对象的相应方法。2023/3/20对象的创建Connection对象的创建语法如下:SetConnection对象=Server.Createobject(“Adodb.Connection”)例如:<%dimdbcnsetdbcn=server.createobject(“adodb.connection”)%>2023/3/209.2.2Connection对象常用的属性Connectionstring:用于指定Connection对象的数据库连接信息。它的取值可以有两种:数据源或连接字符串。语法为:Connection对象.Connectionstring=数据源或连接字符串

Connectiontimeout:用于指定Connection对象的Open方法打开与数据库的连接所需的最长时间,单位是秒。该属性的默认值为15秒,如果设定为0,表示一直连接下去,直到连通为止。语法为:Connection对象.Connectiontimeout=整数

2023/3/20对象常用的方法Open:打开与数据库的连接。在使用open方法前要设置Connectionstring属性,这是它的操作对象。语法为:Connection对象.OpenClose:关闭一个已经打开的ASP网页文件和数据库之间的连接。当连接关闭了,Connection对象依然存在,但依赖于Connection对象的Command对象和Recordset对象将不能使用。语法为:Connection对象.close2023/3/20使用数据源和连接字符串Connection对象的Connectionstring属性用于设置对数据库的连接,它的取值有两种,分别是使用数据源(ODBC)和使用连接字符串。2023/3/20使用数据源数据源就是数据源开放数据库连接(ODBC),利用它可以访问来自多种数据库管理系统的数据。数据源采用统一的方法访问各种数据库管理系统,并提供给应用程序统一的接口,这样应用程序不必关心如何连接具体的那种数据库管理系统,而只需要使用数据源,就可以操作各种数据库了。请看数据库连接实例2023/3/20使用数据源创建Connection对象,使用数据源与数据库连接,代码如下:<%dimdbcn‘创建Connection对象setdbcn=server.createobject(“adodb.connection”)‘通过属性设置连接的数据库信息Dbcn.connectionstring="DSN=CJGL"dbcn.connectiontimeout=30Dbcn.open‘打开连接‘书写代码,执行对数据库的操作,根据需要处理操作的结果……‘执行完操作,关闭连接Dbcn.closeSetdbcn=nothing‘不再使用时,注销connection对象%>2023/3/20使用连接字符串数据源连接数据库管理系统需要具有在服务器上创建数据源的权限,而且移植到另一台服务器上需要重新设置数据源,而使用数据库连接字符串则没有这些问题。对Access数据库使用数据库连接字符串需要用到两个参数Dbq和Driver,Dbq的取值是数据库的物理路径,Driver的取值是数据库的类型。2023/3/20直接使用物理路径下面使用连接字符串作为ConnectionString属性的取值。例如:CJGL.mdb数据库文件在C:\Inetpub\\chapter10文件夹中,可以设置为:<%Dbcn.connectionstring=“Dbq=C:\Inetpub\\chapter10\CJGL.mdb;Driver={MicrosoftAccessDriver(*.mdb)}”%>2023/3/20转换使用物理路径在实际的开发中为了方便移植,可以利用Server对象的Mappath方法,将虚拟路径转变为实际的物理路径。语法为:Server.Mappath(虚拟路径字符串)如果数据库文件和当前ASP文件在同一个文件夹中,可以直接写数据库文件名,上例可以修改为:<%Dbcn.connectionstring=“Dbq=”&Server.mappath(“CJGL.MDB”)&“;Driver={MicrosoftAccessDriver(*.mdb)}”%>如果数据库文件和ASP文件不在同一个文件夹,要书写数据库文件相对于ASP文件的路径。为了方便管理,经常在网页的根目录下,建立专门的文件夹存放数据库文件。例如:当前网页在根目录下,并且在根目录下建立Data文件夹存放CJGL.MDB数据库文件,ConnectionString属性设置如下:<%Dbcn.connectionstring=“Dbq=”&Server.mappath(“Data\CJGL.MDB”)&“;Driver={MicrosoftAccessDriver(*.mdb)}”%>2023/3/20字符串连接数据库完整的示例<%dimdbcn’创建connection对象setdbcn=server.createobject(“adodb.connection”)‘通过属性设置连接的数据库信息Dbcn.connectionstring=“Dbq=”&Server.mappath(“Data\CJGL.MDB”)&“;Driver={MicrosoftAccessDriver(*.mdb)}”dbcn.connectiontimeout=30‘设置连接执行的最长时间Dbcn.open‘打开连接‘书写代码执行对数据库的操作,根据需要处理操作的结果……Dbcn.close‘执行完操作,关闭连接Setdbcn=nothing‘不再使用时,注销connection对象%>2023/3/209.3Command对象Command对象主要功能是对数据库执行操作。该对象利用connection对象提供的连接通道,在ASP网页文件和数据库间传递对数据库的操作命令。Command对象的使用方法是:首先创建Connection对象,设置Connection对象的属性,并打开与数据库的连接,然后设置Command对象的属性,执行Command对象的方法,如果是查询操作,还要创建Recordset对象接收查询的结果。2023/3/20对象的创建Command对象的创建类似于connection对象,要使用server对象的createobject方法。Command对象的创建语法如下:<%SetCommand对象=Server.Createobject(“Adodb.Command”)%>例如:<%dimdbcmdsetdbcmd=server.createobject(“Adodb.Command”)%>2023/3/20对象的属性ActiveConnection:设置Command对象需要使用的那个connection对象作为连接。该属性取值为已经打开的connection对象。语法为:Command对象.Activeconnection=connection对象Commandtext:设置对数据库的操作命令。它的取值可以是SQL语句、表名或查询名。语法为:Command对象.Commandtext=SQL语句、表名和查询名2023/3/20Command对象的属性Commandtype:该属性设置操作命令的类型,即说明Commandtext属性取值的类型。语法为:Command对象.Commandtype=属性值在存取Access数据库中常用的取值如表所示:数值 说明-1有系统自己判定1SQL语句2表名4查询名2023/3/20Command对象的属性Commandtimeout:设置Command对象的execute方法的最长执行时间,单位是秒。默认值是30秒,可以根据需要设置大小,如果要无限制的执行下去,则设置为0。语法为:Command对象.Commandtimeout=整数值Prepared:设置Commandtext属性所指定的操作命令是否先行编译,存储。对于经常使用的查询语句,可以将它进行编译、存储,第一遍执行时会慢一些,以后执行时,速度可以明显加快。它的取值为True或False。语法为:Command对象.Commandtimeout=True或False2023/3/20对象的方法Execute:执行对数据库的各种操作。对数据库的操作可以归纳为增加、删除、更新和查询。如果执行增加、删除和更新操作,没有返回值。语法为:Command对象.execute如果执行查询操作,则返回一个记录集合,需要创建一个recordset对象来接受这个记录集。关于recordset对象的主要使用方法在9.4节做详细的介绍,这里给出一种较简单的创建方法。语法为:Setrecordset对象=Command对象.executeCreateparameter:创建parameter子对象,主要用于参数查询。在小节对参数查询作详细的介绍。2023/3/20在Command对象中使用SQL语句通过设置Command对象的Commandtext属性,可以使用SQL语句、表和查询对数据库进行存取,其中使用SQL语句是最简单的形式。语法为:Command对象.Commandtext=SQL语句SQL语句中的条件部分对数据进行筛选,条件可以是常量表达式或者变量表达式,下面分别介绍两种形式的SQL语句在Command对象中的应用。可以先在数据库中调试好SQL语句,然后拿过来用。2023/3/201.常量条件这类SQL语句中,条件表达式是确定的。例如:查询女同学的信息,对应的SQL语句为:Select*fromxsxxwherexb="女"把该语句设置为Command对象的Commandtext属性,如下<%dbcmdmandtext="Select*fromxsxxwherexb='女'"%>2023/3/202.变量条件这类SQL语句中,条件表达式是确定的。例如:查询女同学的信息,对应的SQL语句为:Select*fromxsxxwherexb="女"把该语句设置为Command对象的Commandtext属性,如下<%dbcmdmandtext="Select*fromxsxxwherexb='女'"%>2023/3/20在Command对象中使用表和非参数查询1.使用表有的时候我们需要获取整个表的全部数据,这种情况下可以设置commandtext属性取值为相应的表名。语法为:Command对象.Commandtext=表名2.使用非参数查询通过设置commandtext属性的取值为查询名,可以执行相应的查询。这样做的好处有三个:(1)在Access数据库中创建查询比在网页中直接书写SQL语句更容易,更方便。(2)在Access数据库中创建查询更安全,这样在网页屏蔽了数据库的结构信息,减小了系统风险。(3)在Access数据库中创建查询,在网页中引用查询名,使数据库的设计开发和网页程序的开发相对独立,便于分工合作。2023/3/20使用参数查询在数据库中使用参数查询可以由用户决定查询的内容,类似前面的在SQL语句中使用变量的形式。在Command对象中使用参数查询的方法是:首先创建参数对象Parameter,然后把参数变量添加到参数集合Parameters,最后设置Command对象的属性,执行查询操作。2023/3/201.创建参数对象Command对象提供了Createparameter方法创建参数对象,语法为:SetParameter对象=Command对象.Createparameter(name,type,direction,size,value)参数说明Name参数名称Type参数类型可以省略Direction参数方向可以省略Size参数大小可以省略Value参数值2023/3/20参数说明变长字符串200双精度5单精度4整数类型3时间日期类型135说明取值Type参数取值取值说明1传入(默认值)2传出3传入传出Direction参数取值2023/3/20示例<%'定义相关变量dimprm_name,prm_type,prm_direction,prm_size,prm_valueprm_name="cxkc"'参数名称,在数据库查询中使用prm_type=200'参数类型,200表示变长字符串prm_direction=1'参数方向,1表示输入prm_size=60'参数大小,20个字节prm_value=cs_kcbh'参数值,从表单中获取的值dimprm'创建参数对象setprm=dbcmd.Createparameter(prm_name,prm_type,prm_direction,prm_size,prm_value)%>2023/3/202.添加到参数对象集合Command对象拥有一个参数集合Parameters,必须把创建的参数加入到参数集合中。参数集合Parameters的方法Append可以增加参数,语法为:Command对象.Parameters.AppendParameter对象例如:把上例中创建的参数加入到Command对象的参数集合中,代码如下:<%dbcmd.parameters.appendprm%>2023/3/20对象操作示例1.查询操作2.增加操作3.删除操作4.更新操作2023/3/209.4Recordset对象如果Command对象对数据库执行的是查询操作,那么从数据库中返回到ASP文件的查询结果要创建recordset对象来接受。Recordset对象和前面介绍的数据库中的表有相似的地方,由字段名构成记录集的结构,下面是数据区域,如图所示。数据区域有两个特殊的位置bof和eof,bof是记录集数据区域的开始,eof是记录集数据区域的结尾,中间位置是记录的集合。在数据区域中存在一个指针,指针可以在bof、eof和记录间移动。当指针指向一条记录时,那条记录就是当前记录,只能对当前记录操作,任何时候当前记录只能有一条。2023/3/20Recordset对象示意图图9.11Recordset对象2023/3/20创建Recordset对象前面我们介绍一种简单的recordset对象创建的方法,由Command对象的execute方法执行,直接创建。语法为:SetRecordset对象=Command对象.execute这种方法中Recordset对象的属性采用的默认值,不能完全使用Recordset对象的功能。下面提供另外的使用方法:创建Recordset对象对象,然后设置Recordset对象的属性,最后执行Recordset对象的方法。首先介绍Recordset对象的创建方法,Recordset对象的创建和connection对象,Command对象的创建相似,要使用server对象的Createobject方法。语法为:<%SetRecordset对象=Server.Createobject(“Adodb.Recordset”)%>2023/3/20对象的属性Source:用于设置数据库的查询信息,可以是SQL语句、表或查询。语法为:Recordset对象.Source=SQL语句、表和查询Activeconnection:用于设置数据库的连接信息,可以是数据源、连接字符串或者connection对象。其中connection对象必须已经打开。语法为:Recordset对象.Activeconnection=数据源、连接字符串或者connection对象2023/3/20对象的属性Cursortype:设置记录集中指针的类型。语法为:Recordset对象.Cursortype=取值2023/3/20Cursortype取值取值说明0向下指针,只能利用movenext方法向下移动,默认值。1键盘指针,可以向下向上移动。能够看到其他用户所做的修改,但是看不到增加和删除的记录。2动态指针,可以向下向上移动。能够看到其他用户所做的增加,删除和修改的记录。3静态指针,可以向下向上移动。不能看到其他用户所做的修改,增加和删除的记录。2023/3/20Recordset对象的属性Bof:该属性用于判断指针当前是否在记录集的开头,如果在开头返回true,否则返回false。语法为:Recordset对象.BofEof:该属性用于判断指针当前是否在记录集的结尾,如果在结尾返回true,否则返回false。语法为:Recordset对象.Bof当Bof和Eof取值都为true时,记录集为空,因此可以使用这种方法判断记录集是否为空集,不为空对应的代码位为:<%Ifdbrs.notofandnotbrs.bofthen……endif%>2023/3/20Recordset对象的属性Recordcount:返回记录集中记录总数。该属性要求Cursortype属性为1或者3,否则出错。2023/3/20对象的方法Recordset对象方法比较多,这里选取了常用的方法,并分成两组:基本方法和记录定位方法。首先介绍基本方法。Open方法:打开记录集,设置完成记录集的属性,可以打开记录集。打开记录集时,如果记录集不空,指针指向第一条记录;为空时,bof和eof重合,指针指向同一位置。语法为:Recordset对象.openClose方法:关闭记录集,当不再使用时及时关闭。语法为:Recordset对象.closeRecordset对象的用法很灵活,这里介绍两种常用的方法:使用command对象直接创建使用open方法打开记录集2023/3/201.使用command对象直接创建这种方法前面已经介绍过,使用command对象的execute方法,直接创建一个Recordset对象。语法为:SetRecordset对象=Command对象.execute此时Recordset对象对象的属性都是默认值,因此功能弱一些。2023/3/202.使用open方法打开记录集这种方法首先设置Recordset的属性,然后执行open方法。Recordset的属性中activeconnection属性的取值比较灵活,如下:Recordset对象.Activeconnection=数据源、连接字符串或已打开的connection对象2023/3/20记录集的操作通过Command对象可以直接对数据进行增加、删除和修改,记录集可以完成这些功能,但记录集的主要操作是读取并显示数据。本书主要介绍使用记录集读取数据,操作分为两部分:记

温馨提示

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

评论

0/150

提交评论