中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > Web开发 > Asp > 基本
从ASP迁移至ASP+--最初的考虑(二)
作者:佚名 时间:2006-10-27 15:59 出处:Host01.Com 责编:月夜寒箫
              摘要:从ASP迁移至ASP+--最初的考虑(二)
运用和在一个单独模块中创建一个普遍性的连接相同的构想,我们创建了一个Pagelet。Pagelet使开发人员可以创建伪控件,伪控件和对象一样可以用来显示属性,方法以及事件。我们的方案是:创建一个显示ConnectToDB方法的Pagelet,该方法返回一个ADOConnection对象(与ADO的语法稍有不同)。我们用下面的代码创建Pagelet,将它存为connect.aspc(扩展名表明它是一个Pagelet)

   < %@ Import Namespace="System.Data" %>

   < %@ Import Namespace="System.Data.ADO" %>

   < script language="VB" runat="server">

   Public Function ConnectToDB() As ADOConnection

   ConnectToDB = New ADOConnection("DSN=evilleDSN")

   End Function

   < /script>

   你会注意到我们导入了两个Namespaces,即System.Data和System.Data.ADO。为了使用ADO+ Managed Provider这些Namespaces是必须的。许多人就此问了我许多问题,因为目前多数示例都使用基于Microsoft SQL Server 2000数据库的SQL Managed Provider。对于非SQL Server 数据库,ASP+可以使用ADO+ Managed Provider,这和目前你在程序中使用ADO的方式大致相同。导入Namespaces和在VB程序中创建参考(Reference)有异曲同工之妙。

   Pagelet的运用使我可以维护当前的站点计划,一旦在模块中创建了连接,我们就可在任何需要的地方重用模块。这意味着我们需要用Pagelet的一个实例来替代Include文件指令,然后当我们需要数据库连接时调用ConnectToDB方法。在需要使用Pagelet的页面中,我们首先必须使用ASP+指令将之与该页面注册(register)。在指令中,我们定义TagPrefix,TagName,以及Source(src)。与ASP中的include文件类似,在我们放置Pagelet的地方要用到TagPrefix和TagName。

   < %@ Register TagPrefix="seven" TagName="Connect"

   src="_includes/connect.aspc" %>

   放置我们刚注册的Pagelet的方法与ASP+服务器控件类似:

   < [TagPrefix]:[TagName] id=myPagelet runat=server />

   比如:

   < seven:Connect id=Connect runat=server />

   在ADO+中,记录集(Recordset)的概念被DataSets和DataViews的组合所取代。一会儿我们将讨论这两个概念。首先让我们看看在default.asp页面迁移至default.aspx(ASP+页面的后缀)后代码都有了哪些改变。先看default.asp:

   < !-- #include file="_includes/connect.inc" -->

   < %

   Dim cnEville_DB, rsUpcoming, strSqlUpcoming

   Set rsUpcoming = Server.CreateObject("ADODB.Recordset")

   strSqlUpcoming = " SELECT TOP 2 " & _

   "Classes.Title, Sessions.Session_ID, " & _

   "Sessions.Special, Classes.Description " & _

   "FROM Classes INNER JOIN Sessions ON " & _

   "Classes.Class_ID = Sessions.ClassID " & _

   "WHERE (((Sessions.Date)>Date())) " & _

   "ORDER BY Sessions.Date"

   rsUpcoming.Open strSqlUpcoming,cnEville_DB

   %>

   在ASP+中成了default.aspx:

   < %@ Import Namespace="System.Data" %>

   < %@ Import Namespace="System.Data.ADO" %>

   < %@ Register TagPrefix="seven" TagName="Connect" &_

   src="_includes/connect.aspc" %>

   < script language="vb" runat=server>

   Sub Page_Load(Source As Object, E As EventArgs)

   Dim dscUpcoming As ADODataSetCommand

   Dim dsUpcoming As New DataSet

   Dim strSQL As String

   strSQL = "SELECT TOP 2 Classes.Title," & _

   "Sessions.Session_ID, Classes.Description " & _

   "FROM Classes INNER JOIN Sessions ON " & _

   "Classes.Class_ID = Sessions.ClassID " & _

   "WHERE (((Sessions.Date)>Date())) " & _

   "ORDER BY Sessions.Date"

   dscUpcoming = New ADODataSetCommand(strSQL, Connect.ConnectToDB())

   dscUpcoming.FillDataSet(dsUpcoming, "Upcoming")

   End Sub

   < /script>

   数据访问的核心,ANSI-SQL语句在转换后没有什么改变。然而正如你所看到的,创建记录集的结构发生了改变,我们使用的是ADODataSetCommand和DataSet。
关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有