ho inglobato nel global.asa due check che mi servono in un sito:
- uno determina la data dell'ultima mofica sul db
- uno in base alla data attuale va a eliminare iscritti alla newsletter in attesa .. e archivia news ed iniziative
questo il codice:
il problema è che la data di aggiornamento me la da, l'Application Pulizia me la imposta giusta .. ma non mi fa la pulizia!!!codice:<SCRIPT LANGUAGE="VBScript" RUNAT="Server"> Sub Application_OnStart Application("ActiveUsers") = 0 End Sub Sub Session_OnStart Session.Timeout = 10 'Incremento il numero di utenti all'inizio di una nuova sessione Application.Lock Application("ActiveUsers") = Application("ActiveUsers") + 1 Aggiornamenti Controlla Application.UnLock End Sub Sub Session_OnEnd Application.Lock Application("ActiveUsers") = Application("ActiveUsers") - 1 Application("Update") = Application("Update") Application("Pulizia") = Application("Pulizia") Application.UnLock End Sub sub Aggiornamenti set conn = Server.CreateObject("ADODB.Connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-database\NOMEDB.mdb") set rs = Server.CreateObject("ADODB.Recordset") sql = "SELECT MAX(Campo1) AS aggiorna " sql = sql & "FROM " sql = sql & "(SELECT MAX(Inserito) AS Campo1 FROM TblDown " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblEletti " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblFoto " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblFotoRaccolta " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblIniziative " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblLinks " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblLinksCat " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblMemphis " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblNews " sql = sql & "UNION SELECT MAX(Inserito) AS Campo1 FROM TblPagine)" rs.open sql, conn, 3, 3 update = Mid(rs("aggiorna"),7,2) & "/" & Mid(rs("aggiorna"),5,2) & "/" & Left(rs("aggiorna"),4) rs.Close() Set rs = Nothing if IsNull(Application("Update")) or Application("Update") <> update then Application("Update") = update else Application("Update") = Application("Update") end if conn.Close set Conn = Nothing end sub Sub CalcolaData(data) aaaa = Year(data) mese = Month(data) giorno = Day(data) if mese < 10 then mm = "0" & mese else mm = mese end if if giorno < 10 then gg = "0" & giorno else gg = giorno end if valoredata = aaaa&mm&gg end Sub Sub Controlla if IsNull(Application("Pulizia")) or Application("Pulizia") <> Date() or Application("Pulizia") = "" then Pulisci Application("Pulizia") = Date() else Application("Pulizia") = Application("Pulizia") end if End Sub Sub Pulisci valoredata = "" CalcolaData(DateAdd("d",-5,Date())) newsletter = valoredata CalcolaData(DateAdd("m",-1,Date())) iniznews = valoredata set conn1 = Server.CreateObject("ADODB.Connection") conn1.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("mdb-database\NOMEDB.mdb") conn1.Execute = "DELETE FROM TblNewsletter WHERE Attivo = 'N' AND (VariazioneMail < '" & newsletter & "' OR (Iscrizione < '" & newsletter & "' AND IsNull(VariazioneMail)))" 'elimino gli iscritti in attesa della newsletter 'archivio le iniziative set rs = Server.CreateObject("ADODB.Recordset") sql = "SELECT * FROM TblIniziative WHERE Al < '" & iniznews & "'" rs.open sql, conn1, 3, 3 if not rs.eof then do while not rs.eof rs("Archivio") = "S" rs.update rs.movenext loop end if rs.close set rs = nothing 'archivio le news set rs = Server.CreateObject("ADODB.Recordset") sql = "SELECT * FROM TblNews WHERE Inserito < '" & iniznews & "'" rs.open sql, conn1, 3, 3 if not rs.eof then do while not rs.eof rs("Archivio") = "S" rs.update rs.movenext loop end if rs.close set rs = nothing conn1.close set conn1 = nothing End Sub </SCRIPT>
A DB uso un sistema di memorizzazione date nel formato AAAAMMGG ... quindi dopo aver calcolato i giorni o mesi di differenza in base a cosa eliminare/archiviare, trasformo quella data ricavata nel formato AAAAMMGG per poterla verificare nel db stesso
Sembra che il famoso valoredata non le lo ricavi .. o sia vuoto .. qualcuno mi riesce ad illuminare?
TNX MILLE

Rispondi quotando