ho fatto in questo modo:
quando inserisco il banner (che poi non è prorio un banner) faccio cosi:
inserisco i dati nei vari campi della testata
codice:
SQL = "INSERT INTO BANNER_Gestione ( " &_
" DataInserimento, " &_
" NumeroBox, " &_
" Data, " &_
" Peso, " &_
" Random, " &_
" MassimoBanner, " &_
" Visibile) " &_
" VALUES ( " &_
" "&DataOggi&", " &_
" "&Box&", " &_
" '"&Data&"', " &_
" "&Peso&", " &_
" "&Random&", " &_
" "&MassimoBanner&", " &_
" "&Visibile&") "
'response.write(sql):response.end
set Rs=Conn.execute(Sql)
poi prendo il valore dell'ID creato:
SQL = "SELECT @@IDENTITY FROM BANNER_Gestione"
Set Rs = Conn.Execute(SQL)
ID_Banner = Rs(0)
e poi prendo il valore del campo PESO e creo in una tabella temporanea tanti record quanto è il numero peso:
For p = 1 to Peso
SQL = "INSERT INTO BANNER_GestioneTEMP (ID_Banner, NumeroBox, Data) VALUES ( "&ID_Banner&", "&Box&", '"&Data&"') "
set Rs=Conn.execute(Sql)
Next
a questo punto la query di prima la lancio in questa tabella e pare che funzioni ..... la testero nei prossimi giorni
codice:
Data = "20120104"
SQL = "SELECT Max(ID) AS MaxID, Min(ID) AS MinID FROM BANNER_GestioneTEMP Where Data = '"&Data&"' And NumeroBox = 1"
Set Rs=Conn.Execute(SQL)
Dim maxID, minID, rndID
maxID = Rs("MaxID")
minID = Rs("MinID")
Randomize
rndID = Int((maxID - minID + 1) * Rnd + minID)
SQL = "SELECT * FROM BANNER_GestioneTEMP WHERE ID >= " & rndID
Set Rs= Conn.Execute(SQL)
Response.Write(Rs("ID_Banner"))
il codice non sarà per niente pulito ma il concetto che diceva optime credo sia questo.
Grazie mille