ASP开发中数据库文件调用的捷径

引言 
  本文针对ASP程序设计中最基础、也是最关键的部分"数据库文件的调用"进行说明,同时谈谈ASP程序设计中数据库文件调用的一些技巧。

  ASP简介

  ASP(Active Server Pages)是微软于1996年推出的Web应用程序开发技术,它是一种脚本语言、ActiveX组件及HTML语言等的综合,微软把它描述为"一个服务器的脚本环境,在这里可以生成和运行动态的、交互的、高性能的Web服务器应用程序"。其主要功能是为生成动态的、交互式的Web服务器应用程序提供一种功能强大的方式或技术。其特点是命令和脚本都在服务器中解释执行,然后送到客户端浏览器的内容只是标准的HTML页面。其优点是程序设计简单易懂,而且方便快捷。ASP在国内的应用已非常普遍,相当一部分的动态网站都运用了ASP技术。

  ASP数据库文件的调用

  虽然不同的系统可能安装不同的数据库驱动程序,但一般的服务器系统都基本支持IIS4.0/5.0,所以服务器系统上至少会有Microsoft Access Driver、Microsoft ODBC for Oracle、SQL Server等3种数据库驱动程序。因此,服务器系统至少可以使用Access、Oracle、SQL Server等3种数据库来从事ASP网页数据库设计。由于Microsoft Access 97/2000属于微软的Office系列之一,且界面和Office系列软件相似,学习起来基本没什么障碍,因此,本文将从初学者入门的角度,使用Access数据库文件来进行ASP程序设计。

  通过Access应用程序制作如图1的数据库文件(friend.mdb)

图1

  那么,ASP程序设计中调用该数据库文件有两种方式,一种为直接在"控制面板"的"数据源(ODBC)"上进行手工设置;另外一种是编程,通过相对路径调用数据库文件,这种方式可适用在任何一台服务器上而不用再进行配置。第一种方式较为简单安全,本文所谈的是第二种方式。

  下面列出ASP程序设计中一般读取数据库文件中表记录的方法:

01: <HTML><BODY>
02: <!--#include file="adovbs.inc"-->
03: <%
04:  '使用ASP的Connection 对象打开数据库,数据库文件为上图的<Friend.mdb>'
05:  Dim objConn
06:  Set objConn=Server.CreateObject("ADODB.Connection")
07:  objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
08:    "Data Source=" & Server.MapPath("Friend.mdb")
09:  objConn.Open
10:  读取"data"表的记录,然后存放在Record set对象
11:  Dim objRS
12:  Set objRS=Server.CreateObject("ADODB.Recordset")
13:  ObjRS.Open "data",objConn,adOpenKeyset,adLockOptimistic,adCmdTable
14:  '将目前指针所指到的记录显示在浏览器上
15:  If Not objRS. EOF then
16:   Response.Write "编号:"&objRS("编号")& "<BR>"
17:   Response. Write "姓名:"&objRS("姓名")& "<BR>"
18:   Response. Write "性别:"&objRS("性别")& "<BR>"
19:  Else
20:   Response.Write "到达数据库的结尾,已经显示完所有符合条件的记录"
21:  End If
22:   '关闭数据库连接并释放对象实例
23:   ObjRS. Close
24:   Set objRS=Nothing
25:   ObjConn.Close
26:   Set objConn=Nothing
27: %>
28: </BODY></HTML>

  上述代码为ASP编程中一般打开Access数据库文件的设计步骤。

  数据库文件调用的技巧

  (1)事实上,无论换成哪个Access数据库,打开数据库连接与读取表记录的步骤是相同的,其中的变量在于数据库文件的名称及表的名称,所以可以将上述程序的第3~13行改写成函数的形式,并存成一个文件如:ADOFunctions.asp,日后要打开某个数据库文件的话,就把该文件ADOFunctions.asp 装(include)进来,代码如下:

