网站首页
手机版

ASP技术访问WEB数据库

更新时间:2006-03-22 09:35:31作者:未知

一. 访问WEB数据库的多种方案

  目前在WINDOWS环境下有多种访问WEB数据库的技术,主要有:

  1.公共网关接口CGI(Common Gateway Interface)

  CGI是较早实现的技术。适用于多种服务器平台,如UNIX、WINDOWS等,但CGI的开发成本高、维护困难、功能有限、不具备事务处理功能、占用服务器资源较多。

  2. INTERNET数据库连接器IDC(Internet Database Connector)

  IDC集成在ISAPI(Internet Server API)中,充分利用了DLL技术,易扩充,但编程较CGI更为复杂,只适用于小型数据库系统。

  3. 先进数据库连接器ADC(Advance Database Connector)

  ADC提供了ActiveX Control来访问数据库,它的主要特点是数据查询由用户端浏览器执行,因而需将服务器端数据库中的部分记录下载到用户端,系统开销较大、响应慢,只适用于特别频繁的数据库查询操作。

  4. JAVA/JDBC语言编程

  JAVA语言是一种面向对象、易移植、多线程控制的语言,可通过JDBC去连接数据库。用JAVA/JDBC编写的软件可移植性强,适用于多种操作系统,但其执行效率和执行速度还不理想,目前无法建立高效、高速的应用。

  5. 动态服务器页面ASP(Active Server Page)

  ASP是微软公司最新推出的WEB应用开发技术,着重于处理动态网页和WEB数据库的开发,编程灵活、简洁,具有较高的性能,是目前访问WEB数据库的最佳选择。

  二. ASP简介

  1.ASP访问数据库的原理

  ASP是服务器端的脚本执行环境,可用来产生和执行动态的高性能的WEB服务器程序。

  当用户使用浏览器请求ASP主页时,WEB服务器响应,调用ASP引擎来执行ASP文件,并解释其中的脚本语言(JScript 或VBScript),通过ODBC连接数据库,由数据库访问组件ADO(ActiveX Data Objects)完成数据库操作,最后ASP生成包含有数据查询结果的HTML主页返回用户端显示。

  由于ASP在服务器端运行,运行结果以HTML主页形式返回用户浏览器,因而ASP源程序不会泄密,增加了系统的安全保密性。此外,ASP是面向对象的脚本环境,用户可自行增加ActiveX组件来扩充其功能,拓展应用范围。

  2.ASP页面的结构:

  ASP的程序代码简单、通用,文件名由.asp结尾,ASP文件通常由四部分构成:

  1) 标准的HTML标记:所有的HTML标记均可使用。

  2) ASP语法命令:位于<% %> 标签内的ASP代码。

  3) 服务器端的include语句:可用#include语句调入其它ASP代码,增强了编程的灵活性。

  4) 脚本语言:ASP自带JScript和VBScript两种脚本语言,增加了ASP的编程功能,用户也可安装其它脚本语言,如Perl、Rexx等。

  3.ASP的运行环境

  目前ASP可运行在三种环境下。

  1) WINDOWS NT server 4.0运行IIS 3.0(Internet Information Server)以上。

  2) WINDOWS NT workstation 4.0运行Peer Web Server 3.0以上。

  3) WINDOWS 95/98运行PWS(Personal Web Server)。

  其中以NT server上的IIS功能最强,提供了对ASP的全面支持,是创建高速、稳定的ASP主页的最佳选择。

  4.ASP的内建对象

  ASP提供了六个内建对象,供用户直接调用:

  1) Application对象:负责管理所有会话信息,可用来在指定的应用程序的所有用户之间共享信息。

  2) Session对象:存贮特定用户的会话信息,只被该用户访问,当用户在不同WEB页面跳转时,Session中的变量在用户整个会话过程中一直保存。Session对象需cookie支持。

  3) Request对象:从用户端取得信息传递给服务器,是ASP读取用户输入的主要方法。

  4) Response对象:服务器将输出内容发送到用户端。

  5) Server对象:提供对服务器有关方法和属性的访问。

  6) Object Context对象:IIS 4.0新增的对象,用来进行事务处理。此项功能需得到MTS(Microsoft Transcation Server)管理的支持。

  5. ASP的主要内置组件:

  1) Ad Rotator组件:用来按指定计划在同一页上自动轮换显示广告,用于WWW上日益重要的广告服务。

  2) Browser Capabilities组件:确定访问WEB站点的用户浏览器的功能数据,包括类型、性能、版本等。

  3) Database Access组件:提供ADO (ActiveX Data Objects)来访问支持ODBC的数据库。

  4) File Access组件:提供对服务器端文件的读写功能。

  5) Content Linking组件:生成WEB页内容列表,并将各页顺序连接,用于制作导航条。

  此外,还可安装Myinfo、Counters、Content Rotator、Page Count等组件,用户也可自行编制Actiive组件,以提高系统的实用性。

  6. Database Access组件ADO

  WWW上很重要的应用是访问WEB数据库,用ASP访问WEB数据库时,必须使用ADO组件,ADO是ASP内置的ActiveX服务器组件(ActiveX Server Component),通过在WEB服务器上设置ODBC和OLEDB可连接多种数据库:如SYBASE、ORACLE、INFORMIX、SQL SERVER、ACCESS、VFP等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。

  ADO组件主要提供了以下七个对象和四个集合来访问数据库。

  1) Connection对象:建立与后台数据库的连接。

  2) Command对象:执行SQL指令,访问数据库。

  3) Parameters对象和Parameters集合:为Command对象提供数据和参数。

  4) RecordSet对象:存放访问数据库后的数据信息,是最经常使用的对象。

  5) Field对象和Field集合:提供对RecordSet中当前记录的各个字段进行访问的功能。

  6) Property对象和Properties集合:提供有关信息,供Connection、Command、RecordSet、Field对象使用。

  7) Error对象和Errors集合:提供访问数据库时的错误信息。

  三. ASP访问数据库步骤

  在ASP中,使用ADO组件访问后台数据库,可通过以下步骤进行:

  1. 定义数据源

  在WEB服务器上打开“控制面板”,选中“ODBC”,在“系统DSN”下选“添加”,选定你希望的数据库种类、名称、位置等。本文定义“SQL SERVER”,数据源为“HT”,数据库名称为“HTDATA”,脚本语言采用Jscript。

  2,使用ADO组件查询WEB数据库

  1) 调用Server.CreateObject方法取得“ADODB.Connection”的实例,再使用Open方法打开数据库:

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

  conn.Open(“HT”)

  2) 指定要执行的SQL命令

  连接数据库后,可对数据库操作,如查询,修改,删除等,这些都是通过SQL指令来完成的,如要在数据表signaltab中查询代码中含有“X”的记录

  sqlStr = “select * from signaltab where code like ‘%X%’”

  rs = conn.Execute(sqlStr)

  3) 使用RecordSet属性和方法,并显示结果

  为了更精确地跟踪数据,要用RecordSet组件创建包含数据的游标,游标就是储存在内存中的数据。

  rs = Server.CreateObject(“ADODB.RecordSet”)
  rs.Open(sqlStr,conn,1,A)
  注:A=1读取
  A=3 新增、修改、删除
  在RecordSet组件中,常用的属性和方法有:
  rs.Fields.Count: RecordSet对象的字段数。
  rs(i).Name: 第i个字段的名称,i为0至rs.Fields.Count-1
  rs(i): 第i个字段的数据,i为0至rs.Fields.Count-1
  rs("字段名"): 指定字段的数据。
  rs.Record.Count:游标中的数据记录总数。
  rs.EOF: 是否最后一条记录。
  rs.MoveFirst: 指向第一条记录。
  rs.MoveLast: 指向最后一条记录。
  rs.MovePrev: 指向上一条记录。
  rs.MoveNext: 指向下一条记录。
  rs.GetRows: 将数据放入数组中。
  rs.Properties.Count:ADO的ResultSet或Connection的属性个数。
  rs.Properties(item).Name:ADO的ResultSet或Connection的名称。
  rs.Properties: ADO的ResultSet或Connection的值。
  rs.close(): 关闭连接。

  4) 关闭数据库

  conn.close()

  四.查询WEB数据库举例

  下面这段示例程序是访问SQL SERVER数据库的 signaltab表,表中有三个字段:code(代码字段,字符型,3位),class(分类字段,字符型,10位),memo(备注字段,字符型,20位)。程序中数据源DSN:HT、用户名:client、口令:passwd。

  屏幕输入页面input.asp

  <% @ language=javascript %>
  <html>
  <head>
  <title>请输入查询条件PLEASE INPUT CONDITION</title>
  </head>
  <form action=shotquery.asp METHOD="post" target="_self">
  <input TYPE="text" size=6 maxlength=3 NAME=signalCode VALUE="代码"> </font></p>
  </center></div><p></p>
  <input LANGUAGE="JavaScript" TYPE="submit" VALUE=“确认” NAME="B1"
  
  <input TYPE="reset" VALUE=“清除”NAME="B2">
  
  <input LANGUAGE="JavaScript" TYPE="button" NAME="B3" VALUE=“返回”
  ONCLICK="window.history.back()">
  </font></p>
  </center></div>
  </form>
  </body>
  </html>


  数据库处理程序shotquery.asp

  <!--#include virtual="/master/lib.inc"-->
  <script language=javascript runat=server>
  var signalCode=Request.Form("signalCode");
  dbConn = Server.CreateObject("ADODB.Connection");
  dbConn.open("DSN=HT;UID=client;PWD=passwd");
  rs = Server.CreateObject("ADODB.RecordSet");
  var sqlStr = "select * from signaltab order by code";
  rs.open(sqlStr,dbConn,1);
  if(rs.RecordCount < 1) {
  Response.write("<p> 无符合条件记录</p>");
  Response.write("<p><form> <input type='button' value=' 返回' onclick='window.history.back()' name='b1'></form></p>");
  }
  else {
  Response.write("<P><center><B>数据查询结果</B></center></P>");
  Response.write("<tr><td><b>代码</b></td><td><b>分类</b></td><td><b>备注</b></td>");
  for(var i = 1;i <= rs.Pagesize;i++) {
  if(!rs.Eof) {
  Response.write("<td><span style='font-size:9t'>"+rs("code")+"</span></td>");
  Response.write("<td><span style='font-size:9t'>"+rs("class")+"</span></td>");
  Response.write("<td><span style='font-size:9t'>"+rs("memo")+"</span></td>");
  Response.write("</tr>");
  rs.MoveNext();
  }
  else break;
  }
  Response.write("</table></form>");
  rs.close();
  dbConn.close();
  }
  </script>
