57 messaggi dal 29 settembre 2001
Ciao a tutti, non riesco a cancellare un record. L'errore mi viene dato quando creo il recordset.
ERRORE: Parametri insufficienti. Previsto 1.

Questo è il mio script:

<%

Response.Expires = 0

Dim strConn, Conn, rs
Dim RecordToDelete, Deleted

Set Conn = Server.CreateObject("ADODB.Connection")
strConn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("/.../...")
Conn.Open strConn

RecordToDelete = Request.QueryString("ID")

SQL = "SELECT * FROM tblUtenti "
SQL = SQL & "WHERE RecordToDelete='" & ID &"'"

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1, 3 'L'ERRORE E' QUI

If Request.Form("btnDelete") = "Elimina" Then

SQL = "DELETE * FROM tblUtenti "
SQL = SQL & "WHERE RecordToDelete='" & ID &"'"

End If

%>

<form action="delete.asp" method="post">

<%

Response.Write "<p>Sei sicuro di voler eliminare <b>" & rs("Azienda") & "</b>?</p><br>"

If Deleted = "True" Then
Response.Write "<b>" & rs("Azienda") & "</b> è stato eliminato"

End If

%>

<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Nome:</td>
<td><input type="text" name="txtNome" size="40" value="<%= rs("Nome") %>"></td>
</tr>
<tr>
<td>Cognome:</td>
<td><input type="text" name="txtCognome" size="40" value="<%= rs("Cognome") %>"></td>
</tr>
<tr>
<td>Azienda:</td>
<td><input type="text" name="txtAzienda" size="40" value="<%= rs("Azienda") %>"></td>
</tr>
</table>
<p><input type="submit" name="btnDelete" value="Elimina"></p>
<p><a href="permessi.asp">torna indietro</a></p>
</form>

<%

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing

%>

Ammesso che il problema non sia proprio nella struttura dello script, vi pare che sia corretto come lo script è costruito? Intendo dire..., avevo il problema (HO! il problema visto che lo script ancora non funziona, hu hu) di recuperare il valore ID con querystring, mostrare il record contenente quel valore e poi eventualmente eliminarlo..., c'è un modo migliore per fare tutto questo?

GRAZIEE



57 messaggi dal 29 settembre 2001
ho invertito la query, "WHERE ID ="&RecordToDelete&""; tolto gli apicini; convertito la variabile in un intero, RecordToDelete = CInt(Request.QueryString("ID")). Adesso riesco perlomeno a visualizzare il record.

<%

Response.Expires = 0

Dim strConn, Conn
Dim RecordToDelete, Deleted

Set Conn = Server.CreateObject("ADODB.Connection")
strConn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.Mappath("/.../...mdb")
Conn.Open strConn

If Request.QueryString("ID") <> "" Then
RecordToDelete = CInt(Request.QueryString("ID"))

SQL = "SELECT * FROM tblUtenti "
SQL = SQL & "WHERE ID ="&RecordToDelete&""

Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open SQL, Conn, 1, 3

If Request.Form("btnDelete") = "Elimina" Then

SQL = "DELETE * FROM tblUtenti "
SQL = SQL & "WHERE ID="&RecordToDelete&""
Deleted = "True"

End If
End If

%>

ma ancora non riesco a cancellarlo..

57 messaggi dal 29 settembre 2001
Ho aggirato il problema mettendo la seconda query (il delete) in un'altra pagina.

Perchè aggirare il problema e scrivere in 2 pagg.? Usa il tuo codice che va bene, hai solo sbagliato la posizione di
rs.Open SQL, Conn, 1, 3
Mettila dopo delete =true.
ciao da biank




Alberto Biancardo

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.