Newsgroup: it.comp.www.asp
Titolo: cdonts e sql

Ciao a tutti
Ho un database dove vengono inseriti dei dati prelevati da un form che
l'utente compila,  sucessivamente io apro una pagina dove visualizzo i
record inseriti da più  persone alcuni andrebbero eliminati altri
verranno inseriti in un secondo DB che poi li pubblica insieme ad altri
già esistenti.
Come posso fare per spedire un email  con cdonts solo agli utenti che ho
deciso di non cancellare ma di pubblicare?
questo è il codice
<%
user = Request("user")
password = Request("password")
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "DSN=XXXXX;uid=XXXX;pwd=XXXXX"
if user="yyyyy" and password="hihihih" then
rem se AZIONE=CANCELLA ...
  if request.querystring("azione") = "Cancella" then
 SQLCANC ="delete * from nomedb1 where ID =
"&request.querystring("ID")&""
    Set Rs=OBJdbConnection.Execute(SQLCANC)
    OBJdbConnection.close
rem se invece AZIONE=AGGIORNA ...
  elseif request.querystring("azione") = "Aggiorna" then
 SQL ="select * from nomedb1 where ID = "&request.querystring("ID")&""
    Set Rs=OBJdbConnection.Execute(SQL)
    SQLINS="INSERT INTO nomedb2 (data, nome, cognome, citta, telefono,
mail, rubrica, annuncio) "
     SQLINS = SQLINS & "VALUES ('" & Rs("data") & "','" & Rs("nome") &
"','" & Rs("cognome") & "','" &Rs("citta") & "','" & Rs("telefono") &
"','" & Rs("mail") & "','" & Rs("rubrica") & "','" & Rs("annuncio") &
"')"
     OBJdbConnection.Execute(SQLINS)
     SQLCANC ="delete * from nomedb1 where ID
="&request.querystring("ID")&""
     OBJdbConnection.Execute(SQLCANC)
     OBJdbConnection.close
   end if
rem Qualsiasi valore abbia AZIONE, anche nullo, estraggo comunque tutti
rem i record dalla tabella "nomedb1" per visualizzarli
Set OBJdbConnection = Server.CreateObject("ADODB.Connection")
OBJdbConnection.Open "DSN=XXXXX;uid=XXXXX;pwd=XXXXX"
sql="select * from nomedb1"
Set RS=OBJdbConnection.Execute(sql)
%> Annunci Inseriti
<table border=1 width=100%>
  <tr>
    <td width="9%">Numero</td>
    <td width="8%">Data</td>
    <td width="29%">Testo dell'annuncio</td>
    <td width="9%">Rubrica</td>
    <td width="10%">Nome</td>
    <td width="9%">citta</td>
    <td width="7%">Telefono</td>
    <td width="19%">E-Mail</td>
  </tr>
  <%
i=0
Do while NOT RS.EOF
i=i+1%>
  <TR>
    <td width="9%"> <!-- Cliccando qui sposto il record nella Tabella
"nomedb2" cancellandolo da "nomedb1" portando nel link anche lo user e
la password che mi permettono di ricaricare la pagina -->
      <a
href="gestione.asp?Azione=Aggiorna&ID=<%=RS("ID")%>&user=<%=user%>&password=<%=password%>">Aggiungi<br>
      record</a><br>
 <!-- Cliccando qui elimino il record dalla Tabella "nomedb1" portando
nel link anche lo user e la password che mi permettono di ricaricare la
pagina -->
      <a
href="gestione.asp?Azione=Cancella&ID=<%=RS("ID")%>&user=<%=user%>&password=<%=password%>">Cancella<br>
      record</a></td>
    <td width="8%"><%=rs("data")%></td>
    <td width="29%"><%=rs("annuncio")%></td>
    <td width="9%"><%=rs("rubrica")%></td>
    <td width="10%"><%=rs("nome")%>&nbsp;<%=rs("cognome")%></td>
    <td width="9%"><%=rs("citta")%></td>
    <td width="7%"><%=rs("telefono")%></td>
    <td width="19%"><%=rs("mail")%></td>
  </TR>
  <%
RS.MoveNext
Loop
RS.Close
OBJdbConnection.Close%>
</table>
<%
else
%>Spiacente non puoi entrare <% end if %>
Grazie se qualcuno mi saprà aiutare
Roberto

La cosa piu' semplice e':
Be' e' quasi complicato:
ti descrivo a grandi linee le operazioni che deve fare il programma che
dovrai scrivere:
1) SELECT * FROM nuovoDatabase
(ma puoi benissimo selezionare il solo campo contenente l'email)
2) SELECT count(*) FROM nuovoDatabase
(per sapere quanti sono i record: non sempre recordset.recordcount funziona,
puoi anche omettere questa operazione, ma sarebbe meglio di no).
3) Creare un ciclo d'iterazione che si ripete tante volte quanti sono i
record messi nel recordset creato con la prima select, per saperlo devi
prendere il valore riportato dalla seconda query
4) Inserisci una clausola di uscita tipo if not mioRecordset.EoF Then
5) nel ciclo crei un oggetto CDONTS.Newmail, (mioOggettoPosta) e richiami le
proprieta' che ti servono (vedi l'esempio piu' sotto)
6) Riempi le variabili da spedire sia con i campi della riga corrente da
spedire sia con quello che ti pare a te.
7) Else inserisci nella variabile del ciclo un valore che ne comporti la
chiusura, ad es: n辱ei record + 10000
8) Chiudi l'IF
9) Passa al record successivo
10) Next
esempio:
objMail.From = "
nett...@bigfoot.com
"
objMail.To = email 'variabile
objMail.Subject = "Registrazione" 'testo
objMail.BodyFormat = 0
objMail.MailFormat = 0
objMail.Body = HTML 'altra variabile, contiene il corpo del messaggio
objMail.Send
Ciaooo
Nettuno