您的位置:首页精文荟萃软件资讯 → ASP基础讲座(下)

ASP基础讲座(下)

时间:2004/10/7 19:17:00来源:本站整理作者:蓝点我要评论(0)

ASP基础讲座(下)



        当我们需要同浏览器交互的时候,有时少不了数据库。因为只有用数据库才可能大量、快速地处理信息。使用ASP不仅意味着你可以读取Access和SQL Server的数据库,同时也意味着你可以读取其它ODBC(Open Database Connect,开放式数据库互联)兼容的数据库。为了在ASP中访问数据库,我们将接触一个新名词——ADO(Active Data Object,活动数据对象)。

  ADO是一种操作Microsoft所支持的数据库的方法,有些类似于以前在VB中听说过的DAO(Data Access Object,数据访问对象)和RDO(Remote Data Object,远程数据对象)。在ASP中,ADO可以看作是一个服务器组件(Server Component),更简单点说,是一系列的对象,应用这些功能强大的对象,即可轻松完成对数据库复杂的操作。在这里我们所要学的是使用这些对象的方法,具体的操作步骤可以归纳为以下几步:

  (一)创建数据库源名(DSN)

  (二)创建数据库链接(Connection)

  (三)创建数据对象

  (四)操作数据库

  (五)关闭数据对象和链接

  下面具体叙述每一步的作法:

  一、创建数据源名

  用ODBC时,经常见到DSN这个名词,它究竟是什么,有什么重要作用呢?DSN(Date Source Name)即数据源名称。我们知道,ODBC是一种访问数据库的方法,只要系统中有相应的ODBC驱动程序,任何程序就可以通过ODBC操纵驱动程序的数据库。比如我们系统中有Access的ODBC驱动程序,那么即使我们没有Access软件,也可以在我们的程序(如VB编的)中间对一个Access的MDB数据库加、删、改记录。而且我们根本不用知道这个数据库是放在哪里的。我们只要写出SQL语句,ODBC驱动程序就会帮我们做一切事情。我们在给ODBC驱动程序传SQL指令时,即是用DSN来告诉它到底操作的是哪一个数据库。如果数据库的平台变了,比如我们改用了SQL Server的数据库,只要其中表的结构没变,我们就不用改写我们的程序,只要重新在系统中配置DSN就行了。由此可见,DSN是应用程序和数据库之间的桥梁,要通过ODBC访问数据库,前提就是我们必须配置好DSN(即架好桥梁)。一个DSN必须包含一些信息:

  DSN的名字:就是给这座桥取个名字,当程序访问数据库时,给系统传的就是这个名字,而不是数据库的实际名称。

  ODBC驱动程序类型:只有指出驱动程序类型,在我们操作数据库时,系统才会知道调哪个ODBC驱动程序来服务。

  数据库:你必须指定这座桥到底连接的是哪个数据库,但不同的数据库系统,指定数据库名字的方法有些不同。

  这座桥是架在系统之中的,所以WIN95(NT)提供了一个工具来完成这件事,即是控制面板中的32 BIT ODBC,共有三类,即用户DSN、系统DSN、文件DSN。我们一般就用系统DSN,因为这样可以让所有在该系统上操作的人都能使用这个DSN。

  打开Windows的“控制面板”,找到图标“32位ODBC)”(有一些系统上叫“ODBC”、“32bit ODBC”),双击,出现(如图一)对话框,选中标签“系统DSN”,点击“新建”,选驱动程序为Microsoft Access MDB,单击“完成”,弹出对话框(如图二),输出“Data Source Name”为“dsn1”,单击“OK”,再单击“选择数据库”,选中你要使用的数据库,例如“C:\b1.mdb”,这样就OK了。以后我们就用“dsn1”来访问数据库“c:\b1.mdb”,而不直接用文件名“C:\b1.mdb”,这样做的好处是,一旦我们改变了文件名或存放地,就不用再一个一个地修改程序中所有该数据库的名称,而只需修改DSN中的配置就可以了。

  二、创数据库链接(Connection)

  用过VB的人都知道,DAO中有链接(Connection),RDO中有odo Connection。链接用以保持一些关于正在访问的数据的一些状态信息,以及链接者信息。ASP文件中如果要访问数据,必须首先创建与数据库的链接,其语法如下:

  set Mconn=Server createObject(“ADOBDCONNECTION”)

  这条语句创建了链接对象mConn,接下来:

  mConn.Open “dsn1”,“vsername”,“password”

  这条语句打开链接,用到了DSN,本例为“dsn1”。其后的两个参数分别是访问数据库的用户名和口令,为可选参数。

  注意:必须有以上两个小步骤,因为链接对象的创建与打开是两回事,只有打开了才真正可以用。

  三、创建数据对象(Record Set)

  ADO中的数据对象通常保存的是查询结果。Record Set是ADO中最复杂的对象,有许多属性和方法,灵活运用,可以达到许多好的效果。与DAO中的一样,Record Set保存的是一行行的记录,并标有一个当前记录。以下是创建方法:

  Set Record Set=mConn.Execute(sqtStr)

  这条语句创建并打开了对象Record Set,其中mCon是先前创建的链接对象,sqtStr是一个串,代表一条标准的SQL语句,例如:

  sqlStr=“SELECT * FROM tab1”

  Set Record Set=mConn.Exe cute(sqlStr)

  这条语句执行后,对象Record Set中就保存了表tab1中的所有记录。在ASP文件中如何引用返回结果,本文将在文末给出一个实例说明。

  四、操作数据库

  刚才我们通过调用链接对象的Execute方法来将查询结果返回给一个数据对象。我们说Execute方法的参数是一个标准的SQL语句串,所以我们可以利用它方便地执行数据插入、修改、删除等操作,例如:

  sqlStr=“INSERT INTO tab1 VALUES(1,2)”

  mConn.Execute(sqlStr)

  /执行插入操作

  sqlStr=“UPDATE tab1 SET field1=3”

  mConn.Execute(sqlStr)

  /执行修改操作

  五、关闭数据对象和链接对象

  在使用了ADO对象之后,一定要记住关闭它,因为它使用了一定的服务器资源。通过调用方法close实现关闭,然后再释放它。

  Record Set.close

  Set Record Set=Nothing

  /关闭创建的数据对象

  mConn.close

  Set mConn=Nothing

  /关闭创建的链接对象

  至此,我们已给出了用ASP访问数据库的全过程,包括创建数据源-创建链接-创建数据对象-操作数据对象-关闭并释放。这其间由于应用面向对象思想,应该说所有操作都比较简单,用户需要注意的仅是对数据结构的了解,亦要清楚当前所操作的对象是什么,有什么属性,等等。只要对这些有了清醒的认识,再加上ASP的强大功能,在网络上应用你自己的数据库,就再也不是什么难事了!

  本文最后给出一个例子,这是基于数据库的ASP留言簿程序,数据库结构如下:

  guestbook.mdb

  表lyb:

  xm char(100), ly char(255) , sj datetime

  文件guestbook.asp:

  

  

  lyb

  

  

  

留言簿



  


  

  

姓名:



  

留言:



  



  


  VALUE=“复原” NAME=“B2”>



  


  <%

  Set conn = Server.CreateObject(“ADODB.Connection”)

  conn.Open “lybdsn”,“”,“”

  If Request(“task”)=“insert” then

  xm=Request(“xm”)

  sj = Date()

  sj = sj & “ ” & Hour(Time()) & “:” & Minute(Time())

  If Request(“ly”)=“” then

  Response.write(“留言不能不输吧”)

  Response.end

  else

  ly=Request(“ly”)

  end if

  sql=“INSERT INTO lyb (xm,sj,ly) VALUES ('” & xm & “','” & sj & “','” & ly & “') ”

  conn.execute sql

  End If

  sql = “SELECT * FROM lyb ORDER BY sj DESC”

  Set rs = conn.Execute(sql) %>

  <% On Error Resume Next

  rs.MoveFirst

  do while Not rs.eof %>

  


  姓名:<%=Server.HTMLEncode(rs.Fields(“xm”).Value)%>


  留于:<%=Server.HTMLEncode(rs.Fields(“sj”).Value)%>


  留言:<%=Server.HTMLEncode(rs.Fields(“ly”).Value)%>

  <% rs.MoveNext

  loop %>

  

  




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本