八宝书库 > 文学其他电子书 > asp基础入门篇(DOC格式) >

第11部分

asp基础入门篇(DOC格式)-第11部分

小说: asp基础入门篇(DOC格式) 字数: 每页4000字

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!



员,您将会正确认识 ADO 的先进的与语言无关性和查询处理功能。熟悉 VB 数据库编程的朋友会发现 ADO 与 RDO (Remote Data Objects) 有某种类似的地方。但据说 ADO 的访问的速度更快,内存需要更小。
    下面给大家简要介绍一下利用 ASP 的 Database Access 组件通过 ADO 连接并操作 WEB 数据库的步骤
第一步 : 指定想要连接的数据库,有 DSN 和 DSN…less 两种方法。
DSN(Data Source Name 数据源名称 ): 建立一个系统数据源名称,方法如下 :
1、单击〃开始〃,选设置控制面板。
2、双击图标〃32 位 ODBC〃 ; 将弹出一个对话框,选标签〃System DSN〃
3、单击〃Add〃添加一个 DSN 入口 ; 选择如〃Microsoft Access Drive〃并确认。
4、在〃Data Source Name〃栏里输入你希望指定的 DSN; 然后单击〃Select〃选择数据库
存放位置,你可以按〃Browse〃来选取。
5、以上步骤完成后在 ASP 程序中指定 DSN,如下 :
   《 %connstr = 〃DSN〃%》
    DSN…less: 是另一种通过在 ASP 文件里直接指定数据库文件所在位置,而无需建立 DSN 的
方法。由于许多公司没有自己的 WEB 服务器,他们的网站往往是存放在远端的虚拟服务器上,因此
要建立和修改 DSN 的设置比较麻烦。而使用 DSN…less 方法直接指定远端数据库所在位置恰恰解决了
这一问题,方法如下 :
《 %
connstr = 〃DBQ=〃+server。mappath(〃database/source。mdb〃)+〃;
DefaultDir=;DRIVER={MicrosoftAccessDriver(*。mdb)};
DriverId=25;FIL=MSAccess;
ImplicitmitSync=Yes;
MaxBufferSize=512;
MaxScanRows=8;
PageTimeout=5;
SafeTransactions=0;
Threads=3;
UsermitSync=Yes;〃
%》
在指定了想要连接的数据库后,就可以通过以下方法连接并打开数据库 :
《 %
Set Conn = Server。CreateObject(〃ADODB。Connection〃)Conn。Open constr
%》
第二步 : 指定想要执行的 SQL 指令,可以使用 RecordSet。
    当连接了数据库后就可以对数据库进行操作,比如查询、删除、更新等等,这些操作都是通过SQL 指令来完成的,如下例在数据库表 datebase 中查询所有姓名中有〃A〃的记录 :
《 %
sql=〃select * from datebase where name like 'A%%'〃
Set rs = Conn。Execute(sql)
%》
     尽管 Connection 对象简化了连接数据库和查询任务,但 Connection 对象仍有许多不足。确切地说,检索和显示数据库信息的 Connection 对象不能用于创建脚本,您必须确切知道要对数据库作出的更改,然后才能使用查询实现更改。对于检索数据、检查结果、更改数据库, ADO 提供了 Recordset 对象。正如它的名称所暗示的那样, Recordset 对象有许多您可以使用的特性,根据您的查询限制,检索并且显示一组数据库行,即记录。 Recordset 对象保持查询返回的记录的位置,允许您一次一项逐步扫描结果。根据 Recordset 对象的指针类型属性设置,您可以滚动和更新记录。数据库指针可以让您在一组记录中定位到特定的项。指针还用于检索和检查记录,然后在这些记录的基础上执行操作。 Recordset 对象有一些属性,可用于精确地控制指针的行为,提高您检查和更新结果的能力。
Recordset 的使用方法如下 :
   Set rs = Server。CreateObject(〃ADODB。Recordset〃)
   rs。Open SQL 指令 ; Conn; 1; 1 ' 读取
   或
   rs。Open SQL 指令 ; Conn; 1; 3 ' 新增、修改、或删除
