网络系统集成技术 Network System Integrating

Download Report

Transcript 网络系统集成技术 Network System Integrating

第六章 Web数据库开发基础
网络系统集成技术
Networks System Integrating
莆田学院现代教育技术中心
2005年4月
第六章 Web数据库开发基础
莆田学院现代教育技术中心 2005年4月
本章主要内容
6.1 Web数据库的概念
 6.2 Web数据库访问技术
 6.3 Web数据库的技术实现
 6.4 ASP基础——内置对象
 6.5 ASP基础——Web库操作

下学期有《Web数据库程序设计》课,本
章只结合实例作简要介绍
莆田学院现代教育技术中心 2005年4月
6.1 Web数据库的概念
莆田学院现代教育技术中心 2005年4月
What is a Web Database?


A database in a website
Three layer structure:
Browser/Server/Database Server


Client: Browser + HTML standard
Server: HomePage +Programming+Database
HomePage: Forms
 Designing an interacting user interface
Programming: CGI/ASP/PHP/JSP/…
 Writing programs to access a database in a website
Database: Access/SQL server/…
 Building a data storage and management system
莆田学院现代教育技术中心 2005年4月
浏览器上网页形成的过程
网页浏览原理:
浏览器(client端)——用户电脑
发出HTTP请求,并按HTML等形式显示网页文件内容
网站(server端)——Web服务器
网页
响应浏览器请求,传送网页文件给浏览器
文件
地址栏中的网址
http请求
浏览器
用户电脑
传送网页
Web服务器
莆田学院现代教育技术中心 2005年4月
Web数据库的存取方式(一)
浏览器
执行
用户输入数据
CGI程序
返回存取结果
用户电脑
Web服务器
存取
通过服务器端的CGI程序
响应用户查询要求
用户通过表单提交后,指定的
服务器端CGI程序对Web数据库
进行存取操作,而后将结果以
网页(HTML)形式返回到客户端
Web数据库
Web数据库的存取方式(二)
含有ADO对象的ASP指令、
VBScript、JavaScript程序段
浏览器
执行
读取asp网页
返回html码结果
用户电脑
通过服务器端的asp程序
响应用户的要求
ODBC
驱动程序
存取
Web服务器
( IIS或PWS )
服务器接受用户端请求时会判断要求下载
Web数据库
的是否.asp文件,如不是,直接发送网页。
如是,再判断该文件是否含有使用ADO对象的script(JavaScript 或
VBScript)内容。如有,启动对应的ODBC驱动程序,通过ADO对象访
问数据库。如需显示结果,则Script会利用ASP提供的输出对象送出数据
传送给浏览器。
静态网页与动态网页
所谓静态网页,指的是网页从服务器传到
客户端时,网页的内容是“固定不变”的,
也就是说,服务器只是把所存储的网页的
内容原封不动直接传递给客户端浏览器,
这种网页一般是标准的HTML代码。
 所谓动态网页,它在由服务器传递给客户
端的时候将由服务器把它转换成相应的
HTML格式,而且会根据用户的要求和选择
在服务器端做出相应的改变和响应。

莆田学院现代教育技术中心 2005年4月
动态网页

网页的静态和动态,是指网页的内容是否可根据某种条件的改
变而自动改变,与页面是否有动画性变化无关。





网页计数器:动态的,当有人点击网页时,计数器的值会自动增
加
BBS论坛:动态的,用户发布信息时,网页内容会自动更新,显
示出新发布的信息及相关回复;等等。
Flash等动画(如Flash):静态的,一旦制作完成后就不会再改
变。
实现动态网页,要用到一些动态语言,如ASP、PHP、CGI、
JSP、ASP.NET等。因此我们判断动态、静态网页时,可以简
单的认为,采用了以上语言编写的网页,肯定是动态的,而只
采用了html文件的网页,则是静态的。
静态网页文件名后缀有.htm、.html、.shtml、.xml等常见形式,
而动态网页文件名后缀有.asp、.jsp、.php、.pl、.cgi等常见
形式
莆田学院现代教育技术中心 2005年4月
6.2 Web数据库访问技术
莆田学院现代教育技术中心 2005年4月
ASP开发技术

ASP(Active Server Pages, 活动服务器页)
微软公司97年推出的一种网页与数据库解决方案,利用微软的
ActiveX技术在服务器端动态生成HTML页面的一种脚本环境。
ASP是一种运行于服务器端的Web应用程序开发技术,它采用封装对
象,程序调用对象的技术,简化了编程。开发者无需进行复杂编程,
就可以开发出动态的、交互的、各种功能的Web应用程序。
ASP应用程序必须运行在配备IIS(Windows NT/2000/2003)或
PWS(Windows 9X)的服务器上。
ActiveX
 IISMSDN
(Internet
Information Server)
 VC++
的解释:
(Personal Web
A setPWS
of technologies
that Server)
enables software components to interact
with
one another in a networked environment, regardless of the
常用开发工具:
language
in which
they
were created. ActiveX™ is built on the
 Microsoft
Visual
InterDev
Component Object Model (COM).
 Macromedia DreamweaverUltraDev
 《金山词霸》的解释:
最新一代:ASP.NET (http://www.asp.net/)
微软倡导的ActiveX 网络化多媒体对象技术
莆田学院现代教育技术中心 2005年4月
关于ASP.NET


由于ASP程序和网页的HTML混合在一起,使得程序看上去相
当的杂乱。而在现在的网站设计过程中,通常是由程序开发人
员做后台的程序开发,前面有专业的美工设计页面,这样,在
相互配合的过程中就会产生各种各样的问题。同时,ASP页面
是有脚本语言解释执行的,速度受到影响。受到脚本语言自身
条件的限制,而且在编写ASP程序的时候不得不调用COM组件
来完成一些功能。由于以上种种限制,微软推出了ASP.NET。
ASP.NET提供了一个全新而强大的服务器控件结构。从外观上
看,ASP.NET和ASP是相近的,但是从本质上是完全不同的。
ASP.NET几乎全是基于组件和模块化,每一个页、对象和
HTML元素都是一个运行的组件对象。在开发语言上,
ASP.NET抛弃了VBScript和JScript,而使用.NET Framework
所支持的VB.NET,C#.NET等语言做为其开发语言,这些语言
生成的网页在后台被转换成了类并编译成了一个DLL。由于
ASP.NET是编译执行的,所以它比ASP拥有了更高的效率。
莆田学院现代教育技术中心 2005年4月
PHP开发技术

PHP(Personal Home Page Tools)
类似于ASP的一种服务器端脚本语言,其语法大多从C、JAVA、
PERL语言中借来,可更快速开发交互式动态网页。
跨平台强大的数据库集成功能(相同的PHP代码无需更改即可在不
同操作系统的Web服务器上运行),但提供的数据库接口不统一
(如对Oracle、Sybase和MySQL的接口不同)等原因,不适合于电
子商务类网站。
最佳组合:Linux+Apache+MySQL+PHP
目前Internet上流行的网站构架方式,即使用Linux作为操作系统,
Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端
脚本解释器。由于这四个软件都是开放源码软件,因此使用这种方
式不用花一分钱就可以建立起一个稳定、免费的网站系统。
常用开发工具:
 ZDE(ZEND DEVELOPMENT ENVIORMENT)
 PHPED
最新版本:PHP5.0.4 (课件目录下可下载)
主要网站:www.php.net
莆田学院现代教育技术中心 2005年4月
JSP开发技术

JSP(Java Server Pages)
JSP是由Sun Microsystems公司倡导、许多公司参与一起
建立的一种动态网页技术标准。
在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段
(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。Web
服务器在遇到访问JSP网页的请求时,首先执行其中的程序
片段,然后将执行结果以HTML格式返回给客户。程序片段
可以操作数据库、重新定向网页以及发送 email 等等,这
就是建立动态网站所需要的功能。所有程序操作都在服务
器端执行,网络上传送给客户端的仅是得到的结果,对客
户浏览器的要求最低,可以实现无Plugin,无ActiveX,无
Java Applet,甚至无Frame。
跨平台支持(国外电子商务类网站多采有JSP技术)
通过JDBC实现与数据库的连接
莆田学院现代教育技术中心 2005年4月
ASP、PHP与JSP技术性能比较



ASP主要适用于Windows NT/2000/2003 服务器平台,与
IIS配套,无须专门安装即可使用;PHP和JSP在大多数
Linux、微软Windows平台、UNIX平台上均可用,但需专门
安装。
ASP网页的文件扩展名为.asp,PHP网页的文件扩展名
为.php,JSP网页的文件扩展名为.jsp
性能比较(循环性能和数据库存取测试)



循环性能:JSP 20000×20000次循环( 4秒)/ASP和PHP
2000×2000次循环(相差100倍)分别为63秒和84秒
数据库存取(对Oracle8进行1000次插入/更新/选择/删除操作):
JSP 13秒 / PHP 69秒 / ASP 73秒
其余参见P329
表10-1 ASP、PHP与JSP技术的平台性能比较
表10-2 ASP、PHP与JSP技术的应用性能比较
莆田学院现代教育技术中心 2005年4月
CGI开发技术

CGI (Common Gateway Interface , 通用网关接口)
用于连接主页和应用程序的接口。
HTML语言的功能比较贫乏,难以完成诸如访问数据库等一类的操作,
如果需要先对数据库进行操作(比如文件检索系统),然后把访问的结果动
态地显示在主页上,只用HTML是无法做到的,所以CGI便应运而生。
CGI是在WebServer端运行的一个可执行程序,通过主页链接激活进行
调用,并对该程序的返回结果进行处理,显示在主页上。
最常用的CGI编程语言有Perl,此外还有C,C++, shellScript和VB。Perl
编程效率最高,功能最强,但程序调试性较差。
CGI网页的文件扩展名与所用编程语言有关。如Perl为.pl,VB为.bas等。
缺点:安全性较差/繁多进程占用大量服务器资源/编程困难,而且没有自
动保留状态信息的功能(如用户状态),已不多用
此外使用CGI程序时,需要不断地产生和销毁进程(process),执行效
率不 高,一般情况:HTML 100% ASP 10% CGI 1%
莆田学院现代教育技术中心 2005年4月
6.3 Web数据库的技术实现
莆田学院现代教育技术中心 2005年4月
基本原理与流程
Access ODBC Driver
应用程序
VFP ODBC Driver
Access 数据库
VFP 数据库
Oracle ODBC Driver
Oracle 数据库
……




建立数据库
安装该数据库所需的ODBC驱动程序
创建ODBC数据源
制作表单网页和ASP网页
莆田学院现代教育技术中心 2005年4月
小型网站常用Web数据库软件——Access






Microsoft Office家族中的一员,是一种数据库软件。
其数据库中有一个或多个表(table),表中又有一个或多个
数据栏(field),数据栏中存放的是实际的数据(data)。
除了可以用来生成和管理数据库,还有一个功能,即制作
ASP网页。
Access数据库(.mdb)生成的方法:
新建→空Access数据库→创建表→……
可以将其他相关文件(如.dbf、.xls等文件)转换为.mdb
文件(获取外部数据→ 导入)
一个Access数据库可以有多个表。彼此之间可通过主关
键字关联。
莆田学院现代教育技术中心 2005年4月
实用技术




外部数据转入(使用其他
文件的数据)
 获取外部数据→导入
数据转出
 导出
复制数据(上图)
随机密码的生成(下图)
要产生一组介于上限和下限之间的随机数:
(9999-1000) ×Rnd(-Timer())+1000
(上限-下限) × 随机数+下限
示例:
"jdw%"+CStr(Int((9999-1000)*Rnd(-Timer())+1000))+"#"
莆田学院现代教育技术中心 2005年4月
名词解释

ODBC(Open DataBase Connectivity,开放式数
据库互联)
由微软公司制定的数据库标准接口。只要用户使
用的数据库软件提供了ODBC驱动程序,就可让
应用程序来存取这些数据库。
早期的数据库程序开发者必须使用服务器数据库
厂商提供的开发工具才能实现数据库的存取,因
为每种数据库软件建立的文件类型不同。通过
ODBC则可以存取不同厂商所提供的服务器数据
库。
莆田学院现代教育技术中心 2005年4月
创建ODBC数据源
安装数据库驱动程序
在Office套件安装后,一般情况下Access
的ODBC驱动程序为已安装。
 创建系统数据源
系统DSN→添加→选择驱动程序→
ODBC Microsoft Access安装→数据源名
→选取数据库→高级(设置存取密码)

莆田学院现代教育技术中心 2005年4月
检查服务器的ASP是否正常

IIS的默认Web站点设置检查
 主目录
 文档

测试ASP工作是否正常
 编写一个a.asp文档,存放在主目录下
 a.asp文件内容
<%=now%>
 http://127.0.0.1/asp
浏览器窗口上应出现当时日期和时间显示
莆田学院现代教育技术中心 2005年4月
相关的HTML知识(复习)


问题: HTML (Hyper Text Markup Language,超文本标
记语言) —— 为什么如此称呼?
问题: 网页基本构成


问题: 常见标记


<html> <head> <title> <body>
<br> <p> <table> <tr> <td> <a href =“url ”>
问题:表单基本构成
<form name =“student ” action=“url ” method= * >
……
<input type=submit> <input type=reset>
</form>

问题:表单元素——文本框、复选框、单选按钮、列表框…
莆田学院现代教育技术中心 2005年4月
莆田学院现代教育技术中心 2005年4月
常见表单元素(1)

文本框
 <input
type=text value=“name” size= 10
maxlength=20 >
普通文本框显示长度为10字符、最大长度为20个字符
 <input type=password name=“pwd”>
密码型文本框

多行文本框(文本区域)
 <textarea
name=comment rows=5 cols=50
></textarea>
 5行每行50个字符的多行文本框
莆田学院现代教育技术中心 2005年4月
常见表单元素(2)

复选框
 <input
type=checkbox name=fruit1>香蕉
 <input type=checkbox name=fruit2
checked>苹果 (已预选)
 多个复选框中的name不能同值

单选框
 <input
type=radio name=fruit1>香蕉
 <input type=radio name=fruit2 checked>苹
果 (已预选)
莆田学院现代教育技术中心 2005年4月
常见表单元素(3)

下拉列表框
<select name=“xb" size="1">
<option value="jxx">电子信息工程学系</option>
<option selected value="wyx">外国语言学系</option>
<option value="zwx">汉语言文学系</option>
<option value="tyx">体育系</option>
</select>
莆田学院现代教育技术中心 2005年4月
常见表单元素(4)

单选列表框与多选列表框
<select name=“others" size="3" multiple>
<option value="leader">系部领导</option>
<option value="head“ >学院领导</option>
<option value=“student_head">学生干部 </option>
<option value="professors">高职称教师</option>
</select>


size="3” 显示三行
multiple 多选
莆田学院现代教育技术中心 2005年4月
表单及其数据的读取

Form(表单)设计


每一个输入栏必须设定NAME属性,当数据被送出
时,NAME属性的值会和其相对应的VALUE属性的值被
转换为“NAME=VALUE”的形式发送。不同的输入栏中
间会以“&”作分隔,即会形成
“NAME1=VALUE1&NAME2=VALUE2”的形式
两种提交方法

GET 使用URL直接向服务器提交数据


数据加在URL名后,用“?”分隔(总长度不得超过1024个字节)
POST 通过STDIN(标准输入)提交数据

数据编码后隐密发送,且长度不受限制
莆田学院现代教育技术中心 2005年4月
METHOD = GET

GET方法的含义
Brower按HTTP(HyperText Transfer Protocol)将用户
提交的数据传送出去,而Server会把数据存放在服务器环
境变量QUERY_STRING中,供处理程序(由表单的
action属性指定)使用。适合于传输少量的非隐密性的数
据。

什么是环境变量?
一些由WEB服务器软件申明的、保存用户信息的内存区。
当服务器软件一旦运行,这些环境变量就存在于服务器内
存中。当服务器收到一个客户机的请求后,它首先要收集
它能得到的所有相关信息,并把它放入内存的环境变量中,
等待ASP/PHP/CGI等程序去处理。
莆田学院现代教育技术中心 2005年4月
METHOD = POST
POST方法的含义
把用户在表单中填写的数据变成一个数据
包/数据流传给表单的Action属性指定的处
理程序。
 适合传输较大量的或隐密性的数据
 最常用

莆田学院现代教育技术中心 2005年4月
示例
<FORM METHOD=GET action=“http://xxx/a.asp”>
<input name=“name1” value=“aabb”><br>
<input name=“name2” value=“ccdd”><p>
<input type=“submit” value=“submit”>
<input type=“reset” value=“reset”>
</FORM>

提交后相当于客户机向服务器发出了一个如下的URL请求:
http://xxx/a.asp?name1=aabb&name2=ccdd

此时服务器端的环境变量QUERY_STRING和环境变量
REQUEST_METHOD的值改变为:
QUERY_STRING=“name1=aabb&name2=ccdd”
REQUEST_METHOD=GET

ASP程序可以用以下语句读取表单元素的值
Request(“表单元素名”)
Request.QueryString(“表单元素名”) (仅用于GET方法)
莆田学院现代教育技术中心 2005年4月
表单提交时字符的编码规则
变量之间用“&”分隔
 变量与其对应值之间用“=”分隔
 空格以“+”代替
 特殊字符如“&”、 “=”、ASCII码128以上
的字符及汉字,以“%XX”代替,其中“XX”
为特殊字符的16进制ASCII码
 空格为非法数据
 任意不可打印的ASCII控制字符为非法字符

莆田学院现代教育技术中心 2005年4月
示例
表单(6-1.htm)元素:
你的姓名(name):输入“张三”
你的密码(pwd):输入“ab cd”
 性别(male):单选“男”(value=male)


提交给服务器时将会显现:
http://127.0.0.1/test.asp?name=%D5%C5%C8%FD
&pwd=ab+cd&sex=male&Submit=%CC%E1%BD%BB
解读:



%D5%C5 “张” (一个汉字两个字节)
%C8%FD “三”
+ 空格(用“+”代替)
把6-1.htm中的传送方法GET改为POST试试(思考:为什么pwd值不
会显示)※
莆田学院现代教育技术中心 2005年4月
注意:传递信息不仅是FORM
利用Form在不同页面之间传递用户信息是
最可靠的——适用于任何浏览器
 亦可通过其他方式,如ch6-1.1.htm

<a href=“member.asp?name=张三&sex=男&age=23”>张三</a>
<a href=“member.asp?name=张三&sex=女&age=21”>李四</a>

如果ASP文件主要针对Internet,以Form
为佳
莆田学院现代教育技术中心 2005年4月
登录程序示例

6-3.htm
莆田学院现代教育技术中心 2005年4月
6.4 ASP基础——内置对象
莆田学院现代教育技术中心 2005年4月
ASP的内置对象

•
•
•
•
•
•
•
ASP包括7个内置对象,这些内置对象共同组成的ASP的基本框架。内置对
象的意义在于:它们在ASP页内生成且有脚本中使用它们前无须创建。编程
者只要了解这些内置对象的属性、方法和事件,就可以非常方便地开发自己
的Web应用程序。
Request
获取用户通过浏览器表单向服务器发送的信息
Response 将执行结果传输给用户浏览器
Session
用来记录连接者的信息(每个连接者都有一个独立的Session
对象)
Application 用来记录不同网页的共用信息(所有用户可共用该信息)
Server
与用于提供对服务器的访问,如和其他对象配套(如与ADO
对象配套)使用,与库文件产生链接。
Asperror
用于出错处理
Objectcontext 用于通过Microsoft Transaction Server来提交或中止某项
交易
最后两项是ASP 3.0新增的对象
莆田学院现代教育技术中心 2005年4月
在ASP页面中使用脚本



<% %>
IIS默认的脚本语言是
VBScript,必要时可改
为JavaScript
方法:
IIS→默认Web站点→属
性→主目录→配置→应
用程序选项(右图)
莆田学院现代教育技术中心 2005年4月
Request对象


用于处理HTTP协议的请求
获取用户信息可以有多种常用形式

Request(element)
 Request.Form(element) (index)
 Request.QueryString(element)
 Request.QueryString(index)
实例分析


EXAMexam6-1.1.htm及对应的member.asp
Form1.htm及对应的form1.asp
莆田学院现代教育技术中心 2005年4月
Response对象


用于负责HTTP协议的响应,如将asp处理后的变
量值等转换为HTML元素输出到用户浏览器上
常用形式



Response.Write 相当于C语言中的print
Response.Redirect “URL” 实现页面的跳转
Response.End 结束ASP运行进程并将执行好的
HTML文件送向用户浏览器
实例分析

Register.htm及对应的Redirect.asp
莆田学院现代教育技术中心 2005年4月
Server对象


提供对服务器相关的操作
常用形式
Server.CreatObject("ActiveX组件名")


创建一个ActiveX Server组件对象的实例
示例: Server.CreatObject("ADODB.Connection")
Server.MapPath("文件路径\文件名")




将指定的路径及文件映射到服务器网站目录下
如果网站所在虚拟目录是c:\Inetpub\wwwroot
则Server.MapPath("Data.mdb")表示
c:\Inetpub\wwwroot\Daba.mdb
而Server.MapPath("stu\stu.mdb")和
Server.MapPath("..\teacher\teacher.mdb")分别表示
c:\Inetpub\wwwroot\ stu\stu.mdb
c:\Inetpub\teacher\teacher.mdb
莆田学院现代教育技术中心 2005年4月
Session对象




在一次用户访问期间(“会话期间”),当用户在一个应用程序的页与页之
间跳转时,用户信息(如用户在登录时输入的密码)无法保留,其结果要
么某一页可以绕过密码检查而任意访问,要么每一页都要重新输入密
码。
使用ASP的session对象,可以为每个用户保存个人相关信息。例如
用session变量来保存某个用户的帐号和密码,只要用户没有关掉浏
览器,则这些信息会一直得以保存,并可以session变量的形式被调
用。
Session变量的有效执行时间(用户暂停动作时间)默认是20分钟。可
用以下语句改变其值:
Session.Timeout=分钟数
示例:
session("usr")=Request.Form("xh")
session("pwd")=Request.Form("pw")
在本页及以后各页就可以通过下页示例进行密码校验,而不必让用户
每页都输入密码。
莆田学院现代教育技术中心 2005年4月
<% If session("pwd")<>"…" then
%>
<a href=“index.htm">返回上页</a><p>
<% Response.Write "密码输入错误,请返回上页重新输入!"
Response.end
End if %>
<%
If Session("pwd")<>Session("RS").Fields(“password") Then
%>
<a href="xkxt.htm">返回选课系统首页</a><p>
<%
Response.Write “学号、密码输入错误或个人资料不正确,请返
回选课系统首页重新输入!"
Response.End
End if
%>
session("RS").Fields(“password") 是用变量session("usr")从数据库中取出
的用户密码字段值
莆田学院现代教育技术中心 2005年4月
Application对象


用于保存不同用户之间共有的信息
实例(见招生查询首页—2004zs.asp)

最简单的“计数器”
当前在线人数:<%=Application(“whoison")%>人
另一实例:
<%
If Application("whoison")>50 then
response.write "当前在线人数"+cstr(Application("whoison"))+"人。<br><br>"
response.write "选课人数太多,请退回选课首页,稍后再试……<br><br>"
%>
<a href="http://202.101.111.195/cgi-bin/xk0412/xkxt.htm">返回上页</a><p>
<%
response.end
end if
%>
变量Application(“whoison")由一个必须存放在网站根目录下的global.asa文件定义
莆田学院现代教育技术中心 2005年4月
小结:网页数据传送方式比较

让用户提交的信息通过浏览器跨页传送
 表单

希望保存某一用户相关的变量
需要在一次访问多页文件中使用时
 Cookie 需要在客户端长期保存用户信息以便
多次访问使用时
 Session

多个用户共同使用某一共享变量
 Application
莆田学院现代教育技术中心 2005年4月
VBScript常识







变量命名类似于C语言,但首字符必须是字母。
变量不必先声明再使用
变量名称和关键字无大小写之分
字符串——用单引号或双引号括起
整数/小数型
布尔型 True/False
日期型 用#…#括起


示例:#May 12,2005#
控制结构(选择\循环) 见后
莆田学院现代教育技术中心 2005年4月
6.5 ASP基础——Web库操作
莆田学院现代教育技术中心 2005年4月
ADO (ActiveX Data Objects)

ADO则是微软公司提供的一组访问Internet数据库专用技术。
它为ASP提供了完整的站点数据库解决方案,它作用在服务
器端,可链接数据库、操作数据库、查询数据库,并可将数
据库访问结果添加到Web页面上。使用ADO可以轻松地完
成对各种数据库(SQL server, Access, Oracle, Sybase)的查
询和存取操作,甚至可从Excel中读取信息。
ADO主要包括Connection,Recordset和Command三个对
象, 它们的主要功能如下:

Connection对象:与DSN结合在ASP与数据库间建立链接关系;

Recordset对象:用于数据查询作业(形成记录指针) ;

Command对象:用来对数据库传递SQL指令,并对数据库进行
存取操作。
ADO已集成于IIS 或PWS中。
莆田学院现代教育技术中心 2005年4月
WEB数据库编程基本模块


建立数据库
打开数据库 (标准语句)
□创建数据库对象 □打开数据库

数据库操作(标准语句)
□提取记录 □查询/新增/删除/更新

关闭数据库(标准语句)

其他常用技术
□页面间的参数传递 □ 用户间的参数传递
莆田学院现代教育技术中心 2005年4月
“芝麻开门” :打开数据库




语句一:建立库对象
Set 对象变量名=Server.CreatObject("ADODB.Connection")
示例:
Set MyCon=Server.CreateObject(" ADODB.Connection ")
CreatObject是Server对象中用于建立一个可与数据库交换数据对象的函
数。上句的功能是建立一个可与数据库交换数据的对象。
语句二:链接数据库
对象变量名.Open 链接字符串,(用户帐号),(密码)
示例(使用ODBC数据源时):
MyCon.Open " DSN=address;UID=;PWD= "
打开ODBC中的数据源address源(UID-用户帐号;PWD-密码)
Open是Connection对象的一个方法。若所需数据库有安全性管制,应附
加用户帐号和密码两项,否则不加。如:
MyCon.Open " DSN=address"
此句的作用类似于FoxBASE语句: use address
莆田学院现代教育技术中心 2005年4月
直接链接时的链接字符串
如果不采用ODBC数据源,则链接字符串的形式如下:
Provider=Microsoft.Jet.OLEDB 4.0; Data Source=数据库路径名称
若所需数据库有安全性管制,应附加用户帐号和密码两项,否
则不加。如对Access 数据库stu.mdb:
Set MyCon=Server.CreatObject("ADODB.Connection")
MyCon.Open "Provider=Microsoft.Jet.OLEDB 4.0;
Data Source=stu.mdb"
如果数据源路径是网站所设定的虚拟目录(设为C:\asp\ptu\),
刚可用
MyCon.Open " Provider=Microsoft.Jet.OLEDB 4.0;
Data Source="&Server.MapPath("stu.mdb")
句中Server.MapPath("stu.mdb")代表C:\asp\ptu\stu.mdb
莆田学院现代教育技术中心 2005年4月
经验:NTFS下ODBC数据源的使用

服务器文件系统为NTFS格式时,如果用户通过浏览器对
ODBC数据库的记录进行更新、删除等写操作,会因权限
不足而出现出错提示(但查询正常)。解决方案:
①
设置权限使IUSR_...(Internet来宾帐号)对
c:\program files\common files\ODBC
文件夹有写入权
②
设置权限使IUSR_...(Internet来宾帐号)对c:\winnt\temp
文件夹有写入权
③
设置权限使IUSR_...(Internet来宾帐号)对ACCESS数据
库文件所在的文件夹有写入权(读取与写入权限即够了)
莆田学院现代教育技术中心 2005年4月
提取数据库中的记录
建立数据库链接后,connection对象变量
就将在ASP程序中代表所要操作的数据库
 RecordSet的概念
RecordSet用于储存connetcion对象读取
的数据纪录。每个RecordSet对象都相当
于一个数据表,保存着用该对象的Open指
令读取所需的全部记录,并可通过记录指
针的移动对这些记录进行各种库操作(开
始时记录指针指在第一条记录处)

莆田学院现代教育技术中心 2005年4月
典型语句

Set RS=Server.CreateObject(“ADODB.RecordSet”)
建立一个名为RS的RecordSet对象
此句的作用是产生一个可在数据表中移动指针的ADO对
象。

Set RS.ActiveConnection=MyCon
将RS与Connection对象MyCon联系起来。

RS.Open "select * from student where 学号 like
'"&Request.Form("T1")&"'",,1,2
在MyCon代表的数据库中打开数据表student,按where
子句的要求提取记录,存放在所建立的RecordSet对象
RS中,以便进行库操作
莆田学院现代教育技术中心 2005年4月
小结:你明白了没有?



打开Web数据库的操作不同于一般数据库
先建立一个库对象,将它与服务器上的所需操作
的某个数据库链接。在程序中将用也只用该库对
象名代表所操作的数据库。
然后建立一个记录集对象,用它存入所需操作的
全部记录。在程序中将用、也只用该记录集对象
代表所操作的数据。
事实上还有其他一些语句可以实现以上功能。下
学期诸位将会在专门的课程中学到。
莆田学院现代教育技术中心 2005年4月
常用SQL查询语句用法



Select 字段名1,字段名2,…
【例】
from 表名
 Select 姓名,职称
从表中取所指定字段的数据
from 表名
* 表示所有字段
where name=“华生”
Select 字段名1,字段名2, …
 Select 姓名,职称
from 表名
from 表名
where 查询条件
where name=“华*”
从表中取符合查询条件的所指定字段  Select *
的数据(见右例)
from 表名
Select 字段名1,字段名2,…
where name=“*生*”
from 表名
Order by 字段名1,字段名2, … desc
注:在ADO SQL中模糊
从表中取所指定字段的数据,将数据
依序排列(desc表示从大到小排序) 查找格式有所不同(见下)
莆田学院现代教育技术中心 2005年4月
典型ADO SQL查询语句分析

精确查找
Select * from 数据表名 where 字段名=……
例:
Select * from person where name=‘陈秀振’
Select * from chengji where 考试日期
=#2000/6/8#
Select * from abc where wages =
‘“&Request.Form(“T1”)&” ’
莆田学院现代教育技术中心 2005年4月

模糊查找
在where 子句中用 like 和通配符%、_表示
%相当于DOS命令中的*
_相当于DOS命令中的?
例:
Select * from person where name like ‘陈秀%’
Select * from abc where name like
‘ %“&Request.Form(“T1”)&” %’
莆田学院现代教育技术中心 2005年4月
记录集操作常用语句

读取某一字段的数据
移动记录指针

临界判断

关闭记录集

记录集名.Fields(“字段名”)
刚建立记录集(RecordSet)对象时,记录指针位置——在第一条
记录集名.MoveNext
将记录指针移至下一条记录处
记录集名.MovePrevious 将记录指针移至上一条记录处
记录集名.MoveFirst
将记录指针移至第一条记录处
记录集名.MoveLast
将记录指针移至最后一条记录处
记录集名.EOF 为False表示记录指针仍指向记录集中的某一条记录,
为True,则表示记录指针已移到最后一条记录之下(移到底了)
记录集名.BOF 为False表示记录指针仍指向记录集中的某一条记录,
为True,则表示记录指针已移到第一条记录之上(移到顶了)
记录集名.Close (关闭记录集,释放所占内存)
Set 记录集名=Nothing (仅删除记录集中的所有记录,不关闭对象)
莆田学院现代教育技术中心 2005年4月
其他常用语句

判断语句(示例)

循环语句
If 记录集名.EOF Then
Set 记录集名=Nothing
Else
……
End If
For 循环变量=初值 to 终值 step=步长
……
Next
Do While
Do
 While …
……
……
……
Loop
Loop While
Wend


记录总数

变量=记录集名.RecordCount
莆田学院现代教育技术中心 2005年4月
修改数据库常用SQL语句

删除记录
 Delete

from 表名 Where 条件式
修改记录
表名 Set 字段名=字段值,字段名=字段
值… Where 条件式
 Update

添加记录
Into 表名 (字段名列表) Values(字段
值列表)
 Insert
莆田学院现代教育技术中心 2005年4月
修改数据库的基本语句
‘声明connection对象变量MyCon
Set MyCon=Server.CreateObject(" ADODB.Connection
")
MyCon.Open " DSN=address“
SQLstr = “ … “ (引号中为修改数据库常用SQL语句)
Mycon.Execute(SQLstr)
如果需要在操作后显示数据,可改用
‘声明RecordSet对象变量RS
Set RS=Server.CreateObject(“ADODB.RecordSet”)
Set RS= Mycon.Execute(SQLstr)
然后通过其他语句显示RS中相应字段的数据
莆田学院现代教育技术中心 2005年4月
实例分析
教职工工资查询 gz
 招生查询 2004zs
 增加选修课程(新增记录)
insert.asp/AddNew1.ASP
 删除课程(删除记录)
DelCourse.ASP
 密码修改(修改记录)
pwchange.asp和pwchange1.asp

莆田学院现代教育技术中心 2005年4月
推荐阅读
刘禾 蔡锋编著《精通ASP架站技巧》中国
青年出版社01年4月版
 唐青松 颜亮编著《ASP应用开发全攻略宝
典》中国水利水电出版社00年1月版

莆田学院现代教育技术中心 2005年4月
第六章 上机作业题
1.
2.
3.
建立个人的FTP网站,设置一个有权上传文件的帐号,
将网址、帐号和密码发给老师。
建立一个ASP网站,任何网上用户都可以模糊查询你们
班同学的有关资料。但只有你建立的特定用户可以修改
(增加、删除或更新)这些同学的资料。将网址、用户
帐号和密码发给老师,供老师访问检查。
将ASP网站的全部文件放在你建立的FTP网站上,供老
师下载检查。
说明:老师将把批改意见发到你的FTP上。
莆田学院现代教育技术中心 2005年4月