您的位置:首页技术开发ASP技巧 → 个人主页的数据库解决方案ASP

个人主页的数据库解决方案ASP

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

eNet学院





  如今,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类型的数据库需要应用不同的参数值和一些附加的参数。(武汉 Netwalker)


相关阅读 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是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案