第三步 : 使用 RecordSet 属性和方法,并显示执行的结果。
     通过以上指令,我们创建了一个包含数据的游标 (RecordSet)〃rs〃,事实上游标是存储在活动内存中的类似记录和字段的数组的东西,当通过 RecordSet 组件创建一个游标时,它从数据提供者的得到一个数据集,并用它来充实游标,我们可以想象 ADO 产生的 RecordSet 是一个象电子表格的记录,它有一行行的记录,在任何时候都有一行是它的当前行,而 RecordSet 的字段是用 RecordSet 的 Field 集合表示的。下面列出了所创建的 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。RecordCount: 游标中的数据记录总数。
   rs。EOF: 是否已指到最后一条记录。
   rs。MoveNext: 将指标移到下一笔记录。
   rs。MovePrev: 将指标移到上一笔记录。
   rs。MoveFirst: 将指标移到第一笔记录。
   rs。MoveLast: 将指标移到最后一笔记录。
   rs。Close: 关闭 RecordSet 对象
   有关 ADO 的其他介绍,作者将在今后给大家详细讲解。
     二、 Content Linking 组件
    如果你的网站有一系列相互关联的页面的话, Content Linking 组件将非常适合你的需求,它非但可以使你在这些页面中建立一个目录表,而且还可以在它们中间建立动态连接,并自动生成和更新目录表及先前和后续的 Web 页的导航链接。这对于列出联机报刊、电子读物网站以及论坛邮件是十分理想的选择。
  Content Linking 组件创建管理 URL 列表的 Nextlink 对象,要使用 Content Linking 组件,必须需要先创建 Content Linking List 文件。 Content Linking 组件正是通过读取这个文件来获得处理我们希望链接的所有页面的信息。事实上该文件是一个纯文本文件,其内容如下 :
page1。htm one
page2。htm two
page3。htm three
page4。htm four
page5。htm five
page6。htm six
这个文本文件的每行有如下形式 :
   url description ment
      其中, URL 是与页面相关的超链地址, description 提供了能被超链使用的文本信息, ment 则包含了不被 Content Linking 组馐偷淖⑹托畔ⅲ淖饔萌缤绦蛑械淖⑹汀?description 和 ment 参数是可选的。
     下面我们来看看如何具体使用 Content Linking 组件 :
《 html》
《 head》
《 meta http…equiv=〃Content…Type〃 content=〃text/html; charset=gb2312〃》
《 title》网络电子读物宝藏 《 /title》
《 /head》
《 body》
《 p》网络电子读物导航
《 %
Set Link = Server。CreateObject(〃MSWC。NextLink〃)
count = Link。GetListCount(〃nextlink。txt〃)
Dim I
For I=1 to count
%》
《 ul》《 li》《 a href=〃《 %= Link。GetNthURL(〃nextlink。txt〃; I) %》〃》《 %= Link。GetNthDescription(〃nextlink。txt〃; I) %》《 /a》
《 % Next %》
《 /body》
《 /html》
     在以上代码中,我们先用 GetListCount 方法确定在文件 nextlink。txt 中有多少条项目,然后利用循环语句,并使用 GetNthURL、 GetNthDescription 方法逐一将存储在 nextlink。txt文件中的内容读出并显示给客户端浏览器。
    下面列出了 Content Linking 组件所有可使用的方法 GetListCount(file) 统计内容链接列表文件中链接的项目数。
   GetNextURL(file) 获取内容链接列表文件中所列的下一页的 URL。
   GetPreviousDescription(file) 获取内容链接列表文件中所列的上一页的说明行。
   GetListIndex(file) 获取内容链接列表文件中当前页的索引。
   GetNthDescription(file;index) 获取内容链接列表文件中所列的第 N 页的说明。
   GetPreviousUR(file) 获取内容链接列表文件中所列的上一页的 URL。
   GetNextDescription(file) 获取内容链接列表文件中所列的下一页的说明。
   GetNthURL(file;index) 获取内容链接列表文件中所列的第 N 页的说明。
      在我们创建了网站的总导航页面后,我们当然还希望在每一页中添加一个〃上一页〃、〃下一页〃的导航超链,下面我们就来看看如何实现导航超链。
     由于考虑到你的网站可能包含了上千或更多的页面,所以我们不可能在每一个页面中都编写实现导航超链的 ASP 代码。因此,我们必须利用前几篇中所学到的服务器端包容 SSI,这样就避免了大量的重复作业,请看下例 :
   《 !……#include file=〃nextprev。inc〃……》
     只要将这端代码放在每个页面中即可。 nextprev。inc 文件的内容如下 :
《 %
Set Link = Server。CreateObject(〃MSWC。NextLink〃)
count = Link。GetListCount(〃nextlink。txt〃)
current = link。GetListIndex(〃nextlink。txt〃)
If current 》1 Then
%》
《 a href=〃《 %= Link。GetPreviousURL(〃nextlink。txt〃) %》〃》上一页 《 /a》
《 %
End If
If current 《 count Then
%》
《 a href=〃《 %= Link。GetNextURL(〃nextlink。txt〃) %》〃》下一页 《 /a》
《 % End If %》
     今天的学习又到此结束了,在这里我要再次感谢所有关心我的文章的朋友们,你们的来信给了
我很大的鼓舞,不过请大家不要再称我为〃老师〃,其实我也和你们一样是在不断的学习和摸索中,
有问题我们可以一起探讨,我的文章中肯定还存在很多不足或漏洞,也希望大家发现后能及时向我
提出。由于近来 ASP 已经在国内的网站中广泛运用起来,所以应朋友们的要求,在国内 ASP 高手
飞鸟的热情帮助下,我决定写一些 ASP 应用实例作为现在这篇文章的姊妹篇,这样也就可以为大家
提供一些真正实用的东西了,敬请关注。
ASP基础教程:其它的ASP常用组件
 当你用 ASP 编写服务器端应用程序时,必须依靠 ActiveX 组件来强大 Web 应用程序的功能,譬如:你需要连接数据库,对数据库进行在线操作等等。
     上两篇中作者给大家介绍了 AD Rotator、 Database Access 等组件的使用方法,今天我们接着来看看其它的一些 ASP 常用组件。
      一、 Browser Capabilities 组件众所周知,并不是所有浏览器都支持现今 Internet 技术的方方面面。有一些特性,某些浏览器支持而另一些浏览器却不支持,如 : ActiveX 控件、影像流、动态 HTML、 Flash 以及脚本程序等。使用 ASP 的 Browser Capabilities 组件,就能够设计〃智能〃的 Web 页,以适合浏览器性能的格式呈现内容。 Browser Capabilities 组件能够创建一个 BrowserType 对象,该对象提供带有客户端网络浏览器的功能说明的用户脚本。该组件之所以能识别客户浏览器的版本等信息,主要是因为当客户浏览器向服务器发送页面请求时,会自动发送一个 User Agent HTTP 标题,该标题是一个声明浏览器及其版本的 ASCII 字符串。 Browser Capabilities 组件将 User Agent 映射到在文件 Browscap。ini 中所注明的浏览器 ; 并通过 BrowserType 对象的属性来识别客户浏览器。若该对象在 browscap。ini 文件中找不到与该标题匹配的项,那么将使用默认的浏览器属性。若该对象既未找到匹配项且 browscap。ini 文件中也未指定默认的浏览器设置,则它将每个属性都设为字符串 〃UNKNOWN〃。在默认情况下, browscap。ini 文件被存放在 WINDOWSSYSTEMINERSRV( 如果是 95/98+PWS4) 或 NTSYSTEM32INERSRV( 如果是 NT) 目录中,你可以自己编辑这个文本文件,以添加自己的属性或者根据最新发布的浏览器版本的更新文件来修改该文件。请看以下 checkCookie() 过程,使用 BrowserCap 对象的 Cookie 属性来判断客户端浏览器是否支持 Cookie,并返回信息 :
《 %
Sub checkCookie()
Set BrowserCap=Server。CreateObject(〃MSWC。BrowserType〃)
if BrowserCap。Cookie=True then
response。write 〃你的浏览器支持 Cookie!〃
else
response。write 〃对不起,你所使用的浏览器不支持 Cookie!〃
end if
end Sub
%》
       二、 File Access 组件如果你的网龄足够大的话,你一定见过〃恐龙时代〃的 CGI 留言簿,那是 WEB 留言簿最早的雏形。那时候在基于 Internet 的 WEB 应用程序中连接服务器后端数据库还十分困难,因此留言簿中的历史信息并不是同如今一样存储在后端数据库中。那么这些数据究竟是保存在哪里的呢?答案就是〃文本文件〃, CGI 程序可以将从客户端接收的信息写进一个存放在服务器端的文本文件中,该文件可以是 HTML 文件或 TXT 等文件,这样就使得程序员们可以不通过同数据库连接就可以将客户信息保存下来,但是写此类 CGI 程序甚是烦琐,下面列出了一个此类程序的最简单的样本 :
#!/usr/local/bin/perl
# Perl Location one your server
print 〃Content…type: text/plainnn〃;
if(ENV{'REQUEST_METHOD'}eq〃POST〃){
read(STDIN;buffer;ENV{'CONTENT_LENGTH'});
}elsif(ENV{'REQUEST_METHOD'}eq〃GET〃){
buffer=ENV{'QUERY_STIRNG'};

@pairs=split(/&/;buffer);
foreach pair(@pairs){
(name;value)=split(/=/;pair);
value=~tr/+//;
value=~s/%('a…f A…F 0…9''a…f A…f 0…9')/pack(〃C〃;hex(1))/eg;
FORM{name}=value;}
file_name=〃guestbook。txt〃;#File name
#具体内容
open(FILE;〃》》file_name〃)||die 〃打开文件错误〃;
print FILE 〃记录时间〃:date nn〃;
print FILE 〃姓名〃:FORM{'name'}〃;
print FILE 〃单位〃:FORM{'pany'}n〃;
print FILE 〃电话〃:FORM{

返回目录 上一页 下一页 回到顶部 0 0

你可能喜欢的