本文标签: 技术  

为您推荐

浅谈计算机网络环境下的网络教学

网络的发展,创造出全新的网络文化。不少学校顺应时代需要建设了校园网,并连入了互联网,开始了网络教学的尝试。教师在教学过程中如何根据网络教学不同的教学模式,发挥教师的主导作用和激发学生自主学习使学生成为认识的主体,这就要了解网上教学的教学模式、特点、问

2011-11-11 17:33

计算机网络词汇翻译浅析

本文分析了计算机网络词汇翻译中的懒惰现象,对计算机网络词汇翻译中采用的归化异化两种方法进行了论述,认为该懒惰现象具有相对的积极意义。同时,网络词汇既有一般科技术语翻译的特点,又有它独特的翻译方法。对网络词汇的翻译要根据其接受程度和读者的文化包容性,以

2011-11-11 17:32

项目教学法在计算机网络课程中的应用

提高学生计算机知识水平和实践动手能力,是中职学校计算机教育的根本任务。由于中职学生学习积极性不高,计算机教学效率低下,在中职计算机网络课程中采用项目教学法十分必要。

2011-11-11 17:31

浅谈计算机网络中服务的概念

由系统管理员管理的结构化计算机环境和只有一台或几台孤立计算机组成的计算机环境的主要区别是服务。针对计算机网络中的服务概念进行了阐述。

2011-11-11 17:30

浅谈高职院校计算机网络实践教学

目前大部分高职院校都开设有计算机网络技术专业,而实训教学则是计算机网络技术专业教学中很重要的一个组成部分。本文结合当前高职院校计算机网络技术专业的发展趋势,根据实训教学的特点,从网络实训课程的开设、网络实训的过程、网络综合实训等多方面对网络技术专业的

2011-11-11 17:29

浅谈网站服务器安全维护技巧

服务器的维护至关重要,稍有闪失即会使整个 网络 陷入瘫痪。目前,恶意的网络攻击行为包括两类:一是恶意的攻击行为,如拒绝服务攻击、网络病毒等,这些行为消耗大量的服务器资源,影响服务器的运行速度和正常 工作 ,甚至使服务器所在的网络瘫痪;另外一类是恶意的入

2011-11-11 17:29

加载中...