1
 
  ···>>> 概述
  在“走近ASP”的前几讲中,我们接触到了ASP一些基本脚本特性,从这一部分开始,我们将进一步探讨这些特性,虽然说是“进一步”,但我们的宗旨仍然没变,即:我们以看懂脚本流程为主,并且形成使用、移植代码模块,组织成符合自己需要的程序的能力。并且,本讲开始涉及ASP与flash的结合问题,这也是我接触ASP的初衷。
  鉴于上述原因,我的这篇文章实际上是“初学者与初学者的交流”,咱们可都是“菜鸟”哦,你将发现,以下的文字描述将是最浅显的,涉及的内容更是初学者所关心的......
  我们要制作基于ASP动态数据的flash作品时,必需了解Flash与ASP交换数据的原理,而ASP之所以能快速、高效、科学地组织数据依赖于数据库,虽然我们也曾接触过无数据库的ASP例子,但作为初学者也感觉到,这种靠文本文件管理信息的方式效率实在低下,而且功能十分有限,更谈不上安全性了!
  下面我们先探讨一下ASP与数据库的连接。
  在我们读到的大部分ASP文档头部,总能看到一段似曾相同,却又相差甚远的脚本,这就是ASP与数据库连结的脚本,或许在此之前你对它们感到“晕”,那么,看完下面内容,我保证你不再会“晕”:
  ···>>> 有关数据库连结的基本知识
  请你挺着!或许这部分是本讲最让你乏味的,读懂了这部分内容,下面将水到渠成,一通百通哦......
  ·两个重要对象Connection和Recordset:
  其中,Connection是把数据库运用到web页面上来的最根本的手段,ASP脚本中对于数据库后续的种种操作,均依赖它,它是先决条件!
  我们打个比方,在Flash中,“库”中元件没放在舞台上等于零!同理,Connection等同于让“库”中的数据在我们的工作台上有了个“实例”,“舞台”中有了素材的“实例”,精彩的动画从此开始,这个比喻你不可能不懂吧?OK,现在看看如何创建它,在Flash中,创建实例可以用鼠标从库中拖到舞台上,而在ASP中,创建数据库的“实例”可以用采用一句“服务器对象”语句:
“Create”,它可能是这样的:
set Con=Server.CreateObject("ADOBE.Connection")
  其中,Con是实例名,在ASP中,为实例名指定值一定要用“set”,OK,除了那个ADOBE,全懂了!好,那么我们简述一下ADOBE
  有个技术名字叫OLEDB,它可以使用户访问任何数据源,但它是“系统级”的编程接口,非专业程序员难以问鼎,再打个比喻,它好比是C语言,功能强大却又是“阳春白雪”!
  还好,总会有适合“下篱巴人”的东东,那就是上面看到的ADOBE!也就是我们常看到的ADO。
  ADO
也是一组接口,但它是“应用程序级”的,我们无需深究它的接口原理,只需按照上例用上去,Con实例就有了!
  但光有个数据“实例”事情没完啊,Connection其实是“空”的,它好比是flash中的MC,功能强大但还没内容,还得有一个存放数据集的“盒子”,这就是Recordset。它是属于ADO的一个对象。
  Recordset好比是一个具有“横、竖”格子的容器,用句行话说是一个“二维数组”,分别存放数据库中的数据结构与内容。
  创建Recordset也容易,如下所示:
set rs=Server.CreateObject("ADODB.RecordSet")
  这下不用再解释了吧?!rs就是存放数据库结构及内容的“盒子”哦。
  请你再坚持一下哦,接下去的内容可以稍微有点“烦”,但跨过这道坎可是一马平川啊......
  两个对象有了,我们还得依一定方式“打开”它们,两个对象都有一个“open”方法,关于open的具体脚本,暂不展示,免得你一晕不想看下去了,咱先谈谈相关的几个问题:
  有一个服务器对象,叫MapPath,它将“相对路径或虚拟路径”映射为服务器物理路径,比如,它可以把诸如:
“C:\Inetpub\wwwroot\db\hslk.mdb”或者“http://www.hslk.com/db/hslk.mdb”等“虚拟路径”映射为“db/hslk.mdb”的服务器路径。
  还有一个“放之四海而皆准”的数据库操作语言SQL,它的功能盖世无双,语句清晰,语法如同“说话”,比如:
select * from hslk where name="lk"
  它的意思就是:从(from)数据库表hslk那里选择(select)所有字段(*)中条件为name="lk"的内容!
  呵呵,好象没什么难度,是吧?
  那么,再坚持下,咱们这就说最后一个问题:连结数据源的两种方式。
  上面把这个问题暂时“挂”起,两个对象还有个open问题,而Connection对象的open有两种方式:
  一种是:采用设置“数据源”(DSN)的方法,我们上一辑已经讲过,通过windows系统的ODBC设置一个DSN源,如果你为这个数据源起了个“myAccess”的名字,那么你就可以用如下脚本完成Connection的open:
               <%
              Set Con=Server.CreateObject("ADODB.Connection")
              Con.Open"DSN=myAccess"
              %>
  还有一种就是“无DSN连接”,如果你不想进行上述的ODBC操作,那么可以手写open语句,就必需加上DriverDBQ两个参数,前者指定微软的数据库驱动程序;后者指定数据库路径,如:
              ?/font><%
              ?/font>Set Con=Server.CreateObject("ADODB.Connection")
              ?/font>Con.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ=myAccess"
              ?/font>%>
  那么,至于Recordset对象的open如何呢?呵呵,一般地就是用SQL语句喽!
  OK,现在我们已经具备充分的“阅读能力”,下面我们看看一例较完整的脚本!
  翻页继续,咱们现在不会再“晕”喽......