<%
 Dim objConn
 '变量Filename为数据库文件名,变量Table Name为表名
 Function GetRecordset(FileName,TableName)
  '使用ASP的Connection 对象打开数据库
  Set objConn=Server.CreateObject("ADODB.Connection")
  objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
     "Data Source=" & Server.MapPath("Filename")
  objConn.Open
  '读取表的记录,然后存放在Record set对象"objRS"
  Dim objRS
  Set objRS=Server.CreateObject("ADODB.Recordset")
  ObjRS.Open TableName,objConn,adOpenKeyset,adLockOptimistic,adCmdTable
 End Function
%>

  由上述代码可知,函数名为GetRecordSet,其返回值是存放了表记录的Record set对象实例,存成文件名为ADOFunctions.asp。现在,利用该文件就可以读取任何数据库文件的记录了。如一般读取数据库的编程可简化如下:

<HTML><BODY>
<! --#Include file="adovbs.inc"-->
<! --#include file="ADOFunctions.asp"--> 
<%
 '调用GetRecordset函数取得一个Record set对象实F例,然后指派给变量objRS
 Dim objRS
 Set objRS=GetRecordset("Friend.mdb","data")
 '将目前指针所指到的记录显示在浏览器上
 If Not objRS.EOF Then
  Response.Write "编号:"&objRS("编号")& "<BR>"
  Response.Write "姓名:"&objRS("姓名")& "<BR>"
  Response.Write "性别:"&objRS("性别")&"<BR>"
 Else
  Response.Write "到达数据库的结尾,已经显示完所有符合条件的记录"
 End If
 '关闭数据库连接并释放对象实例
 ObjRS. Close
 Set objRS=Nothing
 ObjConn.Close
 Set objConn=Nothing
%>
</BODY></HTML>

  因此,只要在这句代码Set objRS=GetRecordset("Friend.mdb", "data")中改变数据库名称和表名称就可以调用任何Access数据库文件了,当然,要注意的是,后面的数据库中每个表的字段名一定要匹配。

  (2)另外,无论换成哪个Access数据库,打开数据库连接与筛选表记录的步骤也是相同的,其中的变量在于SQL语句(如:"SELECT * FROM data")、数据库文件的名称及表的名称。因此同样道理,可以将这3个变量作为函数的参数,撰写GetSQLRecordset函数,并存成文件名为ADOSQLFunctions.asp,日后要用到的话,只要在程序的最前面把这个文件Include进来,就可以利用GetSQLRecordset函数打开数据库连接,同时也进行筛选表记录,该函数的返回值是存放了符合SQL语句的Record set对象实例。

  代码如下:

<% 
Dim objConn
Dim GetSQLRecordset
Function GetSQLRecordset(strSQL,FileName,TableName)
'使用ASP的Connection 对象打开数据库

Set objConn=Server.CreateObject("ADODB.Connection")
objConn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=" & Server.MapPath("Filename")
objConn.Open
'从表读取符合SQL语句的记录并存放在Record set对象
Set GetSQLRecordset=Server.CreateObject("ADODB.Recordset")
GetSQLRecordset.Open_ strSQL,objConn,adOpenKeyset,adLockOptimistic,adCmdText
End Function
%>

  上述代码中函数名称为:GetSQLRecordset,文件名为ADOSQLFunctions.asp。

  现在,利用该文件就可以调用任何Access数据库的连接,同时对表记录进行筛选的操作。以Friend.mdb文件为例,列出表data中所有的记录,程序代码如下:

<HTML><BODY>
<!--#include file="adovbs.inc"-->
<!--#include file="ADOSQLFunctions.asp"--> 
<%
 Dim objRS
 Set objRS=GetSQLRecordset("SELECT 编号,姓名,性别from_ data","Friend.mdb","data")
 Do While Not objRS.EOF 
  Response.Write "编号:"&objRS("编号")&"<BR>"
  Response.Write "姓名:"&objRS("姓名")&"<BR>"
  Response.Write "性别:"&objRS("性别")&"<BR>"
 Loop

 objRS.Close
 Set objRS=Nothing
 ObjConn.Close
 Set objConn=Nothing
