Username: Password:

个人主页的数据库ASP解决方案-ASP教程,数据库相关
来源:作者: 发布时间:2007-12-25 13:34:41

如今,cgi日渐衰落,asp大行其道,大有取而代之之势。对个人主页制作者而言,cgi也确实太复杂了,尤其是在数据库的操作上,繁复无比让人望而生畏。相较而言, asp则简单得多。其面向对象的思想,将复杂的底层操作掩盖,只留下简单的调用接口。对数据库的操作更是将他的长处体现得淋漓尽致。

  本文将简单介绍在个人主页中运用asp连接数据库,实现动态网页。相信您在读完本文后,您的主页将更加出色。

  1.在asp中查询access 数据库

  asp能让我们用简单的方法在网页中查询、更新数据库。下面将给出的例子用的是ms access database,但是其操作的原理却可同样地运用在任何支持odbc的数据库上。(之所以选择access,是因为他容易操作,且被广泛使用,对大多数的中小型项目而言,access无疑是最好的选择。)

  先用access建立一个数据表如下:

用户编号 姓名 城市 电话号码
1 张三 武汉 027-84713858
2 李四 北京 010-99581426
3 王五 上海 021-85541253

  再请看下面的一段例子:

<%
set dbconnection=server.createobject(“adodb.connection”)
dbconnection.open “dsnname”
sqlquery=“select * from customers”
set recustionmerlist=dbconnection.execute(sqlquery)
%>
< center>
< table border=1>
< % do while not recustomerlist.eof %>
< tr>
< td><%=recustomerlist(“客户编号”)%>< /td>
< td><%=recustomerlist(“姓名”)%>< /td>
< td><%=recustomerlist(“城市”)%>< /td>
< td><%=recustomerlist(“电话号码”)%>< /td>
< /tr>
< % recustomerlist.movnext loop %>
< /table>
< /center> 


  能够看到,asp的语法是vbscript,其面向对象的思想也和vb相类似,所以,只要您初通vb或vbscript,那asp能够很容易地上手。

  上面的一部分能够说是asp中ado的精髓所在,下面我们讨论一下代码的内容<%和%>是asp代码的开始和结束标志。服务器在返回用户请求时,先将<%和%>中的内容解释成为标准的html代码,再将他发送到客户浏览器。存取数据库时,首先要建立连接,也就是声明一个connection类的实例(对象),然后运用connection类的open方法,将连接对象连接到一个odbc数据源上,在上例中就是dsnname,这是个dsn。至于什么是dsn,后面将有介绍,在此先按下不表。到此,数据库的连接就已完成了,下面要进行的是数据库的操作。

  操作也是很简单的,先定义一个sql语句字串,然后调用connection的execute方法执行,执行的结果储存在一个recordset类(能够看成是个临时存放数据的表)的对象中,在上例中是recustomerlist。这样,数据库的查询调用也就完成了,再只需将他输出即可。

  在do while ...loop的循环中输出时,调用asp中respond对象的write方法,一般能够简写为“=”。而语句recustomerlist(字段名)返回的是当前纪录对应字段的值。最后调用的是recordset类的movenext方法,将纪录指针移到下一个纪录,反复执行,直到recustomerlist的eof(文档尾)为真。这样,就将返回的查询结果输出了。

  上面所讲的只是一点asp数据存取的基本知识,但我们已可略窥asp强大的功能。

2.现在我们能够通过asp来存取数据库,实现动态效果。但更有一个问题:现在提供asp支持的个人免费网页,大多数并不提供数据库的支持。也就是说,您无法在他的数据库系统中建立并拥有自己的数据库。若用本地数据库,您也无法配置服务器主机中的odbc,无法得到您本地数据库的dsn,也就不能通过asp来存取数据库了。怎么解决这个问题呢?下面的讨论将给出一个简单的方法,那就是file dsn。

  首先解释几个名词

  dsn:根据microsoft的官方文档,dsn的意思是“应用程式用以请求一个连到odbc数据源的连接(connection)的名字”,换句话说,他是个代表odbc连接的符号。他隐藏了诸如数据库文档名、所在目录、数据库驱动程式、用户id、密码等细节。因此,当建立一个连接时,您不用去考虑数据库文档名、他在哪儿等等,只要给出他在odbc中的dsn即可。

  file dsn: 当我们讨论这个问题时,先看看其他的dsn类型

  system dsn:这种dsn能够被任何登录到系统中的用户使用。

  user dsn:这是为特定用户建立的dsn。只有建立这个dsn的用户才能看到并使用他。在上面的两种情况中,dsn的细节都储存在系统的注册表中。

  知道了上面的预备知识后,让我们来看看什么是file dsn。file dsn 将dsn的细节内容存贮在一个文档中,而不是存贮在系统注册表中。这个文档是简单的文本文档,用.dsn作为扩展名。

  虽然这听起来挺简单,但您需要知道那些组成dsn文档的参数。下面给出一个简单的用来存取access的dsn文档,

   ---- file.dsn ----

  [odbc]

  driver=microsoft access driver (*.mdb)

  readonly=0

  usercommitsync=yes

  threads=3

  safetransactions=0

  pagetimeout=5

  maxscanrows=8

  maxbuffersize=512

  implicitcommitsync=yes

  fil=ms access

  driverid=25

  将他命名为file.dsn,当然,您可根据您的愿意改名。

  建立了这个文档后,工作已完成了一半。下面的工作是建立一个连接。当用一个system dsn时,建立连接只要简单地引用system dsn:

  conn.open “mydsn”(conn是连接对象的名字)

  当应用如上的fils dsn 时,您需要加入更多的参数来说明。

  conn.open “filedsn=c:\webdir\file.dsn;dbq=c:\database\mydb.mdb;uid=admin;pwd=admin;”

  c:\webdir是.dsn文档所在的目录,他需要用文档的物理路径。您能够用server.mappath方法来得到。
如server.mappath(“/mysite/file.dsn”)。同样,对于dbq参数也需如此。uid和pwd参数是可选的。

  简而概之,要建立一个可重用的file dsn

  1)用dsn参数建立一个以dsn为扩展名的文本文档。

  2)用filedsn和dbq参数建立连接,您能够用server.mpapath来得到物理路径。

  3)只需更改dbq、uid和pwd参数,就可将这个file dsn用到任何access数据库上。

  需要注意的是,对其他非access类型的数据库需要应用不同的参数值和一些附加的参数。

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