数据库篇
第七章Connection对象——连接数据库的对象
要点概述
前面的章节中,笔者介绍过使用表单让上网者输入信息,然后将输入的数据提交给服务器端,但是这些数据要存放在哪里呢?假如有上万个上网者填写了表单,网站管理者如何管理或分析存储这么多数据呢?最好的解决方法是将搜集到的数据全部存储到数据库中,这样不但方便了大量数据的管理,而且可以对数据库中的数据进行查询、分析、输出等操作。在ASP 网页制作中,用来存取数据库的对象统称ADO(ActiveX Data Objects),本章笔者将先介绍ADO中用来连接数据库的Connection对象。
1. 数据库的基本概念
数据库可以简单地看作一个或多个数据表,每一个数据表由行和列组成,例如表7-1所示即为一个数据表。我们把数据表中各个项目称为字段(Field,又称为域),而把每行数据称为记录。例如,在数据表7-1中包含了年级、专业、姓名、性别、民族、出生日期6个字段,并含有4个记录。
其优点是容易建立,缺点是工作效率、容量收到一定的限制,不过对于一般个人站点的应用已经绰绰有余了,从本章起笔者所介绍到的范例便都是以Access作为数据库的。至于大型的数据库如SQL Server,优点是执行效率高、适用于超大量的数据的处理,缺点是对系统和设备的要求比较高、需要另外学习数据库的管理和建立方法,因此常用于企业用途上。
2. ADO对象简介
数据库是一种特殊组织结构的文件,其存取方法也不同于一般的文本文件。在开发ASP程序时,用来存取数据库的对象是ADO(ActiveX Data Objects)。
ADO又叫ActiveX数据对象,是美国微软公司开发的、用作链接与存取数据库的最新技术。由于ADO使用对象的方式来存取数据库,因此在程序设计上较为方便,且ADO存取数据库的效率相当高,适合配合ASP来开发Web数据库应用程序。
ADO对象包含了七种独立的子对象,其中最主要的三个子对象是Connection(连接)对象、Recordset(记录集)对象、Command(命令)对象,它们的主要功能如表7-2所示。
113
114 3. 识别ODBC 驱动程序
要让ADO 对象能够存取数据库,最重要的东西就是数据库的ODBC 驱动程序或OLE DB 驱动程序。对任何一种数据库而言,必须具备其对应的ODBC 驱动程序或OLE DB 驱动程序,ADO 对象才能对数据库中的数据进行存取。表7-3所示是几种常用的数据库与对应的ODBC 驱动程序。
确认您的计算机安装了哪些ODBC 驱动程序的方法是:执行“我的电脑→控制面板→ODBC 数据源(32位)”,打开“ODBC 数据源管理器”窗口,选择“驱动程序”标签,即可看到系统中所安装的全部ODBC 驱动程序,如图7-1所示。
图
7-1
4. Connection 对象的常用方法
当我们要存取服务器端数据库的数据时,必须要做的前期工作,就是使用ADO 对象中的Connection 对象与要操作的数据库建立连接。表7-4列出了Connection 对象最常用的一些方法。
实践指导
注意:本章介绍的ASP 程序c7_x_x..asp 均保存到目录C:\Inetpub\wwwroot\asp\chap07下,浏览时请在地址栏内输入http://127.0.0.1/asp/chap07/c7_x_x.asp ,虚拟目录/asp 的创建方
法见第一章的介绍。
7.1 连接Access数据库
【实验准备】
(1)按照附录“Access数据库的建立”介绍的方法建立MyDatabase.mdb数据库(存放在C:\Inetpub\wwwroot\asp\chap07目录下)并设计Score数据表,数据表中各字段的名称和格式如表7-5所示。
(2)Score
【实验】
编写c7_1_1.asp,新建一个Connection对象newconn,并使用该对象连接前面设计的Access 数据库MyDatabase.mdb,然后关闭该连接。
【程序】
<%
Set newconn=Server.CreateObject("ADODB.Connection")
DBPath=Server.MapPath("MyDatabase")
newconn.Open"Driver={Microsoft Access Driver (*.mdb)};DBQ="&DBPath
newconn.Close
%>
【说明】
以上程序中使用Connection对象连接数据库,可以分成以下三个步骤:
①建立一个Connection对象变量:
Set newconn=Server.CreateObject ("ADODB.Connection")
上述语句使用Server对象的CreateObject方法,建立了一个名称为newconn的Connection 对象。由于ADODB是ADO对象的对象库,而Connection是ADO对象的一个子对象,因此可以写成ADODB.Connection。
②取得当前数据库的实际路径:
DBPath=Server.MapPath("dbname")
使用Server对象的MapPath方法取得要连接的数据库的实际路径,并将返回的实际路径指定给变量DBPath,其中dbname是数据库文件的相对路径或虚拟路径名称。
③连接指定的数据库:
newconn.Open"Driver={drivename};DBQ="&DBPath
其中newconn是步骤①所建立的连接对象。Driver参数用来指定所要连接数据库的驱动程序并且必须和指定的数据库同一类型,该参数的设定须使用{}括住。DBQ参数用来设置要连接到的数据库的实际路径文件名称。各个参数必须使用分隔符“;”(分号)分开。
完成数据库的存取操作后,使用Connection对象的Close方法将所所建立的连接关闭。例如newconn.Close表示关闭newconn与数据库的连接。
115
116 7.2 连接其它类型的数据库
提示:Connection 对象不仅可以用来连接Access 的mdb 数据库,而且可以连接安装于系统中任何类型的数据库,它们之间的差异在于“参数”(如Driver ,DBQ 等)的设置。
【实验:连接dbf 数据库】
假设我们已编写了一个*.dbf 文件并存放在C:\Inetpub\wwwroot\asp\chap07\Dbf 目录下,要求在c7_2_1.asp 中使用Connection 对象来连接该数据库文件。
【程序】
<%
' 建立Connection 对象
Set conn=Server.CreateObject("ADODB.Connection")
DBPath=Server.MapPath("Dbf")
' 调用Open 方法连接Dbf 数据库
conn.Open"Driver ={Microsoft V isual FoxPro Driver};SourceT ype =DBF;SourceDB ="&DBPath %>
【说明】
(1)让我们先把连接Access 数据库与dbf 文件的参数作个比较,如表7-6所示。
表7-6
●● DBQ (数据源)和SourceDB (源数据库):这个参数要设置成某一数据库。由于Access
的mdb 文件本身就是一个完整的数据库(可包含多个数据表),所以连接Access 数据库时,只要将DBQ 参数设置成一个mdb 文件的实际路径文件名称即可。而一个dbf 文件并不能算一个完整的数据库(一个dbf 文件相当于一个数据表),因此连接dbf 文件时,要将SourceDB
参数设置成某一个目录的实际路径,而让这个目录下面的多个dbf 文件一起构成一个完整的数据库。 ● SourceType :这是{Microsoft V isual FoxPro Driver}驱动程序专有的参数,Access 数据库
并不需要设置这个参数。
(2)经过上面的比较,我们得到的结论是:连接不同的数据库要使用不同的ODBC 驱动程序,而不同的驱动程序其参数又彼此不同。除了上面介绍过的两种数据库的参数,笔者将给出连接其它一些数据库所要用到的参数,方便您连接不同类型的数据库。
● 连接dbc 数据库(即FoxPro 数据库)所用的参数,见表7-7。
FoxPro 的ODBC 驱动程序{Microsoft Visual FoxPro Driver}可以打开dbf 文件和FoxPro 专有的dbc 数据库。它们之间的差异在于:打开dbf 文件SourceType 参数要设置为DBF ,而打开dbc 数据库则设置为DBC ;打开dbf 文件SourceDB 要设置为dbf 文件所在目录的实际路径,而打开dbc 数据库则设置为dbc 文件的实际路径文件名称。
●连接Excel文件所用的参数,见表7-8。
表7-8
“工作表”视为一个“数据表”。
●连接Text文件所用的参数,见表7-9。
表
7-9
7.3 连接数据库的另一种方法——设定ODBC数据源
提示:在前面的程序中,我们都是通过设置与ODBC驱动程序相关的参数并指定数据库所在的实际路径来连接数据库的,使用的语句如下:
DBPath=Server.MapPath("MyDatabase")
newconn.Open"Driver={Microsoft Access Driver (*.mdb)};DBQ="&DBPath
除了上述方法,我们也可以使用设定ODBC数据源的方式,这时上面的语句可以改为:
newconn.Open"dbsrcname"
dbsrcname指要连接到的ODBC数据源的名称。下面笔者将详细介绍这种通过设定ODBC 数据源来连接数据库的方法。
1. 建立ODBC数据源
【实验】
建立一个名称为MyDSN的系统数据源,数据源包含的数据库为C:\Inetpub\wwwroot\asp \chap07\MyDatabase.mdb,使用的ODBC驱动程序为“Microsoft Access Driver (*.mdb)”。【指导步骤】
(1)执行“我的电脑→控制面板→ODBC数据源(32位)”,打开“ODBC数据源管理器”,然后选择“系统DSN”标签,如图7-2所示。
117
图7-2
(2)单击“添加”按钮,在打开的“创建新数据源”对话框中选择您想要的驱动程序来安装数据源,我们在这里选择“Microsoft Access Driver (*.mdb)”,如图7-3所示;然后单击“完成”按钮。
图7-3
(3)打开“ODBC Microsoft Access安装”对话框,在“数据源名”文本框中输入“MyDSN”,“描述”文本框中输入“MyDatabase数据库的ODBC数据源”(不一定要输入),如图7-4所示。
118
119
图7-4
(4)在图7-4的“数据库”栏中单击“选取”按钮,打开“选定数据库”对话框,在“目录”列表框内找到数据库文件所在的路径“C:\Inetpub\wwwroot\asp\chap07”,然后在“数据库名”列表框中选择“MyDatabase.mdb ”,如图7-5所示。
图7-5
(5)单击“确定”按钮,返回图7-4所示的对话框。若单击右边的“高级”按钮可以设定登录名称和密码,我们在这里不作此项设置。
(6)单击“确定”按钮,返回图7-2所示的“ODBC 数据源管理器”的“系统DSN ”标签,可以看到刚建立的数据源MyDSN 已加入到“系统数据源”列表框内了,单击“确定”按钮完成建立数据源的操作。
提示:如果要修改数据源的名称或其它设置,可以在图7-2的列表框中选择要修改的数据源,然后单击右边的“配置”按钮来进行修改。
2.连接ODBC 数据源
【实验】
利用Connection 对象,连接到上面所建立的ODBC 数据源MyDSN ,然后关闭连接。
【程序】
<%
Set newconn=Server.CreateObject("ADODB.Connection") ‘建立Connection 对象
newconn.Open"MyDSN" ‘连接到数据源MyDSN
newconn.Close ‘关闭连接
%>
【说明】
程序中底色呈灰色的一行即通过连接到数据源MyDSN来打开它的数据库MyData.mdb。如果在建立ODBC数据源时指定了它的登录名称和密码,则该语句可以改为:
newconn.Open "MyDSN","loginname","password"
其中loginname指登录名称,而password指密码。
注意:本节所介绍的通过设定ODBC数据源来连接数据库的方法仅供参考,在本书后面的实验中笔者仍将使用指定驱动程序和数据库实际路径的方式来连接数据库。
思考与练习
1. Access数据库文件的扩展名是什么?请说明Access数据库的优缺点。
2. 什么是ADO对象?它有哪些重要的子对象?
3. Access数据库的ODBC驱动程序是什么?FoxPro数据库的ODBC驱动程序又是什么?怎样查看系统中安装有哪些ODBC驱动程序?
4. Connection对象最常用方法有哪些?各有什么作用?
5. 按7.1节“实验准备”中的要求建立数据库MyDatabase.mdb,编写ASP程序c7_lx1.asp:建立一个Connection对象conn,并利用conn连接数据库MyDatabase.mdb,然后关闭连接。
6. 仿照
7.3节介绍的方法建立名称为MyDSN的系统数据源:包含的数据库为C:\Inetpub\ wwwroot\asp\chap07\MyDatabase.mdb,使用的ODBC驱动程序为“Microsoft Access Driver (*.mdb)”;然后编写c7_lx2.asp,使用Connection对象conn连接到该ODBC数据源,再关闭连接。
120
https://www.doczj.com/doc/f46401009.html, 是一个使用HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。 https://www.doczj.com/doc/f46401009.html, 支持三种不同的开发模式: Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体): Web Pages 教程 如果您刚接触https://www.doczj.com/doc/f46401009.html, ,建议从Web Pages 开始学习。Web Pages 是开发https://www.doczj.com/doc/f46401009.html, 网站最简单的开发模式。
在我们的Web Pages 教程中,您将学习如何使用VB (Visual Ba sic) 或者C# (C sharp) 最新的Razor 服务器标记语法将HTM L、CSS、JavaScript 和服务器代码结合起来。 您也可以学习如何使用具有可编程的Web Helpers(包括数据库、视频、图形、社交媒体等等)来扩展您的网页。 现在开始学习https://www.doczj.com/doc/f46401009.html, Web Pages! MVC 教程 MVC 是一种使用MVC(Model View Controller 模型-视图-控制器)设计创建Web 应用程序的模式。 如果您想要一个替代传统的https://www.doczj.com/doc/f46401009.html, 的轻量级的开发模式,可以从MVC 开始学习。 在我们的MVC 教程中,您将学到如何使用集成了现有的所有ASP. NET 特性(比如Master Pages、Security、Authentication 母版页、安全、验证)的轻量级的开发模式创建Web 应用程序。 现在开始学习https://www.doczj.com/doc/f46401009.html, MVC! Web Forms 教程 Web Forms 是传统的基于事件驱动的https://www.doczj.com/doc/f46401009.html, 模式。 多年来,开发者已经使用https://www.doczj.com/doc/f46401009.html, Web Forms 创建了许多众所周知的大型网站。 如果您想学习在过去的10 年中许多Web 开发人员使用的设计模式,那么您可以从Web Forms 开始学习。
Active Server Pages教程 二零零零年二月二日
目录 第一章引言 (3) 第二章简介 (8) 第三章ASP基础 (13) 第四章脚本基础 (19) 第五章脚本变量、函数、过程和条件语句 (22) 第六章脚本循环语句 (27) 第七章内建Request对象 (30) 第八章内建Reponse对象 (36) 第九章内建对象Application 和Session (42) 第十章Global.asa文件的使用及Chat程序 (48) 第十一章内建对象Server (53) 第十二章数据库查询语言(1) (57) 第十三章数据库查询语言(2) (62) 第十四章ActiveX组件 (66) 第十五章常用的ASP ActiveX组件 (70) 第十六章其它的ASP常用组件 (75) 第十七章ADO存取数据库时如何分页显示 (81) 第十八章堵住ASP漏洞 (87) 第十九章最新的ASP、IIS安全漏洞 (91)
第一章引言 您的网站是否仍一如既往地保持“静态”?目前呈几何增长的互联网网站中,有相当一部分仍固守“静态”,无形中已大大落后于时代的步伐。所谓“静态”指的就是网站的网页内容“固定不变”,当用户浏览器通过互联网的HTTP(Hypertext Transport Pr otocol)协议向WEB服务器请求提供网页内容时,服务器仅仅是将原已设计好的静态HTML文档传送给用户浏览器。其页面的内容使用的仅仅是标准的HTML代码,最多再加上流行的GIF89A格式的动态图片,比如产生几只小狗小猫跑来跑去的动画效果。若网站维护者要更新网页的内容,就必须手动地来更新其所有的HTML文档。 “静态”网站的致命弱点就是不易维护,为了不断更新网页内容,你必须不断地重复制作HTML文档,随着网站内容和信息量的日益扩增,你就会感到工作量大得出乎想象。 你不禁要问:那么什么是动态网站呢?这就是本文将重点讲述的核心,所谓“动态”,并不是指那几个放在网页上的GIF动态图片,在这里笔者为动态页面的概念制定了以下几条规则: 1、“交互性”即网页会根据用户的要求和选择而动态改变和响应,将浏览器作为客户端界面,这将是今后WEB发展的大事所趋。 2、“自动更新”即无须手动地更新HTML文档,便会自动生成新的页面,可以大大节省工作量。 3、“因时因人而变”,即当不同的时间、不同的人访问同一网址时会产生不同的页面,是不是很酷? 现在你已经对“动态”网站有了一个基本的概念,接下来应挑选称手的“兵刃”了。将网站“动态”化的方法很多,这要看你是出于何种需求。如果你是个人网站的维护者,使用的是免费主页空间,那么绝大多数情况下你只能使用Java、Java Script和最新的DHTML技术,如果你的主页空间提供者能给予你CGI权限或ASP支持,那么你将能非常幸运地发挥真正的动态技术。关于CGI和ASP技术将在后面的着重讨论,这里针对个人网站仅就最新的DHTML技术进行重点介绍。 究竟什么是DHTML?它与传统的HTML有什么不同?DHTML就是当网页从WEB服务器下载后无须再经过服务器的处理,而在浏览器中直接动态地更新网页的内容、排版样式、动画。 比如,当鼠标移至文章段落中,段落能够变成蓝色,或者当你点击一个超链后会自动生成一个下拉式的子超链目录。这就是Dynamic HTML(动态HTML),它是近年来网络飞速发展进程中最振奋人心也是最具实用性的创
HTML 语言 HTML 语言 在上一章的学习中知道,ASP 动态网页实际上是包含 HTML 标记、文本和脚本命令的 此文来源于云南新华电脑学院官方网站云南新华电脑学校官方博客 动态网页。为了更好地学习 ASP 动态网页的设计方法,就必须对 HTML 语言有所了解。本 章将介绍 HTML 语言的基本内容,包括 HTML 基础、设置文本格式、使用列表格式、使用 图像、使用字幕和背景音乐、使用超链接、使用表格、使用表单等。 2.1 HTML 基础 HTML 是用来表示 Web 文档的规范,它使用标记来确定网页显示的格式。静态网页是 标准的 HTML 文件,动态网页经过应用程序服务器处理后也将生成标准的 HTML 文件。 2.1.1 HTML 的工作原理 HTML 文件是标准的 ASCII 文件。从结构上讲,HTML 文件由元素(Element)组成,组 此文来源于云南新华电脑学院官方网站云南新华电脑学校官方博客 成 HTML 文件的元素有许多种,用于组织文件的内容和指导文件的输出格式。绝大多数元 素是“容器”,即有起始标记和结尾标记。元素的起始标记叫做起始链接签(Start Tag),元素 的结束标记叫做结尾链接签(End Tag)。HTML 用标记来标注要显示的网页的各个部分,以 通知 Web 浏览器应该如何显示网页。 2.1.2 标记基础 HTML 语言是控制网页内容显示格式的标记集合,标记给浏览器提供了格式化Web 文 档的指令。HTML 标记的基本语法如下: (1) HTML 标记不区分大小写,但通常使用大写字母。 (2) 所有的标记都必须用尖括号(< >)括起来。例如,、、 等。 (3) 大多数标记都是成对出现的,包括开始标记和结束标记,开始标记和结束标记定义 了标记所影响的范围;结束标记与开始标记名称相同,但结束标记总是以一个斜线符号开此文来源于云南新华电脑学院官方网站云南新华电脑学校官方博客 头的。例如和 、
ASP基础 本文 ASP 篇 (1) 展示了 ASP 动态网站设计的一些最基本的方法,相信通过实践各位对 ASP 已经有了最基本的了解,本篇在答复大家所提问题的同时,将进一步介绍 ASP 动态网站的一些基本技巧。 自本文第一篇刊登后 , 络绎不绝地收到了一些朋友的来信,出乎作者的意料,其中有相当一部分是初次接触 ASP ,因此有许多朋友都提出为何在浏览器中浏览 ASP 篇 (1) 中的范例时看到的竟然是原代码?由于遇到此问题的朋友 较多,故作者在此一并回答。首先,我要再次强调 ASP 是一套服务器端的脚本环境,当用户从浏览器向 Web 服务器请求 .asp 文件时, ASP 脚本开始运行,然后 Web 服务器调用 ASP , ASP 全面读取请求的文件,执行所有脚本命令,并将 Web 页传送给浏览器,这就意味着你不能简单地在现有的操作系统 ( 如 Win95 、 98) 下,用浏览器中的 " 打开 " 命令来浏览 .asp 文件;其次,运行 .asp 文件需要服务器端的支持,目前除了 WindowsNT 下的 Microsoft Internet Information Server 支持 Active Server 技术外, Active Server 还可用于 MS Windows NT Workstation 和 MS Windows 95/98 中的 Personal Web Server 的构件,因此无论你安装的是 NT 还是 WIN95/98 ,都必须在原系统上安装支持 ASP 的服务器端环境,才能使你的机器得以运行 .asp 文件。由于目前绝大多数朋友安装的是 Win95 或是 98 ,因此作者就在这里着重介绍如何在 Win95/98 下运行和浏览 .asp 文件。因为 MSPersonal Web Server 支持通用网关接口 (CGI) 应用程序、 Internet 数据库接口 (IDC) 应用程序和 IIS 应用程序接口 (ISAPI) 应用程序,并且支持运行和开发 ASP 应用程序,所以使得 Win95 及其以后操作平台具备了近似于 NT 的健全的网站运作和管理功能。你所要做的只是在现有的 Win95/98 系统上安装 MS Personal Web Server ,建议安装最新的 4.0 版本。当安装完成后, PWS4.0 会在系统启动时自动加载。打开 PWS ,选择左栏中的 " 高级 " 按钮 ( 见下图 Asp2a.gif) ,点取 " 虚拟目录 " 下的 "/_private" 目录,然后点击右边的 " 编辑属性 " 按钮,如图所示,在对话框中你可以编辑该虚拟目录的物理路径和目录名,上图中 "/_private" 的物理路径为 "D:\Inetpub\wwwroot" ,该目录是系统默认的 WWW 发布根目录,将上一篇中的范例 test1.asp 文件复制到 "D:\Inetpub\wwwroot" 目录下。最后,你只要将该虚拟目录的访问权限选择为 " 执行 " ,并在浏览器的 " 地址 " 栏中输入 "http://localhost/test1.asp" 就可以运行并浏览该 ASP 程序了。 知道了如何运行并浏览 ASP 程序,下面我们就继续 ASP 动态网站设计的学习。 上一篇给大家介绍了几个最基本的 ASP 程序,相信大家已经对 ASP 的应用有了大致的了解,本篇将继续介绍一些用 ASP 编写的 WEB 动态功能。由于 WEB 浏览器标准的不一致从而使得如何能够让自己制作的网站去适应各种不同的浏 览器成为了广大网站设计者最为头疼的事,在如今的形势之下,我们不肯也不可能去抛弃 Netscape 或 IE 中的任何一种客户群,但我们有时候又不得不去考虑客户端浏览器的实际浏览效果,过去我们常用 JavaScript 编写一段程序来辨别
ASP动态网页制作基础教程