%>
</BODY></HTML>

  小结

  在ASP编程中,利用好函数往往可以对我们的程序代码简单明了化,读取条理也容易维护,同时也可避免大量的重复繁杂的代码。像上述的情况,若只是简单的与数据库连接,则用第一种情况,将文件ADORecordset.asp 装(include)进来就可以了,若要对数据库中某个表的记录进行筛选或其他SQL语句操作,则用第二种情况,将文件ADOSQLRecordset.asp装进来就可以了。

时间: 2006-09-02

ASP开发准则是什么

虽然许多使用 ASP 的 Web 站点根本就不用组件,但在这篇文章中假定 ASP 是 Internet 客户机和组件之间的桥梁. ASP 和组件之间的划分服务 ASP 最常用于在服务器上创建供客户机使用的 HTML 或 XML 文件,因此我们主要讨论这种使用方案.这就引出了一个常见的问题,如果 ASP 页面在服务器上,那么它们是否属于业务层的一部分呢?在组件世界中,答案通常是否.虽然 ASP 确实在服务器上运行,而且可能与应用程序服务器在同一个空间,但是这不能使它成为业务逻辑的一部分. 随着用户

ASP存储过程开发应用详解第1/2页

我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了. 现在,我基本上通过调用存储过程访问SQL Server,以下的文字都是实践的总结,希望对大家能有帮助. 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令. 定义总是很抽象.存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Serv

动态网站web开发 PHP、ASP还是ASP.NET

这是一个经常被提出的问题,并且它很容易把人们带入争论Linux还是Windows的歧途.这样的争论事实上反映出了对于相互竞争的Web开发技术要进行并行分析是多么困难的一件事情,而这一难度同时因为开发人员对任何可比较操作系统的不同意见而大大增加. 所以与其继续参与到这样的争论中,我们还不如来看看每一项技术对于特定Web开发以及运行环境所表现出的优势.尽管ASP和PHP的相似程度大于其中任意一种与ASP.NET的相似程度,我们还是要讨论ASP.NET.原因是开发人员常常将其与ASP相混淆,并且在微软

ASP开发中存储过程应用全接触

ASP开发中存储过程应用全接触        ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过.我在初学时查阅过大量相关资料 ,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为 它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了. 现在,我基本上通过调用存储过程访问SQL Server,以下的文字都是实践的总结,希望对大家能有帮助. 存储过程就是作为可执行对象存放在数据库中的

用ASP开发网页需要牢记的注意事项

步 骤 1.永远不要相信用户输入的内容具有适当的大小或者包含适当的字符.在使用其做出决策之前应该始终对用户输入进行验证.最佳的选择是创建一个 COM+ 组件,这样您可以从 ASP 页面中调用该组件来验证用户的输入内容.您也可以使用 Server.HTMLEncode 方法.Server.URLEncode 方法,或者本页底部代码示例中的某一个. 2.不要通过连接用户输入的字符串来创建 ASP 页中的数据库连接字符串.恶意用户可以通过在他们的输入内容中插入代码来获取数据库的访问权限.如果您使用的是

ASP开发中可能遇到的错误信息中文说明大全(整理收集)第1/2页

如果你搞过ASP的开发,你就会为ASP中没有好的完整的调试环境而头疼不己.我收集了网上相关所有信息提示,想给它做成单机的ASP开发错误提示软件中的数据库,但是我发现应该还有些是我所不清楚或说是了解的.所以放在这里,请知道的朋友再次提出你的观点或说更详细的信息,我将非常感激!如果有好的建议,如果软件出来后,我将首先免费送给您尝试使用! 再次希望看到这个文章的朋友们,能够支持和鼓励我做这个东西!(反正我觉得做这样东西的好像就没有啊),请大家指出问题并且补充!!!呵!!!!!-------------

支付宝 接口开发帮助(asp,php,asp.net,jsp)

