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:
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>
il problema è che la data di aggiornamento me la da, l'Application Pulizia me la imposta giusta .. ma non mi fa la pulizia!!!

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