推薦:ASP實例:利用緩存提高數據顯示效率實例演示:先建立一個簡單的數據庫,寫個function讀取一下,寫入一個dim變量temp中:ASP代碼以下為引用的內容:<% Function DisplayRec
| 以下為引用的內容: <% 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 %> |
這是網上流傳的把Connection對象保存在Seesion對像中的代碼,注意其中的:Session(conn) = oConn,對象的複制就是這樣子的嗎?下邊我們來驗證一下:
| 以下為引用的內容: <% 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 %> |
結果出錯,提示缺少對象: 'Session(...)'!這說明對象並沒有復製成功,那Session(conn)是什麼類型的呢?我們用TypeName(Session(conn))來測試下,結果為String!出於好奇,我們直接輸出Session(conn)看看:
| 以下為引用的內容: <% 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 %> |
結果為:
| 以下為引用的內容: 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對象默認的屬性為ConnectionString,執行Session(conn) = oConn時只是將Connection對象默認屬性的值賦給Session(conn)。那為什麼用在oRs.open select * from t1,Session(conn),1,1也能成功呢?查找資料得出RecordSet對象open方法的第二個參數可以為Connection對象,也可以是數據庫連接信息的字符串! Ok了,那在上邊例子中的oConn對象完全是多餘的,直接用下邊代碼即可:
| 以下為引用的內容: <% 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 %> |
結果無錯。好了,到現在為止還剩下一個問題沒有解決:怎麼才是正確的對象複製方法?還是用Set語句:
| 以下為引用的內容: <% 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屬性的信息了,結果也顯示Session(conn)為Connection對象!
原文:http://www.mzwu.com/article.asp?id=1105
分享:Windows 2003 安裝設置iis安裝篇2003默認安裝不帶IIS的,要安裝,請點擊開始->管理工具->配置您的服務器嚮導然後一步步的下一步。到了列表選擇項目的時候。從列表中選擇應用服務器(IIS,ASP.NET)