亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

asp xml 緩存類

2024-05-04 11:09:03
字體:
來源:轉載
供稿:網友
本類部分借鑒 walkmanxml數據緩存類,使用更為方便 歡迎各位交流進步
 
 
 
復制代碼代碼如下:

<% 
Rem xml緩存類 
'-------------------------------------------------------------------- 
'轉載的時候請保留版權信息 
'作者:╰⑥月の雨╮ 
'版本:ver1.0 
'本類部分借鑒 walkmanxml數據緩存類,使用更為方便 歡迎各位交流進步 
'-------------------------------------------------------------------- 
Class XmlCacheCls 
Private m_DataConn '數據源,必須已經打開 
Private m_CacheTime '緩存時間,單位秒 默認10分鐘 
Private m_XmlFile 'xml路徑,用絕對地址,不需要加擴展名 
Private m_Sql 'SQL語句 
Private m_SQLArr '(只讀)返回的數據數組 
Private m_ReadOn '(只讀)返回讀取方式 1-數據庫 2-xml 檢測用 

'類的屬性========================================= 

'數據源 
Public Property Set Conn(v) 
Set m_DataConn = v 
End Property 
Public Property Get Conn 
Conn = m_DataConn 
End Property 

'緩存時間 
Public Property Let CacheTime(v) 
m_CacheTime = v 
End Property 
Public Property Get CacheTime 
CacheTime = m_CacheTime 
End Property 

'xml路徑,用絕對地址 
Public Property Let XmlFile(v) 
m_XmlFile = v 
End Property 
Public Property Get XmlFile 
XmlFile = m_XmlFile 
End Property 

'Sql語句 
Public Property Let Sql(v) 
m_Sql = v 
End Property 
Public Property Get Sql 
Sql = m_Sql 
End Property 
'返回記錄數組 
Public Property Get SQLArr 
SQLArr = m_SQLArr 
End Property 

'返回讀取方式 
Public Property Get ReadOn 
ReadOn = m_ReadOn 
End Property 

'類的析構========================================= 

Private Sub Class_Initialize() '初始化類 
m_CacheTime=60*10 '默認緩存時間為10分鐘 
End Sub 

Private Sub Class_Terminate() '釋放類 

End Sub 

'類的公共方法========================================= 

Rem 讀取數據 
Public Function ReadData 
If FSOExistsFile(m_XmlFile) Then '存在xml緩存,直接從xml中讀取 
ReadDataFromXml 
m_ReadOn=2 
Else 
ReadDataFromDB 
m_ReadOn=1 
End If 
End Function 

