⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0106.htm

📁 ASP教程宝典 书籍语言: 简体中文 书籍类型: 网络编程 授权方式: 免费软件 书籍大小: 500 KB
💻 HTM
字号:
<html>

<head>
<title>新时代软件教程:操作系统 主页制作 服务器 设计软件 网络技术 编程语言 文字编辑</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style>
<!--
body, table {font-size: 9pt; font-family: 宋体}
a {text-decoration:none}
a:hover {color: red;text-decoration:underline}
.1  {background-color: rgb(245,245,245)}
-->
</style>
</head>
<p align="center"><script src="../../1.js"></script></a>
    <p align="center"><big><strong>用ASP与ADO查询Web数据库</strong></big></p>

<div align="right">---摘自《计算机世界报》(文/聂洪山)</div>
<span class="text">ASP和ADO简介 </span><p class="sfont"><span
    class="text">  ASP(Active Server Pages)是一个服务器端的(Server-side)脚本执行环境,用户可用它产生和执行动态的、交互的、高性能的Web服务器应用程序。当脚本在服务器端而不是在客户端执行时,Web服务器将完成产生发往浏览器的HTML(Hypertext 
    Markup Langua ge)页的所有工作。图1 <br>
      图1是ASP的工作模式。当浏览器向Web服务器提出文件(.asp)的请求时,一个ASP脚本就开始执行,这时Web服务器调用ASP,把该文件全部读入并执行每一条命令,然后将结果以HTML页面形式送回浏览器。 
    <br>
      ADO(ActiveX Data Object,ActiveX数据对象)是一个ASP内置的A ctiveX服务器组件(ActiveX 
    Server Component),用于数据库访问,可把它与ASP结合起来,建立提供数据库信息的网页内容,对数据库进行查询、插入、更新、删除等操作。 
    <br>
      要执行ADO,服务器端须安装Windows NT Server和Internet I nformation Serv 
    er(IIS),而客户端只要有IE或Netscape较新版本的浏览器即可。站点数据库访问的几种方案 
    <br>
      实现Web数据库访问大致可分为两类,一类是以Web服务器作为中介,把浏览器和数据源连接起来,在服务器端执行对数据库的操作;另一类是把应用程序和数据库下载到客户端,在客户端执行对数据库的访问。 
    <br>
      1. 公共网关接口CGI(Common Gateway Interface) <br>
      当浏览器发出HTTP请求时,Web服务器执行相应的应用程序,访问站点数据库,并将查询结果以HTML格式送回到浏览器。这种方式有很多缺点,功能有限、开发困难,且不具备事务处理(Transaction)功能, 
    这在很大程度上限制了它的应用。 <br>
      2. Internet数据库连接器IDC(Internet Database Connector) <br>
      这是一种简易方案,对数据库的操作仍然放在Web端,但用户可通过SQL(Structured 
    Query Language)语句对数据库进行查询、输入、更新、删除等操作。IDC设计简易,不用编译就可直接执行,且支持对数据的多重查询(Multiple 
    Query)。 <br>
      3. 先进数据库连接器ADC(Advanced Data Connector) <br>
      前两种方案中对数据库的操作都是在服务器端进行,而ADC是在浏览器端执行数据查询动作。当浏览器提出对数据库的操作请求时,ADC 
    先将相应的数据库下载到浏览器端,在用户端对数据库进行操作。显然,这种方案效率很高。客户端对数据库的查询是由安装在客户端的A 
    DC ActiveX Control完成的,而这个ActiveX Control是由站点服务器自动下载并安装在客户端的。 
    <br>
      4. ADO与ASP <br>
      这是一种完全的Web数据库访问方案,可把ADO与ASP结合起来,建立提供数据库信息的网页内容,在网页中执行SQL命令,对数据库进行查询、插入、更新、删除等操作。ADO中可用VBScript、JavaScript 
    语言来控制数据库的访问(而ASP恰恰是脚本语言的解释环境)和查询结果的输出;ADO中使用RecordSets对象对数据库进行操作;可以连接多种支持OD 
    BC的数据库。数据查询实例:港澳证件信息查询 <br>
      本例要完成的操作是对港澳出入境数据库进行查询,客户可给出一种或几种查询条件,然后按要求显示查询结果。 
    <br>
      1. 确定数据源 <br>
      要访问网上数据库,首先设定数据来源。在服务器上打开&quot;我的电脑&quot;中的&quot;控制面板&quot;,双击&quot;ODBC&quot;;在&quot;系统DSN&quot;下选&quot;添加&quot;,选出预先设好的数据库种类、名称和位置。这里要用到的是FoxPro数据库,数据源名称为GACX,主数据库名称为visa.dbf,编码数据库名称为zd.dbf 
    。 <br>
      2. ADO查询数据库的使用 <br>
      ADO查询数据库的设计方法是先用Server.CreatObject取得对象&quot; 
    ADODB.Connection &quot;的一个实例,并用&quot;Open&quot;打开待访问的数据库: <br>
      Set Conn=Server.CreatObject(&quot;ADODB.Connection&quot;) <br>
      Conn.Open &quot;待访问的数据库名称&quot; <br>
      然后执行SQL命令,即对数据库进行操作,这里要使用Execute命令 : <br>
      Set RS =Conn .Execute( &quot; Select ...From...Where...&quot;)下一步就可对数据库进行查询操作,要用到RecordSets对象的如下命令: 
    <br>
      * RS.Fildes.Count <br>
       RecordSets的字段数 <br>
      * RS(i).Name <br>
       第i个字段名 <br>
      * RS(i) <br>
       第i个字段的记录 <br>
      * RS(&quot;字段名&quot;) <br>
        指定字段的记录 <br>
      * RS.EOF <br>
      是否指向最后一个字段 True or False <br>
      * RS.MoveFirst <br>
      指向第一条记录 <br>
      * RS.MovePrev <br>
      指向前一条记录 <br>
      * RS.MoveNext <br>
      指向后一条记录 <br>
      * RS.MoveLast <br>
      指向最后一条记录 <br>
      * RS.GetRows <br>
       将查询结果存放在数组中,然后再从数组中读取 <br>
      * RS.Properties.Count <br>
       得到ADO的Connection或ResultSet的属性总数 <br>
      * RS.Properties(Item).Name 得到ADO的Connection或ResultSe t的属性名称 <br>
      * RS.Properties(Item) <br>
       得到ADO的Connection或ResultSet的属性值 <br>
      3. 具体实现 <br>
      主页面为港澳证件信息查询,对应程序为gacx.asp。查询结果以两种方式显示,一是显示主要信息——港澳证件信息查询结果列表,对应程序为gacxlb.asp;一是显示全部信息——港澳证件信息查询结果, 
    对应程序为gacxxq.asp。如果查询条件不能满足时,还将显示一个提示页面,告诉用户不存在满足条件的结果,由程序gacxts.asp完成。 
    <br>
      根据客户提供的数据库和要求查询的各项内容建立查询、查询结果、查询结果列表页面,并给出一个简单的提示界面,告诉用户不存在满足条件的结果,请重新查询,这些工作可用FrontPage 
    98完成,整个页面应该做到简洁大方,主题鲜明。程序代码在Microsof t 
    Visual I nterDev下编写。 <br>
      下面处理编码数据库zd.dbf中的内容。从图2中可看到有很多带下拉框的选项,例如&quot;性别&quot;、&quot;出生地&quot;等,这些选项的内容都是从zd.d 
    bf数据库中提取出来的。因为有的选项内容很多,例如出境口岸有101 
    项之多,虽然也可用&lt; select&gt;&lt;option&gt;...&lt;/option&gt;&lt;/se lect&gt;格式在HTML页面中把各个选项列举出来,但将给程序的维护带来很大麻烦, 
    一旦编码数据库的内容有变动,程序也将作很多修改。而且带下拉框的选项都是在zd.dbf中编码,往主数据库中输入数据时这些选项都只输入编码,但显示时却不能显示编码,必须把编码对应的汉字显示出来。这段程序代码如下(以性别为例): 
    图2 <br>
      &lt;% <br>
      Set Conn=Server.CreatObject(&quot;ADODB.Connection&quot;) <br>
      Conn.Open &quot;GACX&quot; <br>
      Set RS =Conn.Execute(&quot;Select BC,MC From zd Where BC Like &quot;se%&quot;&quot;) 
    <br>
      Response.Write&quot;&lt;SELECT SIZE=1 NAME=&quot;SEX&quot;&gt;&quot;Do While Not R 
    S.EOF <br>
      Response.Write&quot;&lt;option value=‘&quot;RS(0)&quot;'&gt;&quot;&amp;RS(1) <br>
       Rs.MoveNext <br>
      Loop <br>
      Response.Write &quot;&lt;/SELECT&gt;&quot; <br>
      RS.Colse <br>
      Conn.Colse <br>
      %&gt; <br>
      其中,zd.dbf包含两个字段MC、BC,MC表示待编码项,如男、女,BC 
    表示编码,如性别编码的前两位为&quot;se&quot;,男用&quot;se1&quot;表示,女用&quot;se2&quot; 
    表示。 <br>
      数据库查询中最重要的是如何取得查询条件。本例中要查询的项可以分为两类:一类是输入的text类的查询条件,另一类是从下拉框中选出来的项,在处理时要区别对待。te 
    xt类型的查询条件很好处理, 例如姓名,笔者输入的内容命名为&quot;xm&quot;,如果输入的查询项不为空时就增加一个查询条件&quot;NAME=Request.Form(&quot;xm&quot;)&quot;即可。下拉框的处理较复杂,当下拉框选中一项时,例如性别选中男,下拉框中输入的是&quot;se 
    1&quot;(但反映在数据库中时为&quot;S EX=1&quot;,因为数据库中输入字典中带编码的项时只输入编码),就是要查询&quot;SEX=se1&quot;的项。处理时要把&quot;se1&quot;中的&quot;1&quot;提取出来,用一个函数mid即可,查询条件为&quot;SEX=mid(&quot;se1&quot;,3, 
    1)&quot;,即从数据库中查找SEX=1的项,并把所有满足条件的项不重复地列举出来。 
    <br>
      查询结果显示很容易实现,只须把查询结果的每条记录按列表的方式显示出来即可,但在显示查询结果时要显示编码对应的汉字,就是到字典中去找编码为&quot;se&quot;&amp;&quot;1&quot; 
    的项所对应的编码值,程序如下: <br>
      &lt;table border=&quot;1&quot; width=&quot;95%&quot; bordercolor=&quot;#C0C0C0&quot; 
    cell spacing=&quot;0&quot; cell padding=&quot;0&quot; <br>
       bordercolorlight=&quot;#C0C0C0&quot; bordercolordark=&quot;#C0C0C0&quot; he 
    ight=&quot;60&quot;&gt; <br>
      &lt;tr&gt; <br>
      &lt;td width=&quot;9%&quot; align=&quot;center&quot; height=&quot;1&quot;&gt;&lt;p 
    align=&quot;cente r&quot;&gt;姓  名&lt;/td&gt; <br>
       &lt;td width=&quot;12%&quot; align=&quot;center&quot; height=&quot;1&quot;&gt;档 
    案 号&lt;/td&gt; <br>
      &lt;td width=&quot;6%&quot; height=&quot;1&quot;&gt;&lt;p 
    align=&quot;center&quot;&gt;性别&lt;/td&gt; <br>
      ...... <br>
      &lt;/tr&gt; <br>
      &lt;%i=1%&gt; <br>
      &lt;%While Not RS.EOF %&gt; <br>
      &lt;tr&gt; <br>
       &lt;td width=&quot;9%&quot; align=&quot;center&quot; 
    height=&quot;1&quot;&gt;&lt;%=RS (&quot;name&quot;) %&gt;&lt;/td&gt; <br>
       &lt;td width=&quot;12%&quot; 
    align=&quot;center&quot;height=&quot;1&quot;&gt;&lt;%=RS (&quot;dang&quot;) 
    %&gt;&lt;/td&gt; <br>
       &lt;td width=&quot;6%&quot; height=&quot;1&quot;&gt;&lt;%=Func (&quot;se&quot; 
    &amp; RS(&quot;sex&quot;),GAC X)%&gt;&lt;/td&gt; <br>
      ...... <br>
       &lt;/tr&gt; <br>
       &lt;%RS.MoveNext%&gt; <br>
       &lt;%i=i+1%&gt;&lt;%WEnd%&gt;&lt;/table&gt; <br>
      其中,Func (&quot;se&quot; &amp; RS(&quot;sex&quot;),GACX)是个函数,实现从数据源中取得编码所对应的汉字的功能。 

  </table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -