Originariamente inviato da optime
top(n) legge al massimo n, quindi anche meno di n. posta la query
In effetti ho verificato che seleziona anche meno di n record (c'era un response.end che mi bloccava il ciclo)
Ora però vado in loop! Leggo i vari blocchi di 100 e leggo anche i "fuori blocco" ma mi va in loop
codice:
Set rs_List = Server.CreateObject("ADODB.Recordset")
rs_List.Open("SELECT * FROM MailingList WHERE Inviata=0"),conn, 1, 3
Do While NOT rs_List.EOF
Set rs_DaInviare = Server.CreateObject("ADODB.Recordset")
rs_DaInviare.Open("SELECT TOP 100 * FROM MailingList WHERE Inviata = 0"), conn, 1, 3
DaInviare = rs_DaInviare.RecordCount
Response.Write("Selezionato blocco di: "&DaInviare&"
")
Do While NOT rs_DaInviare.EOF
'invio le email
rs_DaInviare.MoveNext
Loop
'fine del ciclo invio email in blocco
Set rs_Inviate = Server.CreateObject("ADODB.Recordset")
rs_Inviate.Open("UPDATE TOP (100) MailingList SET Inviata = 1 WHERE Inviata = 0"),conn, 1, 3
rs_List.MoveNext
Loop
Response.Write("!-FINE-!")
Praticamente mi va in loop sulla riga:
Response.Write("Selezionato blocco di: "&Da Inviare&"
")
dove non mi seleziona più nulla
Grazie a tutti