网页整合

第6章 与 ASP 有关的数据库

6.1 Microsoft Access

6.1.1 创建一个自己的 Access 数据库(P219)

  Access 2000—文件—新建—数据库—

 1)使用设计器创建表

   设计库结构:字段名称、数据类型,输入记录;

   工具栏按钮:切换编辑数据库结构和表。

    转换字段或记录时,若用鼠标出现死锁,改用键盘方向键。

  2)使用向导创建表

   示例表:联系人、客户、产品、订单、……。

   示例字段:如客户表的字段,客户 ID、公司名称、联系人名字、

公司或部门、记账地址、城市、省份、邮政编码、电话号码、电子邮件

 3)通过输入数据创建表

   直接编辑表中的字段名称后输入记录。

 4)表中加入图书封面字段,输入 JPG 图像文件路径。

  网络上书店库 wssdk97.rar wssdk2000.rar

6.2 Microsoft SQL Server

6.2.2 创建设备和数据库

6.2.2.1 使用企业管理器创建数据库(P227)

 * SQL Server 2000企业管理器窗口

Win 2000
资源管理器窗口
Win 2000 Server IIS
Web 服务器树窗口
SQL 2000 Server
树窗口
桌面

我的电脑

A:软驱

C:硬盘

D:光驱

Internet Explorer

网上邻居

IIS Web 服务器

fsx 主机

Web_zd 站点

FTP_zd 站点

wssd_zd 站点

yjwd 文件夹

txsj 文件夹

Console Root 控制台

MS SQL Server 服务器

SQL Server Group 服务器组

wltd 网络天地服务器

Databases 数据库

wssdk 网上书店库

Tables 表

 

操作 查看 Tools New Database New Login New Job
Tables  21Items
Console Root 控制台

MS SQL Server 服务器

SQL Server Group 服务器组

wltd 网络天地服务器

Databases 数据库

wssdk 网上书店库

Tables 表

sysfiles(系统文件)

sysindexes(系统索引)

sysproperties(系统属性)

systypes(系统类型)

tsjlb(图书记录表)

1. 使用企业管理器创建数据库

  1)双击任务栏 SQL服务器—

     服务器,如,网络天地服务器 wltd—启动。

  2)开始—>程序—>Microsoft SQL Server 2000 ->

      企业管理器(Enterprise Manager)。

  3)企业管理器的[树]窗口

   企业管理器的[树]窗口中逐级创建服务器组、服务器、数据库。

   * 展开网络天地服务器 wltd

   * 右击 Databases—新数据库:

   名称:如,网上书店库 wssdk

   文件名:wssdk_Data.MDF

   存放路径:E:\本地站点\mdb

   初始容量:1MB

 2. 使用企业管理器创建

  1)继续展开企业管理器的[树]窗口

   Databases(数据库)

   wssdk(网上书店库)

   Tables(表)

  2)右击表—新表—定义表结构:字段名、数据类型、字段长度。

  3)NULL约束:是否允许NULL值用空格填充不足部分。

   NULL值:表明字段值是未知,但不等价于数值0或空字符串。

  4)保存—输入表的名称,如图书记录表—确定。

6.3 ASP 存取和管理数据库

6.3.1 创建连接(P231)

 Acces 数据库

Acces
数据库

中国学生网 ASP 会员
虚拟主机、自管主机

新版

OLEDB

"PROVIDER=MICROSOFT.JET.OLEDB.4.0;
DATA SOURCE="&server.MapPath ("/fsxss/mdb/wssdk.mdb")

http://www.6to23.com/
fsxss/wssd/wssd.asp

"PROVIDER=MICROSOFT.JET.OLEDB.4.0;
DATA SOURCE="&server.MapPath
("/mdb/wssdk.mdb")

数据源只要求影射站点根目录
(如,E:/本地站点/)后的路径。

老版
ODBC
创建 DSN

无法使用 DSN "DSN=myAccessDNS"

老版

ODBC
不建 DSN

"Driver={Microsoft Access Driver(*.mdb)};
DBQ="&server.MapPath ("/fsxss/mdb/wssdk.mdb")

"Driver={Microsoft Access Driver(*.mdb)};
DBQ=E:/
本地站点/mdb/wssdk.mdb"

  SQL Server 数据库:数据库和网站服务器位于同一台主机。

SQL Server
数据库

自管主机
OLEDB

"PROVIDER=SQLOLEDB;
DATA SOURCE==Local Server;
UID=sa;PWD=
;Database=wssdk"

ODBC
创建 DSN

"DSN=mySQLServerDNS;
UID=admin;PWD=;Database=wssdk"

ODBC
不建 DSN

"Driver={SQL Server};
Server=Local Server;
UID=sa;PWD=;Database=wssdk
"

例如:wssd_SQL.rar

