ASP Classic

Query SELECT parametrica con ADO Command

Ricerca un record evitando la concatenazione diretta.

Quando si usa

Quando una query usa valori ricevuti dall'URL o da un form.

Perché si usa

I parametri separano i dati dal comando SQL e rappresentano una protezione importante contro SQL injection ed errori di sintassi.

Vantaggi principali

  • Tipo del parametro definito
  • SQL più leggibile
  • Nessuna concatenazione del valore ricevuto

Anteprima del risultato

La query parametrica consente di cercare dati nel database senza concatenare direttamente valori inseriti dall'utente.

Parametro IDADO CommandRecord trovato

Il valore viene passato come parametro e non come testo SQL libero.

Codice completo

Puoi copiare il frammento e inserirlo in una pagina di prova. Prima della pubblicazione sostituisci i dati dimostrativi con quelli reali.

<%
Const adCmdText = 1
Const adInteger = 3
Dim cmd, rs, id
id = CLng(Request.QueryString("id"))
Set cmd = Server.CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandType = adCmdText
cmd.CommandText = "SELECT ID, TITOLO FROM ARTICOLI WHERE ID = ?"
cmd.Parameters.Append cmd.CreateParameter("pID", adInteger, 1, , id)
Set rs = cmd.Execute
If Not rs.EOF Then Response.Write Server.HTMLEncode(rs("TITOLO"))
rs.Close:Set rs=Nothing:Set cmd=Nothing
%>

Da personalizzare: Aggiorna tabella, campi, tipo ADO e connessione. Per Access l'ordine dei parametri deve corrispondere ai punti interrogativi.

Errore da evitare: Non cambiare l'ordine dei parametri e usa il tipo ADO coerente con il campo del database.