Ciao ...
ho un problema con una query di Update.
Non riesco a passare tutti gli ID.
Ho una tabella che si chiama T_Posta in cui sono presenti i campi :
ID
Allegato
e un altra tabella T_Documenti in cui sono presenti :
ID
Destinatario
Facendo la query Qua sotto riesco a prelevare tutti gli allegati Presenti nella tabella T_Posta
il file per intero è :
codice:
<%
dim conn, rs1, rs2, sql, sqlCount, cont, i, nomefile, aiuto
dim strconn, sqlNome, rsNome
' --- costruzione stringa di connessione al db ---
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
"DBQ="& Server.MapPath("Posta.mdb")
Set rs1 = Server.CreateObject("Adodb.Recordset")
Set rs2 = Server.CreateObject("Adodb.Recordset")
'effetto la connessione alle tabelle
rs1.Open "T_Posta", conn, 2, 2
rs2.Open "T_Documenti", conn, 2, 2
destinatario = request.querystring("destinatario")
Allegato = request.querystring("Allegato")
ID = Session("ID")
sql = "SELECT * FROM T_Posta where ID = " & ID
sql2 = "SELECT * FROM T_Documenti where ID = " & ID
sql3="SELECT DISTINCT T_Posta.Destinatario, T_Documenti.Destinatario, T_Posta.Allegato as PROVA FROM T_Posta INNER JOIN T_Documenti ON T_Posta.Destinatario=T_Documenti.Destinatario WHERE T_Posta.Destinatario ='" & Destinatario & "' AND T_Posta.Allegato IS NOT NULL"
set rs1 = conn.execute(sql)
set rs2 = conn.execute(sql2)
set rs3 = conn.execute(sql3)
response.Write("<table border='1' align='center'>")
If rs3.EOF then
response.Write("<CENTER>")
Response.Write("Non ci sono allegati")
response.Write("</CENTER>")
Else
response.Write("<form name='allegati' method='post' action='cancellazioneAllegato.asp?ID=" & ID & "'")
response.Write("<tr>")
response.write("<th>")
response.Write("NOME ALLEGATO")
response.Write("</th>")
response.Write("<th>")
response.write("CANCELLA")
response.Write("</th>")
response.Write("</tr>")
Do While Not rs3.EOF
response.Write("<tr>")
response.write("<td>")
response.write(rs3("PROVA"))
response.write("</td>")
response.write("<td align='center'>")
response.Write("<input type='checkbox' name='canc' value=" & rs3("PROVA") & ">" & "")
response.write("</td>")
response.Write("</tr>")
rs3.movenext
Loop
response.Write("<tr>")
response.Write("<td align='center'>")
response.write("<input type='reset' value='Deseleziona Tutto'")
response.Write("</td>")
response.Write("<td align='center'>")
response.write("<input type='submit' value='Cancella'")
response.Write("</td>")
response.Write("</tr>")
end if
response.Write("</table>")
rs3.Close
conn.Close
response.Write("
")
response.Write("<table align='center'>" & "<tr>" & "<td align='center'>")
%>
<tr><td align="center">Indietro</td></tr>
<%
response.Write("</td>" & "</tr>" & "</table>")
response.Write("</form>")
%>
il problema e che non riesco a visualizzare la cancellazione di piu file perche non mi passa tutti gli id degli allegati selezionati.Se invece provo a selezionarne solo uno lo cancella e lo aggiorna sul DB.
il file dove è presente la query di Update e :
codice:
<%
ID = session("ID")
response.write(ID)
dim conn, rs, sql, sqldelete
dim strconn
dim nomifile, canc
dim i, s, File_Object, Cartella_Object, File_System_Object
' --- costruzione stringa di connessione al db ---
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};" &_
"DBQ="& Server.MapPath("Posta.mdb")
ID = session("ID")
response.write(ID)
canc = request.Form("canc")
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
i = 0
s = Split(canc, ", ")
response.Write("<CENTER>")
response.Write("<span class='titoletto'>")
response.Write("I file cancellati sono: ")
response.Write("
")
response.Write("</SPAN>")
response.Write("<table align='center' border='1'>")
For i = 0 To UBound(s)
objFSO.DeleteFile ("C:\inetpub\wwwRoot\RecuperoM\Posta\allegati\" & s(i))
sqlS = "SELECT Allegato FROM T_Posta where ID = " & ID & " AND Allegato = '" & s(i) & "'"
response.write (sqlS)
response.write ("
")
set rsS = conn.execute(sqlS)
sql = "UPDATE T_Posta SET Allegato = NULL WHERE ID = " & ID & " AND Allegato = '" & s(i) & "'"
response.write ("
")
response.write (sql)
' esecuzione della sql sul db
Set Rs = Conn.Execute(sql)
response.Write("<TR>" & "<TD align='center'>")
Response.write(s(i))
response.Write("</TD>" & "</TR>")
Next
response.Write("</TABLE>")
response.Write("
")
response.Write("<table align='center'>" & "<tr>" & "<td align='center'>")
%>
Indietro
<%
response.Write("</td>" & "</tr>" & "</table>")
response.Write("</form>")
%>