zoukankan      html  css  js  c++  java
  • [ASP]可以统计显示次数并设定显示次数的广告轮显代码

    基于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
  • 相关阅读:
    asp.net程序集冲突解决笔记(未能加载文件或程序集"XXXXXXXXX")
    让Asp.net mvc WebAPI 支持OData协议进行分页查询操作
    jQuery Select 自动选择默认值
    nuget在jenkins上不能自动还原项目依赖包---笔记
    Ubuntu 14.04 server ssh 远程服务遇到的一点事儿
    Unbunt vi 编辑器键盘按键不正确的一次经历与解决方案
    Ubuntu root 密码 sudo passwd
    Visual Studio 2015 下 编译 libpng
    .NET使用Com组件的一点点教训笔记~
    Linux透明大页(Transparent Huge Pages)对ES性能对影响
  • 原文地址:https://www.cnblogs.com/zkxp/p/363454.html
Copyright © 2011-2022 走看看