說說對象的復(fù)制_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:ASP實例:利用緩存提高數(shù)據(jù)顯示效率
      實例演示:先建立一個簡單的數(shù)據(jù)庫,寫個function讀取一下,寫入一個dim變量temp中: ASP代碼 以下為引用的內(nèi)容: <% Function DisplayRec

      以下為引用的內(nèi)容:
      <%
      Dim oConn,oRs
      Set oConn = Server.CreateObject("ADODB.Connection")
      Set ors = Server.CreateObject("ADODB.RecordSet")
      oConn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("db1.mdb")
      Session("conn") = oConn
      ors.open "select * from t1",Session("conn"),1,1
      Response.write(oRs(0))
      ors.close
      Set ors = Nothing
      oConn.close
      Set oConn = Nothing
      %>

      這是網(wǎng)上流傳的把Connection對象保存在Seesion對象中的代碼,注意其中的:Session("conn") = oConn,對象的復(fù)制就是這樣子的嗎?下邊我們來驗證一下:

      以下為引用的內(nèi)容:
      <%
      Dim oConn,oRs
      Set oConn = Server.CreateObject("ADODB.Connection")
      Set ors = Server.CreateObject("ADODB.RecordSet")
      oConn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("db1.mdb")
      Session("conn") = oConn
      ors.open "select * from t1",Session("conn"),1,1
      Response.write(Session("conn").ConnectionString)
      ors.close
      Set ors = Nothing
      oConn.close
      Set oConn = Nothing
      %>

      結(jié)果出錯,提示"缺少對象: 'Session(...)'"!這說明對象并沒有復(fù)制成功,那Session("conn")是什么類型的呢?我們用TypeName(Session("conn"))來測試下,結(jié)果為"String"!出于好奇,我們直接輸出Session("conn")看看:

      以下為引用的內(nèi)容:
      <%
      Dim oConn,oRs
      Set oConn = Server.CreateObject("ADODB.Connection")
      Set ors = Server.CreateObject("ADODB.RecordSet")
      oConn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("db1.mdb")
      Session("conn") = oConn
      ors.open "select * from t1",Session("conn"),1,1
      Response.write(Session("conn"))
      ors.close
      Set ors = Nothing
      oConn.close
      Set oConn = Nothing
      %>

      結(jié)果為:

      以下為引用的內(nèi)容:
      Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=E:\www\db1.mdb;Mode=Share Deny None;
      Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";
      Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global
      Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;
      Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;
      Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False

      這不是Connection對象的ConnectionString屬性值嗎?Connection對象默認(rèn)的屬性為ConnectionString,執(zhí)行Session("conn") = oConn時只是將Connection對象默認(rèn)屬性的值賦給Session("conn")。那為什么用在oRs.open "select * from t1",Session("conn"),1,1也能成功呢?查找資料得出RecordSet對象open方法的第二個參數(shù)可以為Connection對象,也可以是數(shù)據(jù)庫連接信息的字符串!Ok了,那在上邊例子中的oConn對象完全是多余的,直接用下邊代碼即可:

      以下為引用的內(nèi)容:
      <%
      Dim ors
      Set ors = Server.CreateObject("ADODB.RecordSet")
      Session("conn") = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("db1.mdb")
      ors.open "select * from t1",Session("conn"),1,1
      Response.write(oRs(0))
      ors.close
      Set ors = Nothing
      %>

      結(jié)果無錯。好了,到現(xiàn)在為止還剩下一個問題沒有解決:怎么才是正確的對象復(fù)制方法?還是用Set語句:

      以下為引用的內(nèi)容:
      <%
      Dim oConn,oRs
      Set oConn = Server.CreateObject("ADODB.Connection")
      Set ors = Server.CreateObject("ADODB.RecordSet")
      oConn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Server.MapPath("db1.mdb")
      Set Session("conn") = oConn
      ors.open "select * from t1",Session("conn"),1,1
      Response.write(Session("conn").ConnectionString)
      Response.write("<br/>")
      Response.write(TypeName(Session("conn")))
      ors.close
      Set ors = Nothing
      oConn.close
      Set oConn = Nothing
      %>

      這次能顯示出ConnectionString屬性的信息了,結(jié)果也顯示Session("conn")為Connection對象!

      原文:http://www.mzwu.com/article.asp?id=1105

      分享:Windows 2003 安裝設(shè)置iis
      安裝篇 2003默認(rèn)安裝不帶IIS的,要安裝,請點擊開始->管理工具->配置您的服務(wù)器向?qū)? 然后一步步的下一步。到了列表選擇項目的時候。 從列表中選擇 應(yīng)用服務(wù)器(IIS,ASP.NET)

      來源:模板無憂//所屬分類:ASP教程/更新時間:2008-08-22
      相關(guān)ASP教程