* 发布 Web 站点 ASP 网页

  本地自管主机要设置 IIS 或 Dreamweaver,远程虚拟主机不是用户

设置。包含文件中连接数据库的路径不同:本地如,\mdb\wssdk.mdb,

远程如,/fsxss/mdb/wssdk.mdb。

 1.本地自管主机 IIS 发布 Web 站点 ASP 网页

  1)软件要求 Windows Server 2000 服务版,支持 ASP 脚本运行。

  2)Windows 网上邻居属性,设置网卡 IP 地址,如 200.0.0.1。

  3)IIS 站点服务器设置

     Web 站点:说明如,网络书店;IP 地址如,200.0.0.1

     主目录:如,E:\本地站点

     文档:如,index.asp

     启动运行网络书店

  4)网页中指定调用脚本

    <%@Language="VBScript" CodePage="936"%>

  5)用 OLEDB 连接数据库(P231)

    新版使用方便,不用设 DSN。

  提供程序 PROVIDER:MICROSOFT.JET.OLEDB.4.0;

    数据源 DATA SOURCE:指明站点根目录(如,E:/本地站点/)后的

路径。如 \mdb\wssdk.mdb。

set cn=Server.CreateObject("ADODB.Connection")

cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=/mdb/wssdk.mdb"

  6)用 ODBC 连接数据库(P236)

     可不设置 DSN ,在 ASP 中指定数据库驱动程序和路径,

     数据库驱动程序 Driver{Microsoft Access Driver(*.mdb)};

     数据库查询 DBQ:

     指明站点根目录 (如,E:/本地站点/)后的路径。

     创建数据库连接 cn、记录集 rs。

set cn=Server.CreateObject("ADODB.Connection")

cn.open "Driver={Microsoft Access Driver(*.mdb)};

DBQ=E:/网站测试/mdb/wssdk.mdb"

 2.远程虚拟主机发布 Web 站点 ASP 网页

 1)用 OLEDB 连接数据库(P231)

  提供程序 PROVIDER:MICROSOFT.JET.OLEDB.4.0;

  数据源 DATA SOURCE

    服务器对象.影射路径“/会员名/路径/数据库名”

  ASP 会员路径要加会员名:

  如,Server.MapPath ("/fsxss/mdb/wssdk.mdb")

  虚拟主机路径与自管主机相同:

  Server.MapPath ("/mdb/wssdk.mdb")

     http://www.6to23.com/fsxss/wssd/wssd.asp

  set cn=Server.CreateObject("ADODB.Connection")

  cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

  DATA SOURCE="+Server.MapPath ("/fsxss/mdb/wssdk.mdb")

  2)用 ODBC 连接数据库(P236)

    数据库驱动程序 Driver{Microsoft Access Driver(*.mdb)};

     数据库查询 DBQ:

    服务器对象.影射路径“/会员名/路径/数据库名”。

set cn=Server.CreateObject("ADODB.Connection")

cn.open "Driver={Microsoft Access Driver(*.mdb)};

DBQ="+Server.MapPath ("/fsxss/mdb/wssdk.mdb")

 3.本地自管主机 Dreamweaver 测试服务器发布 Web 站点 ASP 网页

  1)设置测试服务器,类型:ASP JavaScript,访问:本地/网络,

文件夹:E:\本地站点,URL 前缀:http://localhost/。

  2)Windows 开始菜单设置数据源(ODBC),如数据源名 wssdk_DSN。

  3)Dreamweaver 应用程序面板设置数据库连接,如 wssdk_cn

绑定记录集,如 tsjl_rs。服务器行为,如 记录集(tsjl_rs)。

  4)可以上传到远程虚拟主机后下载到本地的文件:主页面 wssdk_cn

     需要本地设置的操作:数据源名 wssdk_DSN。

6.3.1.2 用 ODBC 产生数据库连接

 1.建立数据源名 DSN(P232)

  控制面板—ODBC—建立系统 DSN 或文件 DSN—ASP 中使用 DSN。

set cn=Server.CreateObject("ADODB.Connection")

cn.open "DSN=myAccessDNS"

 2.不建立数据源名 DSN-less(P236)

   在 ASP 中指定数据库文件位置。

 3.自管主机 ODBC:无DNS、SQL 数据库驱动程序。

例如:/wssd/wssd_SQL.asp

set cn=Server.CreateObject("ADODB.Connection")

cn.Open"Driver={SQL Server};Database=wssdk;Server=Local Server;UID=sa;PWD="

  数据库驱动为 SQL Server;数据库名,如 wssdk;

  服务器名,如 Local Server,要与实际对应;

  用户身份可用系统管理员 sa;密码为空。

6.3.4 插入资料(P238)

  处理留言 clly_dm.asp  管理书店

<%

'1.创建连接对象 Connection

set cn=Server.CreateObject("ADODB.Connection")

cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

DATA SOURCE="+Server.MapPath ("/fsxss/mdb/wssdk.mdb")

'2.创建记录集对象 Recordset

set rs=Server.CreateObject("ADODB.Recordset")

'3.插入记录

rs.open"insert into 用户资料表 (用户姓名,购书密码) values('lms','abc123')"

rs.Close

cn.Close

%>

6.3.5 修改资料

 修改图书记录 xgts_dm   管理书店

<%

'1.创建连接对象 Connection

set cn=Server.CreateObject("ADODB.Connection")

cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

DATA SOURCE="+Server.MapPath ("/fsxss/mdb/wssdk.mdb")

'2.创建记录集对象 Recordset

set rs=Server.CreateObject("ADODB.Recordset")

'3.修改图书记录

rs.open"select * from 图书记录表1 where 图书号="+Request("图书号"),cn,3,2

update 图书记录表1

set 图书名称='BookName+',作者='BookAuthor',出版社='BookPublish',

    图书定价='BookPrice',图书类别='BookClass',图书封面='BookFace'

rs.Close

cn.Close

%>

6.3.6 删除资料

 图书列表--删除图书 管理书店

<%

'1.创建连接对象 Connection

set cn=Server.CreateObject("ADODB.Connection")

cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

DATA SOURCE="+Server.MapPath ("/fsxss/mdb/wssdk.mdb")

'2.创建记录集对象 Recordset

set rs=Server.CreateObject("ADODB.Recordset")

'3.删除图书记录

rs.open"delete from 图书记录表1 where 图书号="+Request("图书号"),cn,3,2

rs.Close

cn.Close

%>

6.3.7 查询资料

  显示图书列表 tslb_dm  管理书店

<%

'1.创建连接对象 Connection

set cn=Server.CreateObject("ADODB.Connection")

cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;

DATA SOURCE="+Server.MapPath ("/fsxss/mdb/wssdk.mdb")

'2.创建记录集对象 Recordset

set rs=Server.CreateObject("ADODB.Recordset")

'3.显示图书记录

rs.open"select * from 图书记录表1 where 图书名称='网页整合',cn,3,2

rs.Close

cn.Close

%>

6.4 ADO 的重要对象

 * ASP(Active Server Pages):动态服务器页面。

   在服务器上运行ActiveX脚本和ActiveX组件的服务器方脚本环境。

 * ActiveX:多语言软件组件在同一网络环境中互操作。

 * ADO(Active Data Object):Active数据对象。

6.4.1 Connection 对象(P239)

 * Connection 对象:使网页能通过 ADO 访问数据库。

set cn=Server.CreateObject("ADODB.Connection")

6.4.1.1 Connection 对象的方法(P240)

  * Connection 对象的方法:Open、Execute、Close、cancel、Save……。

 1.Open 方法(P240)

   Connection 对象的 Open 方法负责创建与数据库的连接,格式:

   Connection Open ConnectionString,UserID,Password

 2.Execute 方法(P241)

   Connection 对象的 Execute 方法运行 SQL 命令。

  举例:运行 SQL 命令,返回查询结果

  显示图书列表 tslb_dm  管理书店

<%
'声明常数
Const adCmdText=1
Const RecordsAffected=20

'以Connection对象Open方法参数的方式来设置连接资讯
Set Con=Server.CreateObject("ADODB.Connection")
Con.Open"Driver={SQL Server};Database=BookStore.mdb;Server=Local Server;UID=sa;PWD="

 

'设置SQL命令
CommandText="select * from employee order EMP_ID"

'运行SQL命令,并以Recordset对象返回运行结果
Set Rs=Con.Execute(CommandText,RecordsAffected,adCmdText)

'显示字段名称
Response.Write "<table border='1'>"
Response.Write "<br>"
For i=0 To Rs.Fields.Count-1
Response.Write "<td>"&Ucase(Rs(i).name)&"</td>"
Next
Response.Write "</tr>"

'显示字段内容
While Not Rs.EOF
Response.Write "<tr>"
For i=0 To Rs.Fields.Count-1
Response.Write "<td>"&Rs(i).Value&"</td>"
Next
Rs.MoveNext
Response.Write "</tr>"
Wend
Response.Write "</table>"

'释放Connection对象
Set Con=Nothing
%>

 2.Close 方法(P244)

   Connection 对象的 Close 方法关闭 Connection 对象。

   Connection.Close

6.4.1.2 Connection 对象的属性(P246)

 5.DefaultDatabase 属性方法(P248)

   DefaultDatabase 属性设置 Connection 对象的默认数据库名称。

   设置默认数据库

<%
'声明常数
Const adCmdText=1
Const RecordsAffected=20

'以Connection对象Open方法参数的方式来设置连接资讯
Set Con=Server.CreateObject("ADODB.Connection")
Con.Open"Driver={SQL Server};Database=BookStore.mdb;Server=Local Server;UID=sa;PWD="

