站长中国
设为首页 | 站长论坛

站长论坛 站长下载
您所在的位置: 站长中国 > 站长学院 > 网络编程 > ASP专区 > 正文

ASP技术访问WEB数据库
  2007年06月01日00:58:21  评论(1条) 字体:[ ]
相关热点: 数据库 访问 ASP 对象 组件 服务器 WEB
一. 访问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生成包含有数据查询结果的HT
ML主页返回用户端显示。
  由于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、ACC
ESS、VFP等,是对目前微软所支持的数据库进行操作的最有效和最简单直接的方法。
  ADO组件主要提供了以下七个对象和四个集合来访问数据库
  1) Connection对象:建立与后台数据库的连接。
  2) Command对象:执行SQL指令,访问数据库
  3) Parameters对象和Parameters集合:为Command对象提供数据和参数。
  4) RecordSet对象:存放访问数据库后的数据信息,是最经常使用的对象。
  5) Field对象和Field集合:提供对RecordSet中当前记录的各个字段进行访问的功
能。
  6) Property对象和Properties集合:提供有关信息,供Connection、Command、Re
cordSet、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表,表中有三个字段:co
de(代码字段,字符型,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=\"代码\"> </fo
nt></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=' 返回' oncli
ck='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></t
d>\");
  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>


责任编辑:

收藏本文 打印 打印本文  推荐本文 告诉好友 投稿 投稿邮箱

站长排行

学院

新闻

专栏

盈利

[揭密网络黄链]中国留学生买凶专破日本
JSP语法(6)
超强弹出窗口代码,什么都挡不住
FLASH视觉特效实例之地震效果
贴吧发帖机使用教程(绝对原创)
关于数据分页(转自www.codeproject.co
ASP实现文件直接下载
Photoshop制作光感超酷效果水晶球
 遍历ASP.NET页面控件
永远的后门[经典]+查不出的后门
淘宝网卖家公然叫卖“艳照门”照片集
驳《百度Hi面世对腾讯有利》
Google绿色专家质疑黑色背景网页节省资
国内各IT企业办公环境揭秘(多图)
阿里妈妈广告卖主全攻略
站长创业源动力 主流站长站赏析
推荐阅读:80年小子的创业道理
Discuz!6.0猛将出击 最强论坛程序酷炫
我的网络,我的团队:专访李文明
百度新闻频道改版十天 流量止跌反弹翻
ECSHOP模板制作参考文档
悬挂阿里妈妈会否被百度惩罚
阿里妈妈是否是中小站长的救世主?
最强网店ECShop发新版 众多酷炫功能给
ECSHOP模板下载
土豆网,优酷网,爆米花等视频网站采集
DedeCms模板安装/制作概述
网上商店系统巅峰对决 ECShop vs ShopE
艰难的走在创业的路上 第一天
编程中国全站采集规则
性福联盟 一个不尊重站长的联盟
大脚:日赚100元—揭露最新firefox欺骗
大脚:垃圾站超级赚钱法之二—突破“站
大脚:垃圾站超级赚钱法之——前言
迅雷联盟、快车联盟收入对比
经理人必看的十个管理网站
Google Adsense的秘密 第二版
西联汇款兑付城市查询
不用SEO取得成功的10个步骤
关于做GOOGLE的五条经验
站长学院  网页设计 建站教程 图形图象 网络编程

Photoshop CS3
Photoshop CS3
不用Photoshop
不用Photoshop

DIV+CSS的开发方式 听听另外的
虚拟主机建站动易里快速生成的
VBScript特效代码 满屏幕乱跑
牛气!一个菜鸟站长的超强网站
创建、维护一个个人博客的“投
让网站流量稳步飙升的秘籍
网站推广的基本思想

新闻线索

如果你有站长界人事变动、重组并购、变革技术出现,以及产品投诉等重要新闻线索,请告诉我们,我们会给予特别关注。
0631-3653338
站长中国编辑部
站长中国24小时新闻热线: 13256307008