推荐两文:1.支付宝购买流程 2.支付宝卖家流程 支付宝接口提供最新的ASP.ASP.NET.PHP.JSP等目前网络上最流行的源码包文件,程序员可以下载后按本文介绍更改参数和布置即可!而本文拿ASP.NET(C#)详细介绍. ------------------------------------------------------------------------------------- 摘自:支付宝官方 点击下载 实物商品交易服务集成技术文档和服务介绍 按照文档中的提示进行集成操作.

ASP 常见对象总结(熟悉一下利用以后的开发使用)

ADO对象: Connection Command Recordset Record Stream ASP支持的对象很多,可以自己编写COM组件,下面是我们经常使用的: Server.CreateObject("scripting.filesystemobject") Server.CreateObject("scripting.dictionary")hashtable server.createxobject("word.Application&quo

ASP开发网页牢记注意事项

ASP开发网页牢记注意事项     选择自 RAINMAN_NET 的 Blog   关键字   ASP开发网页牢记注意事项  出处 永远不要相信用户输入的内容具有适当的大小或者包含适当的字符.在使用其做出决策之前应该始终对用户输入进行验证.最佳的选择是创建一个 COM+ 组件,这样您可以从 ASP 页面中调用该组件来验证用户的输入内容.您也可以使用 Server.HTMLEncode 方法.Server.URLEncode 方法,或者本页底部代码示例中的某一个.  不要通过连接用户输入的字符串

ASP动态网页制作技术经验分享

学好一门编程语言有两个条件是必不可少的,一是理论与实践结合.在实际例程去验证书本上的理论能加深你对理论的理解:二是学会总结,把学习.运用中的心得体会记下来,当成一种经验或者教训加以提炼并在日后的应用中加以改进,一定能提高你对这门编程语言的认识.以下是笔者在学习与运用ASP编程中的两点经验,希望能对大家有所帮助. ASP页面内VBScript和JScript的交互 ASP具备管理不同语言脚本程序的能力,能够自动调用合适的脚本引擎以解释脚本代码和执行内置函数.ASP开发环境提供了两种脚本引擎,即VB

ASP.NET网页打印(只打印相关内容/自写功能)

昨晚朋友要求在前段时间完成的新闻的网站上加上一个功能,就是在每篇新闻浏览的页面, 加一个打印铵钮.让用户一点打印,能把整篇文章打印.一开始建议朋友,叫用户使用IE浏览器的打印功能,但是朋友说,那个打印功能是把页面的不相关的内容也打印了,用户只想打印整篇文章即可. 既然要改,照做就是了.没有这方面经验,在网上找到很多相关的ASP.NET打印例子,要么太过复杂,要么效果不太理想.最后还是结合这诸多的例子,改写一个合适的功能. 下面是改写的地方,首先在文章浏览的.aspx页面,添加一个Div,并加上r

微信开发 网页授权获取用户基本信息

微信公众平台最近新推出微信认证,认证后可以获得高级接口权限,其中一个是OAuth2.0网页授权,很多朋友在使用这个的时候失败了或者无法理解其内容,希望我出个教程详细讲解一下,于是便有了这篇文章. 一.什么是OAuth2.0 官方网站:http://oauth.net/   http://oauth.net/2/ 权威定义:OAuth is An open protocol to allow secure authorization in a simple and standard method

ASP开发基于XML的留言板

XML(Extensible Markup Language)是一种基于文本格式的标记语言,它注重对数据结构和数据意义的描述,实现了数据内容和显示样式的分离,而且是与平台无关的.由于XML注重数据内容的描述,因而,对于数据的检索非常有意义,我们不会再象HTML那样,检索出与我们要求无关的信息.另一方面,XML文件是数据的载体,利用XML作为数据库,不需要访问任何数据库系统,我们可以使用任意WEB技术来显示我们的数据,比如HTML,Flash 5 等.由于世界各大计算机公司的积极参与,XML正日益

在Asp.net网页上写读Cookie的两种不同语法介绍

在做asp.net开发时,为了存储一些信息,我们常常是Session与Cookie同时使用.Session资料在我们上会找到很多相关的,而Cookie相关的资料相对很少,所以想补充一下.下面是写Cookie的语法: 复制代码 代码如下: Response.Cookies["曲奇名称"].Value = "我们"; 读Cookie的语法: 复制代码 代码如下: if (Request.Cookies["曲奇名称"] != null) { strin