|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
最初的考虑(二) 作 者 : 雨晨 运用和在一个单独模块中创建一个普遍性的连接一样的构想,我们创建了一个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。 返回类别: 教程 上一教程: ADO 光 标 基 础 (1) 下一教程: Asp的安全治理(6) 您可以阅读与"从ASP迁移至ASP+--最初的考虑(二)"相关的教程: · 从ASP迁移至ASP+--最初的考虑(一) · 从ASP迁移至ASP+ --HTML表格转变为ASP+列表 · 从ASP迁移至ASP+--从用户那儿收集数据 · 从ASP迁移至ASP+--CustomValidator控件 · 从ASP迁移至ASP+--进入DataSet |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |