您的位置:首页 > 编程语言 > ASP

[ASP]可以统计显示次数并设定显示次数的广告轮显代码

2006-03-31 12:17 441 查看
基于AC数据库,本来做来是每次都要更新数据库的显示次数到数据库的。但实践证明,上了140的在线量该位置就要报冲突错误了。后台就改写成如下方式放到application中,每n分钟或其中的1个BANNER显示完毕触发向数据库中更新,实践证明效率大大滴好了转。以前经过实践推敲的好些代码,现在而今眼目下都不用了。慢慢贴出来吧。自己看代码建立相应表。及后台。

Call BannerDisPlay()
Sub BannerDisPlay()
Dim ArrBanner,ArrLen,BannerData,PRVDBSTATE
BannerData = Application("BannerData")
ArrLen = UBound(BannerData)
If ArrLen = 0 Then
Response.Write "该广告位没有数据"
Exit Sub
Else
Dim b
Randomize
b = Int((ArrLen * Rnd))
If BannerData(b,7) = False Then
Response.Write "<a href='BanenrGo.asp?ID="&BannerData(b,0)&"' target='_blank'><img src='"& BannerData(b,2) &"' width='468' height ='60' border='0'></a>"
Else
Response.Write(BannerData(b,6))
End If
If Application("BannerData")(b,5) - BannerData(b,4) > 1 Then
If DBSTATE = False Then
DbOpen()
PRVDBSTATE = True
End If
Dim cs
Conn.Execute("update [AD_Banner] set DisTimes="& BannerData(b,5)+1 &",EndDate=now,HasOver=True where ADID="& BannerData(b,0))
Set cs = Server.CreateObject("ZKXP.Cash")
Set cs.Conn = Conn
Application.Lock()
cs.LoadBannerData
Application.UnLock()
Set cs = nothing
'Response.Write "<b>reload</b><br>"
Else

BannerData(b,5) = BannerData(b,5) + 1
Application.Lock()
'Response.Write "<br>addOneID="& BannerData(b,0) &"<br>"
'Response.Write "存入之前显示AP="&Application("BannerData")(b,5)&"Arr="&BannerData(b,5)&"<br>"
Application("BannerData") = BannerData
'response.Write "存入之后显示AP="& Application("BannerData")(b,5) &"<br>"
Application.UnLock()
End If

If DateDiff("n",Application("BannerDataSaveDate"),now) >= SBDtDif Then'SBDtDif变量定义在UserBin
Application.Lock()
Application("BannerDataSaveDate") = now
Application.UnLock()
Dim i
If DBSTATE = False Then
DbOpen()
PRVDBSTATE = True
End If
for i = 0 to uBound(Application("BannerData")) - 1
Conn.Execute("update [AD_Banner] set DisTimes="&Application("BannerData")(i,5)&" where ADID="&Application("BannerData")(i,0))
next
End If

End If
If PRVDBSTATE = True Then DbClose()
BannerData = null
End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: