Negli script #327 e #408 abbiamo costruito un semplice datagrid per mostrare (ed ordinare) i dati prelevati da una tabella di un database usando Classic ASP.
A tal proposito, un utente mi ha chiesto se sia possibile nello stesso modo costruire una pagina che crei la form e provveda ad inserire i dati in maniera altrettanto automatica.
Ebbene, la riposta è ovviamente affermativa e con un po' di codice è possibile integrare il tutto senza problemi:
<% Sub CreaInserimento(tabella) SQLConn = ""' stringa di conn set conn = server.createobject("ADODB.Connection") conn.open sqlconn if request("inserimento") = "1" then 'inserisco ' ciclo su tutti i campi inviati tramite metodo POST for each item in Request.Form ' se i primi 4 char contengono SQL_ if Mid(item, 1, 4) = "SQL_" then SQL1 = SQL1 & Mid(item, 5) & ", " SQL2 = SQL2 & "'" & Replace(Request.Form(item), "'", "''") & "', " end if next ' costruzione query ed inserimento SQL = "INSERT INTO " & tabella & "(" & Left(SQL1, Len(SQL1)-2) SQL = SQL & ") VALUES (" & Left(SQL2, Len(SQL2)-2) & ")" conn.Execute SQL, aff ' informazione di debug: volendo si può rimuovere Response.write ("Query Eseguita:" & SQL & "<br>") if aff = 1 then Response.Write("Record inserito con sucesso") else Response.Write("Record non inserito") end if else ' ricavo struttura e form strSQL = "SELECT * FROM " & tabella Set rs = conn.Execute(strSQL) ' ricavo il nome dei campi For i = 0 to RS.Fields.Count - 1 intestazione = intestazione & "<tr><td>" & RS(i).Name intestazione = intestazione & "</td><td><input type=""text"" name=""SQL_" & RS(i).Name & """></td></tr>" Next set rs = Nothing Response.Write ("<form method=post>") Response.Write ("<input type=""hidden"" name=""tabella"" value=""" & tabella & """>") Response.Write ("<input type=""hidden"" name=""inserimento"" value=""1"">") Response.Write ("<table border=1>") Response.Write (intestazione) Response.Write ("<tr><td><input type=""submit"" value=""Inserisci""></td></tr>") Response.Write ("</table>") end if conn.Close set Conn = Nothing End Sub call CreaInserimento(Request("tabella")) %>
Basterà richiamare la pagina passando come parametro il nome della tabella, ad esempio
http://localhost/admin/inserimento.asp?tabella=prodotti
Apparirà una form, creata automaticamente a runtime, con i nomi dei campi ed un input per ciascuno di essi.
Allo stesso modo una volta inviata la form, verrano ricavati i nomi dei campi (che hanno un prefisso particolare, SQL_) e create al volo la query di inserimento.
Ovviamente allo stesso modo può essere inserito un sistema per l'aggiornamento dei record, anche se è necessario un pizzico di lavoro in più.
Per gli altri script menzionati, si veda:
#372 - Un semplice Datagrid con ASP
https://www.aspitalia.com/liste/usag/script.aspx?ID=372
#408 - Un datagrid con ordinamento con ASP
https://www.aspitalia.com/liste/usag/script.aspx?ID=408
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.