博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从ASP迁移至ASP+--最初的考虑(二) (转)
阅读量:2501 次
发布时间:2019-05-11

本文共 2940 字,大约阅读时间需要 9 分钟。

从ASP迁移至ASP+--最初的考虑(二) (转)[@more@]

 

最初的考虑(二)
作 者 : 雨晨
   运用和在一个单独模块中创建一个普遍性的连接相同的构想,我们创建了一个Pagelet。Pagelet使开发人员可以创建伪 ,伪控件和 一样可以用来显示属性,方法以及事件。我们的方案是:创建一个显示ConnectTo 方法的Pagelet,该方法返回一个ADOConnection对象(与ADO的语法稍有不同)。我们用下面的代码创建Pagelet,将它存为connect. c(扩展名表明它是一个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 Prov r这些Namespaces是必须的。许多人就此问了我许多问题,因为目前多数示例都使用基于 SERVER 2000 的SQL Managed Provider。对于非 数据库,ASP+可以使用ADO+ Managed Provider,这和目前你在 中使用ADO的方式大致相同。导入Namespaces和在VB程序中创建参考(Reference)有异曲同工之妙。
   Pagelet的运用使我可以维护当前的站点计划,一旦在模块中创建了连接,我们就可在任何需要的地方重用模块。这意味着我们需要用Pagelet的一个实例来替代Include 指令,然后当我们需要数据库连接时 ConnectToDB方法。在需要使用Pagelet的页面中,我们首先必须使用ASP+指令将之与该页面注册(register)。在指令中,我们定义TagPrefix,TagName,以及 (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. (ASP+页面的后缀)后代码都有了哪些改变。先看default.asp:
   < !-- #include file="_includes/connect.inc" --&gt
   < %
   Dim cnEville_DB, rsUpcoming, strSqlUpcoming
   Set rsUpcoming = Server.Create ("ADODB.Recordset")
   strSqlUpcoming = " 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。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10748419/viewspace-976321/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10748419/viewspace-976321/

你可能感兴趣的文章
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
ubuntu终端一次多条命令方法和区别
查看>>
python之偏函数
查看>>
vnpy学习_06回测结果可视化改进
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>
设计模式03_工厂
查看>>
设计模式04_抽象工厂
查看>>
设计模式05_单例
查看>>
设计模式06_原型
查看>>
设计模式07_建造者
查看>>
设计模式08_适配器
查看>>
设计模式09_代理模式
查看>>
设计模式10_桥接
查看>>
设计模式11_装饰器
查看>>
设计模式12_外观模式
查看>>
设计模式14_组合结构
查看>>
资金流入流出计算方法
查看>>
克罗谈投资策略02_赢家和输家
查看>>
克罗谈投资策略03_你所期望的赌博方式
查看>>