Rem 寫入XML數據 
Public Function WriteDataToXml 
If FSOExistsFile(m_XmlFile) Then '如果xml未過期則直接退出 
If Not isXmlCacheExpired(m_XmlFile,m_CacheTime) Then Exit Function 
End If 
Dim rs 
Dim xmlcontent 
Dim k 
xmlcontent = "" 
xmlcontent = xmlcontent & "<?xml version=""1.0"" encoding=""gb2312""?>" & vbnewline 
xmlcontent = xmlcontent & " <root>" & vbnewline 
k=0 
Set Rs = Server.CreateObject("Adodb.Recordset") 
Rs.open m_sql,m_DataConn,1 
While Not rs.eof 
xmlcontent = xmlcontent & " <item " 
For Each field In rs.Fields 
xmlcontent = xmlcontent & field.name & "=""" & XMLStringEnCode(field.value) & """ " 
Next 
rs.movenext 
k=k+1 
xmlcontent = xmlcontent & "></item>" & vbnewline 
Wend 
rs.close 
Set rs = Nothing 
xmlcontent = xmlcontent & " </root>" & vbnewline 

Dim folderpath 
folderpath = Trim(left(m_XmlFile,InstrRev(m_XmlFile,"/")-1)) 
Call CreateDIR(folderpath&"") '創建文件夾 
WriteStringToXMLFile m_XmlFile,xmlcontent 
End Function 

'類的私有方法========================================= 

Rem 從Xml文件讀取數據 
Private Function ReadDataFromXml 
Dim SQLARR() '數組 
Dim XmlDoc 'XmlDoc對象 
Dim objNode '子節點 
Dim ItemsLength '子節點的長度 
Dim AttributesLength '子節點屬性的長度 
Set XmlDoc=Server.CreateObject("Microsoft.XMLDOM") 
XmlDoc.Async=False 
XmlDoc.Load(m_XmlFile) 
Set objNode=XmlDoc.documentElement '獲取根節點 
ItemsLength=objNode.ChildNodes.length '獲取子節點的長度 
For items_i=0 To ItemsLength-1 
AttributesLength=objNode.childNodes(items_i).Attributes.length '獲取子節點屬性的長度 
For Attributes_i=0 To AttributesLength-1 
ReDim Preserve SQLARR(AttributesLength-1,items_i) 
SQLArr(Attributes_i,items_i) = objNode.childNodes(items_i).Attributes(Attributes_i).Nodevalue 
Next 
Next 
Set XmlDoc = Nothing 
m_SQLArr = SQLARR 
End Function 

Rem 從數據庫讀取數據 
Private Function ReadDataFromDB 
Dim rs 
Dim SQLARR() 
Dim k 
k=0 
Set Rs = Server.CreateObject("Adodb.Recordset") 
Rs.open m_sql,m_DataConn,1 
If Not (rs.eof and rs.bof) Then 
While Not rs.eof 
Dim fieldlegth 
fieldlegth = rs.Fields.count 
ReDim Preserve SQLARR(fieldlegth,k) 
Dim fieldi 
For fieldi = 0 To fieldlegth-1 
SQLArr(fieldi,k) = rs.Fields(fieldi).value 
Next 
rs.movenext 
k=k+1 
Wend 
End If 
rs.close 
Set rs = Nothing 
m_SQLArr = SQLArr 
End Function 

'類的輔助私有方法========================================= 

Rem 寫xml文件 
Private Sub WriteStringToXMLFile(filename,str) 
Dim fs,ts 
Set fs= createobject("scripting.filesystemobject") 
If Not IsObject(fs) Then Exit Sub 
Set ts=fs.OpenTextFile(filename,2,True) 
ts.writeline(str) 
ts.close 
Set ts=Nothing 
Set fs=Nothing 
End Sub 

Rem 判斷xml緩存是否到期 
Private Function isXmlCacheExpired(file,seconds) 
Dim filelasttime 
filelasttime = FSOGetFileLastModifiedTime(file) 
If DateAdd("s",seconds,filelasttime) < Now Then 
isXmlCacheExpired = True 
Else 
isXmlCacheExpired = False 
End If 
End Function 

Rem 得到文件的最后修改時間 
Private Function FSOGetFileLastModifiedTime(file) 
Dim fso,f,s 
Set fso=CreateObject("Scripting.FileSystemObject") 
Set f=fso.GetFile(file) 
FSOGetFileLastModifiedTime = f.DateLastModified 
Set f = Nothing 
Set fso = Nothing 
End Function 

Rem 文件是否存在 
Public Function FSOExistsFile(file) 
Dim fso 
Set fso = Server.CreateObject("Scripting.FileSystemObject") 
If fso.FileExists(file) Then 
FSOExistsFile = true 
Else 
FSOExistsFile = false 
End If 
Set fso = nothing 
End Function 

Rem xml轉義字符 
Private Function XMLStringEnCode(str) 
If str&"" = "" Then XMLStringEnCode="":Exit Function 
str = Replace(str,"<","<") 
str = Replace(str,">",">") 
str = Replace(str,"'","'") 
str = Replace(str,"""",""") 
str = Replace(str,"&","&") 
XMLStringEnCode = str 
End Function 