'设置DefaultDatabase
Con.DefaultDatabase="pubs"

'如果已经设置DefaultDababase,那麽就可以直接使用表了
CommandText="select * from employee order by Emp_ID"

'运行SQL命令
Set Rs=Con.Execute(CommandText,RecordsAffected,adCmdText)

'释放Connection对象
Set Con=Nothing
%>

6.4.4 Recordset 对象(P260)

  Recordset 对象负责浏览和操作从数据库中取出的记录。

6.4.4.1 Recordset 对象的方法

  Recordset 对象的方法:

  Open、Close、MoveNext、Update、AddNew、Delect。

 1.Open 方法(P260)

   用户向数据库发出请求。

 2.Close 方法(P262)

   关闭所指定的 Recordset 对象。

 6.MoveNext 方法(P262)

   移到下一条记录。

 8.Update 方法(P265)

    修改数据库的资料。

 10.AddNew 方法

   增加数据库的资料。

6.4.6 Command 对象(P276)

  Command 对象负责对数据库提供请求,传递 SQL 命令。

  Command 对象有 Insert、Delect、Update、Select。

 

第7章 计数器和轮换式广告

7.1 页面访问量计数器(P285)

   计数器:333   index.asp index.rar

 1. 网上书店库—增加计数表—计数字段—储存站点访问计数。

站点访问计数表结构

字段名称 数据类型 长度 意义
ID 自动编号 长整型  
计数 数字 长整型  

 3.用 ASP 和 SQL 语言查询访问数据库 wssdk.mdb

   创建数据库连接、记录集对象;打开记录表;

   输出计数表中计数字段的值;关闭数据库连接、关闭记录集对象。

<%

'1.创建连接对象

Connectionset cn=Server.CreateObject("ADODB.Connection")

cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="&server.MapPath("/fsxss/mdb/wssdk.mdb")

'2.创建记录集对象 Recordsetset rs=Server.CreateObject("ADODB.Recordset")

'3.打开计数表,向计数字段赋值,用Update写入

rs.open"select 计数 from 计数表",cn,adOpenDynamic,3

rs("计数")=rs("计数")+1

rs.Update

rs.close

rs.open"select 计数 from 计数表",cn,3

%>

<p>计数器:<% =rs("计数")%>

7.2 轮换式广告

   演示图书封面 管理书店

7.2.1 轮换式广告设计方式(P295)

 1.轮换显示图书封面数组 ad

   var ad = new Array(24);

   ad[1] = "wlsjk_x.jpg";

 2.Document 对象实现轮换式广告设计。

   document.[Name].src = 横幅文件路径;

   adindex=1;

  document.ad.src = ad[adindex];

 3.装载 图书封面函数 show ad()

   <body OnLoad="showad();">

 4.插入图书封面

   <img src="wyzh.jpg" name="ad" width="150" height="180" border="0" id="ad">

 

第8章 用户注册和登录

8.1 用户注册

8.1.1 设计用户注册表(P302)

用户资料表结构

字段名称 数据类型 长度 意义
用户号 自动编号 长整型 用户编号
用户姓名 文本 10  
购书密码 文本 6  
电子邮件 文本 20  
联系电话 文本 15  
邮政编码 文本 6  
联系地址 文本 30  

8.1.1 设计用户注册页面(P303)

  客户机:用户注册页面—填写资料—提交表单。

  服务器:运行处理注册的程序—获取表单中资料—写入记录集—

更新数据库。

  用户注册页面和处理注册页面可以合并为一页。

  管理书店 处理注册代码

用户注册

8.2 用户登录(P312)

   客户机:用户登录页面—填写用户姓名、购书密码—提交表单。

   服务器:运行处理登录的程序—获取表单中的用户姓名、购书密码—

验证后登录。

  用户登录页面和处理登录页面可以合并为一页。

管理书店 处理登录代码

用户登录

'1.使用客户机表单提交的数据(如,用户姓名 yfxm)对服务器内存变量 yfxm 赋值。

'定义服务器内存变量:用户姓名、购书密码

dim yfxm,gsmm

yfxm=request.form("yfxm")

gsmm=request.form("gsmm")

'2.用户输入完整的数据、用户存在、密码正确,则进行后面的操作

if yfxm<>""and gsmm<>"" then

'3.验证登录的用户姓名、购书密码,反馈欢迎词。

'用“字段值=变量值”的条件确认用户,“用户姓名”='"&yfxm&"' 和“购书密码”='"&gsmm&"'。

rs.open"select * from 用户资料表 where 用户姓名='"&yfxm&"'and 购书密码='"&gsmm&"'",cn

if not rs.eof then

'找到使用"&yfxm&"的用户

response.write"<center>欢迎光临网络天地书店!</center>"

%>