利用ASP进行动态数据查询.
涉及网站制作的成本,在制作网站使用的数据库我采用office的Acces.
这里我们先了解以下数据库的概念:
数据库,顾名思义,是存入数据的仓库.只不过这个仓库是在计算机存储设备上的,而且数据是按一定格式存放的.
当人们收集了大量的数据后,应该把它们保存起来进入近一步的处理,进一步的抽取有用的信息.当年人们把数据存放在文件柜中,可现在随着社会的发展,数据量急剧增长,现在人们就借助计算机和数据库技术科学的保存大量的数据,以便能更好的利用这些数据资源.
要是下定义的话,就应该是:指长期储存在计算机内的、有组织的、可共享的数据集合.
数据库包含关系数据库、面向对象数据库及新兴的XML数据库等多种,目前应用最广泛的是关系数据库,若在关系数据库基础上提供部分面向对象数据库功能的对象关系数据库.在数据库技术的早期还曾经流行过层次数据库与网状数据库,但这两类数据库目前已经极少使用.
2.2 ASP访问数据库概述及工作原理.
2.2.1ASP访问数据库概述
访问Web数据库的技术有以下几种:公共网关接口CGI(Common Gateway Interface)、Internet Server应用程序编程接口ISAPI(Internet Server Application Programming Interface)、Java/JDBC、Plug_in(插件)和ASP技术.这些技术都是为了克服HTML静态页面发展起来的,在网页制作中应用以上技术可以随心所欲地开发出动态页面,利用它们更是可以开发出高性能的数据库系统.
CGI是较早开发的技术,但是开发成本高、编程复杂、服务器性能差、功能有限且不具备事务(Transaction)功能.ISAPI改进了CGI的缺点,利用DLL技术,但编程更加复杂.JDBC和Plug_in技术功能较完备,但适用性较差.ASP技术是微软公司推出的最新的Web应用程序开发技术,在访问数据库方面更加方便、简单,目前ASP已成为开发动态网站和Web数据库的主要技术之一.
ASP是一个基于Web服务器的脚本开发环境,在ASP平台上可开发和运行动态的、交互的、高性能的Web服务器应用程序.
2.2.2ASP访问数据库的工作原理
ASP程序在Web服务器端工作,当前端用户请求一个ASP主页时,Web服务器响应HTTP请求并调用ASP引擎执行该文件并解释执行其中的任何脚本(VBScript或JavaScript),若脚本中有访问数据库请求,立刻通过ODBC或OLE DB与相应的后台数据库相连,由数据库访问组件ADO(ActiveX Data Objects)完成操作,最后,ASP根据访问数据库的结果集生成HTML语言的主页返回给前端用户(工作原理见下图).用户看到的只是HTML网页,看不到ASP的程序代码,增强了保密性.
2.3 ASP连接数据库的方法.
前文已经概述,我们使用的数据库为Acces,这里已ASP链接Acces数据库为例:
有两种方式,个人推荐使用第一种方式.
1、
<%
dim conn,mdbfile
mdbfile=server.mappath("数据库名称.mdb")
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=数据库密码;dbq="&mdbfile
'//若数据库无用户和密码请把“uid=admin;pwd="数据库密码”去掉
%>
2、
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("xxx.mdb")
%>
2.4 ASP访问数据库.
检索记录
一个成功的数据库应用程序都使用 Connection 对象建立链接并使用 Recordset 对象处理返回的数据.通过“协调”两个对象的特定功能,您可以开发出几乎可以执行任何数据处理任务的数据库应用程序.例如,下面的服务器端脚本使用 Recordset 对象执行 SQL SELECT 命令.SELECT 命令检索一组基于查询限制的信息.查询也包含 SQL WHERE 子句,用来缩小查询的范围.此例中,WHERE 子句将查询限制为所有的 Customers 数据库表中包含的姓 Smith 的记录.
注意,在前面的例子中,用来建立数据库连接的 Connection 对象和 Recordset 对象使用该连接从数据库中检索结果.当您需要精确地设置和数据库建立链接所采用的方式时,这个方法是非常有用的.例如,如果您需要在连接尝试失败之前指定等待的时间,则需要使用 Connection 对象去设置属性.但是,如果您仅仅想使用 ADO 默认的连接属性建立连接,则应该使用 Recordset 对象的 Open 方法去建立链接:
当使用 Recordset 对象的 Open 方法建立一个连接时,必须使用 Connection 对象去保证链接的安全.
用 Command 对象改善查询
通过 ADO Command 对象,可以象用 Connection 对象和 Recordset 对象那样执行查询,唯一的不同在于用 Command 对象您可以在数据库源上准备、编译您的查询并且反复使用一组不同的值来发出查询.这种方式的编译查询的优点是您可以最大程度地减少向现有查询重复发出修改的请求所需的时间.另外,您还可以在执行之前通过您的查询的可变部分的选项使 SQL 查询保持局部未定义.