Rem 創建文件夾 
Private function CreateDIR(byval LocalPath) 
On Error Resume Next 
Dim i,FileObject,patharr,path_level,pathtmp,cpath 
LocalPath = Replace(LocalPath,"/","/") 
Set FileObject = server.createobject("Scripting.FileSystemObject") 
patharr = Split(LocalPath,"/") 
path_level = UBound (patharr) 
For i = 0 To path_level 
If i=0 Then 
pathtmp=patharr(0) & "/" 
Else 
pathtmp = pathtmp & patharr(i) & "/" 
End If 
cpath = left(pathtmp,len(pathtmp)-1) 
If Not FileObject.FolderExists(cpath) Then 
'Response.write cpath 
FileObject.CreateFolder cpath 
End If 
Next 
Set FileObject = Nothing 
If err.number<>0 Then 
CreateDIR = False 
err.Clear 
Else 
CreateDIR = True 
End If 
End Function 
End Class 
'設置緩存 
Function SetCache(xmlFilePath,CacheTime,Conn,Sql) 
set cache=new XmlCacheCls 
Set cache.Conn=Conn 
cache.XmlFile=xmlFilePath 
cache.Sql=Sql 
cache.CacheTime=CacheTime 
cache.WriteDataToXml 
Set cache = Nothing 
End Function 
'讀取緩存 
Function ReadCache(xmlFilePath,Conn,Sql,ByRef ReadOn) 
set cache=new XmlCacheCls 
Set cache.Conn=conn 
cache.XmlFile=xmlFilePath 
cache.Sql=Sql 
cache.ReadData 
ReadCache=cache.SQLArr 
ReadOn=cache.ReadOn 
End Function 
%> 

使用方法: 
1 緩存數據到xml 
代碼: 
復制代碼代碼如下:

<!--#include file="Conn.asp"--> 
<!--#include file="Xml.asp"--> 
<% 
set cache=new XmlCacheCls 
Set cache.Conn=conn 
cache.XmlFile=Server.Mappath("xmlcache/index/Top.xml") 
cache.Sql="select top 15 prod_id,prod_name,prod_uptime from tblProduction" 
cache.WriteDataToXml 
%> 

2 讀取緩存數據 
代碼: 
復制代碼代碼如下:

