《Web数据库技术应用教程(第二版)》课件第10章-4_第1页
《Web数据库技术应用教程(第二版)》课件第10章-4_第2页
《Web数据库技术应用教程(第二版)》课件第10章-4_第3页
《Web数据库技术应用教程(第二版)》课件第10章-4_第4页
《Web数据库技术应用教程(第二版)》课件第10章-4_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

使用ActiveX数据对象(ADO),可以对多种数据提供者的数据进行操作。例如,可以使用ADO来访问Access、MicrosoftSQL和Oracle数据库中的信息,可以使用ADO从MicrosoftExcel表格中读取信息。在一个ASP网页中使用了一些ADO的常量,这些常量包含在一个名为ADOVBS.inc的特殊文件里。一般来说,ADOVBS.inc被安装在C:\ProgramFiles\CommonFiles\System\ADO目录下。要使用该文件常量,要将该文件拷入ASP程序所在的目录。

10.6使用ADO的数据对象10.6.1配置服务器以使用ActiveX数据对象

MicrosoftSQLServer必须与Web服务器安装在同一台机器上,或者在同一个网络中。虽然ADO连接到数据库有多种方式,但在下面的例子中均采用数据源(DSN)方式。因此在能够使用ADO之前,必须先建立一个数据源。当要建立一个与Web服务器一起使用的数据源时,最好建立一个系统数据源,确保所有的用户都能通过该数据源连接到数据库。注意:在建立一个数据源之前,应确保SQLServer正在运行。按如下步骤可以建立一个新的文件数据源:(1)打开Windows控制面板(选择Start|Setting|ControlPanel)。(2)单击ODBC的图标。单击SystemDSN标签;单击Add按钮,出现CreateNewDataSource对话框;在该对话框中,选择SQLServer驱动程序并单击Next按钮,根据提示向导创建。现在你已经建立了一个名为mydsn的新数据源,该数据源连接到MicrosoftSQLServer上的TestDB数据库。10.6.1配置服务器以使用ActiveX数据对象(2)10.6.2使用连接对象【例10.1】在测试数据库TestDb中创建表Feedback。表Feedback用来记录客户网上反馈信息,它有4个字段,分别用来存储e_mail地址、IP地址、反馈输入的时间和反馈信息的内容。下面用ASP文件(samp10-01.asp)实现。<!--#INCLUDEfile="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"'createanewtable10.6.2使用连接对象(2)MySQL="CREATETABLEFeedback(email varchar(100)"&_ ",IPAddrchar(16)"&_ ",Contentsvarchar(254)"&_ ",Logdatesmalldatetime default getdate())"MyConn.ExecuteMySQLiferr.number=0thenresponse.write"创建成功!"Else response.write"创建失败!"endifMyconn.Close:setmyconn=nothing%>

在这个例子中,创建了连接对象的一个实例MyConn。然后调用连接对象的open方法打开该连接,接下来调用连接对象的Execute方法,执行一个SQL语句创建表FeedBack,最后关闭这个连接。10.6.2使用连接对象(3)【例10.2】向数据库TestDb中的表Feedback插入两条记录,并且要求同时插入。本题要求两个插入语句构成一个事务处理。当一组语句构成一个事务处理时,如果一个语句没有执行成功,则所有的语句都不成功。下面用ASP文件(samp10-02.asp)实现。<!--#INCLUDEfile="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")MyConn.Open"DSN=Mydsn;uid=sa;pes=;database=Test"sSql="insertFeedBackValues"&_"('webmail@','','测试事务','2005-01-01')"&_"insertFeedBackValues"&_"('webmail1@','','测试事务','2005-01-01')"10.6.2使用连接对象(4)onerrorresumenextMyConn.BeginTransMyConn.ExecutesSqliferr.number=0thenobjConn.CommitTransresponse.write"插入成功!"else objConn.Roallback response.write"插入失败!"endifobjConn.closesetobjConn=nothing%>10.6.3使用记录集对象要使用记录集对象,必须首先创建记录集对象的一个实例,可以使用连接对象的Execute()方法,也可以使用Command对象的Execute方法和Recordset对象的Open方法。当从一个数据库返回查询结果时,一个记录集对象便被创建了。【例10.3】

分页显示反馈表中的数据(ASP文件samp10-03.asp)。<!--#Includefile="adovbs.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection") '打开数据库进行检索MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"setrs=server.createobject("ADODB.Recordset") '创建记录集对象sql="SELECTemail,ipaddr,contents,logdateFROMfeedbackORDERBYlogdateDESC"rs.opensql,myconn,adOpenKeyset,adLockOptimistic,adCmdText'setrs=myconn.execute(sql)10.6.3使用记录集对象(2)ifrs.eofandrs.bofthen response.write"<center>目前没有反馈信息!</center>" response.endelsers.pagesize=2'确定每页记录数ifrequest.querystring("PageNo")=""then 'pageno为当前显示页号PageNo=1 '第一页elsePageNo=clng(request.querystring("PageNo")) '读取当前显示页号endifrs.absolutepage=pageno'设置记录集当前页endif%><html><head><title>显示反馈信息</title>(以后程序省略)10.6.4使用命令对象

命令对象代表一个命令(例如,一个SQL查询或一个SQL存储过程),是特别为处理命令的各方面问题而创建的。实际上,当从连接对象中运行一条命令时,已经隐含地创建了一个命令对象。使用命令对象允许指定输入参数、输出参数和命令执行后的返回值等(比如,数据类型和长度)。

1.使用命令对象执行SQL语句【例10.4】

使用命令对象修改数据(程序文件samp10-04.asp)。<!--#INCLUDEFILE="ADOVBS.INC"--><%SetMyConn=Server.CreateObject("ADODB.Connection")SetMyCommand=Server.CreateObject("ADODB.Command")MyConn.Open"DSN=MyDsn;uid=sa;pws=;database=TestDb"SetMyCommand.ActiveConnection=MyConnsSql="UPDATEfeedbackSETemail=''whereipaddr=''"MyCommand.CommandText=sSqlMyCommand.CommandType=adCMDTextMyCommand.Executeiferr.number=0thenresponse.write"执行成功!"Else response.write"执行失败!"endifMyconn.Close:setmyconn=nothing%>

2.使用命令对象执行存储过程

存储过程(有时也称存储查询)是存储在数据库中预先定义的SQL查询语句,存储过程逻辑驻留在存储过程体中。假设在testdb数据库中创建了存储过程sp_todaylog来检索当日反馈的信息。在下面的程序中就调用了sp_todaylog存储过程。2.使用命令对象执行存储过程(2)【例10.7】

使用存储过程(程序samp10-07.asp)。<!--#INCLUDEFILE="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"SetMyCommand=Server.CreateObject("ADODB.Command")SetMyCommand.ActiveConnection=MyConnMyCommand.CommandType=adCMdStoredProcMyCmandText="sp_todaylog"SetRS=MyCommand.Execute()DOWHILENOTRS.EOFResponse.WriteRS("ipaddr")&":"Response.WriteRS("contents")&"<BR>"RS.MoveNextLOOPRS.Close:MyConn.Close%>2.使用命令对象执行存储过程(3)

这段脚本通过调用存储过程sp_todaylog取出并显示记录。当用命令对象调用存储过程时,应该把该命令对象的CommandType属性设为adCMDStoredProc。CommandText属性用来指定要调用的存储过程。

3.使用返回状态值

用命令对象可以从一个存储过程得到返回状态值。例如,要统计feedback表中的反馈总数,效率最高的方法是建立一个存储过程,如:CREATEPROCEDUREsp_CounthyASRETURN(SELECTCOUNT(*)FROMfeedback)该存储过程用SQL集合函数COUNT()计算feedback表中的反馈总数,并用Return语句返回这个数。要得到一个存储过程的返回状态值,必须为命令对象建立一个参数,Parameters集合即为参数对象集合。可以用命令对象的CreateParameter()方法建立一个参数,再用Append方法把这个参数添加到命令对象的Parameters集合中。3.使用返回状态值(2)【例10.8】

使用参数对象返回值(程序

samp10-08.asp)。<!--#INCLUDEFILE="ADOVBS.inc"--><%SetMyConn=Server.CreateObject("ADODB.Connection")SetMyCommand=Server.CreateObject("ADODB.Command")MyConn.Open"DSN=Mydsn;uid=sa;pws=;database=TestDb"SetMyCommand.ActiveConn

温馨提示

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

评论

0/150

提交评论