<!--#include file="Conn.asp"--> 
<!--#include file="Xml.asp"--> 
<% 
set cache=new XmlCacheCls 
Set cache.Conn=conn 
cache.XmlFile=Server.Mappath("xmlcache/index/Top.xml") 
cache.Sql="select top 15 prod_id,prod_name,prod_uptime from tblProduction order by prod_id asc" 
cache.ReadData 
rsArray=cache.SQLArr 
if isArray(rsArray) then 
for i=0 to ubound(rsArray,2) 
for j=0 to ubound(rsArray,1) 
response.Write(rsArray(j,i)&"<br><br>") 
next 
next 
end if 
%> 
緩存時間,單位秒 默認10分鐘;也可以自己設定 cache.CacheTime=60*30 30分鐘

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
操人视频在线观看欧美| www.99久久热国产日韩欧美.com| 国产91精品久久久久久久| 欧美性xxxx在线播放| 久久影视电视剧免费网站| 国产精品美女久久| 国产一区私人高清影院| 国产成人一区二区三区电影| 欧美多人爱爱视频网站| 亚洲国产婷婷香蕉久久久久久| 欧美影院成年免费版| 亚洲福利在线看| 久久福利网址导航| 国产精品爽爽爽爽爽爽在线观看| 国产精品看片资源| 有码中文亚洲精品| 亚洲最大激情中文字幕| 91国在线精品国内播放| 国产aⅴ夜夜欢一区二区三区| 欧美激情精品久久久久久| 永久免费毛片在线播放不卡| 日韩大片免费观看视频播放| 96pao国产成视频永久免费| 亚洲激情电影中文字幕| 68精品国产免费久久久久久婷婷| 国产乱肥老妇国产一区二| 人九九综合九九宗合| 色综合久久88色综合天天看泰| 92版电视剧仙鹤神针在线观看| 久久夜色精品国产亚洲aⅴ| 亚洲福利视频在线| 日韩电影中文字幕一区| 久久成人免费视频| 欧美精品免费在线| 欧美一区二三区| 国模精品视频一区二区| 亚洲久久久久久久久久| 91网站在线看| 欧美激情在线观看| 欧美乱人伦中文字幕在线| 国产精品极品尤物在线观看| 成人情趣片在线观看免费| 日本中文字幕久久看| 亚洲二区中文字幕| 欧美高清视频在线播放| 亚洲精品白浆高清久久久久久| 热久久美女精品天天吊色| 久久精品精品电影网| 日韩欧美国产中文字幕| 亚洲成人性视频| 色爱av美腿丝袜综合粉嫩av| 欧美性极品少妇精品网站| 日韩经典中文字幕在线观看| 欧美精品精品精品精品免费| 国内精品美女av在线播放| 日韩精品中文字幕有码专区| 91久久精品日日躁夜夜躁国产| 色哟哟网站入口亚洲精品| 97成人精品区在线播放| 久久久久久久亚洲精品| 在线a欧美视频| 色阁综合伊人av| 亚洲在线免费观看| 色婷婷亚洲mv天堂mv在影片| 欧美巨乳美女视频| 日韩精品丝袜在线| 91av在线影院| 亚洲娇小xxxx欧美娇小| 亚洲欧美另类国产| 国产精品亚洲第一区| www欧美xxxx| 日韩不卡在线观看| 在线播放国产一区中文字幕剧情欧美| 国产精品一区二区久久| 亚洲精品久久久久国产| 欧美视频在线观看免费网址| 亚洲精品综合久久中文字幕| 精品福利一区二区| 成人激情av在线| 欧美精品电影免费在线观看| 国产精欧美一区二区三区| 国产欧美日韩最新| 国产亚洲美女精品久久久| 久久久久久久久久久国产| 日韩国产精品视频| 日韩电影免费观看在线| 日本久久久久久久| 日本亚洲欧美三级| 久久国产精品久久精品| 亚洲成年人影院在线| 久久精品99久久久香蕉| 韩曰欧美视频免费观看| 91久久国产综合久久91精品网站| 国产欧美精品日韩| 亚洲男人的天堂网站| 视频在线观看一区二区| 日韩在线免费视频| 欧美国产在线电影| 久久久国产精品亚洲一区| 久久久久久这里只有精品| 亚洲欧美日韩精品久久亚洲区| 97久久精品人搡人人玩| 日韩av在线免费观看一区| 91丨九色丨国产在线| 欧美激情中文网| 丝袜亚洲另类欧美重口| 国产精品入口免费视频一| 欧美一级视频在线观看| 日本精品中文字幕| 成人精品久久一区二区三区| 性欧美xxxx视频在线观看| 深夜福利亚洲导航| 中文字幕亚洲综合久久筱田步美| 欧美性xxxx极品hd满灌| 欧美在线免费看| 亚洲精品久久久久久久久久久久| 一区二区三区在线播放欧美| 亚洲精品成a人在线观看| 亚洲人在线视频| 中文亚洲视频在线| www.日本久久久久com.| 久久影院免费观看| 久久久久久久久电影| 国产精品国产自产拍高清av水多| 在线精品高清中文字幕| 91精品免费视频| 国产一区二区精品丝袜| 亚洲第一福利在线观看| 国产精品自产拍在线观看| 国产91精品最新在线播放| 久久九九免费视频| 亚洲综合自拍一区| 久久青草精品视频免费观看| 亚洲精品视频在线播放| 欧洲成人性视频| 国产精品视频久久久| 欧美午夜精品久久久久久久| 亚洲欧美日韩成人| 丁香五六月婷婷久久激情| 2020国产精品视频| 国产精品羞羞答答| 久久人人97超碰精品888| 日韩在线观看免费全集电视剧网站| 国产精品三级网站| 欧美高清第一页| 国产一区二区视频在线观看| 国产精品一区二区久久精品| 高清日韩电视剧大全免费播放在线观看| 中文字幕视频在线免费欧美日韩综合在线看| 日韩av在线电影网| 国产精品久久久久久网站| 亚洲第一区中文字幕| 中文字幕精品www乱入免费视频| 国语对白做受69| 国产精品久久9| 中文字幕免费精品一区高清| 91系列在线观看| xvideos成人免费中文版| 91产国在线观看动作片喷水| 98视频在线噜噜噜国产| 欧美精品电影在线| 精品综合久久久久久97| 亚洲va国产va天堂va久久| 国产精品偷伦免费视频观看的|