Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Aggiornamento dati nel database [Parte 4]

Scrivere ed aggiornare le informazioni
Scrivere ed aggiornare le informazioni
Link copiato negli appunti

Come accennato, ora mostrerò il codice per aggiornare i dati presenti nel database dopo averli modificati nel form appena illustrato.

<%
dim intCodice
intCodice = request("Id")
if intCodice<>"" then
dim strCode
strCode="innovatel"
Set Conn=Server.CreateObject("ADODB.Connection")
strConn="driver={Microsoft Access Driver (*.mdb)}; "
strConn=strConn & " DBQ=" & Server.MapPath("libreria.mdb")
strConn=strConn & ";pwd=" & strCode
Conn.Open strConn
sql = "SELECT * FROM libri WHERE Id="&intCodice
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
rs(1)=request.form("titolo")
rs(2)=request.form("autore")
rs(3)=request.form("genere")
rs.update
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing
%>
<HTML>
<HEAD>
<TITLE> Aggiornamento Dati </TITLE>
</HEAD>
<BODY>
<TABLE valign="middle">
<TR>
<TD><center>
<TABLE>
<TR>
<TD><CENTER>Aggiornamento eseguito
correttamente</CENTER></TD>
</TR>
<TR>
<TD><CENTER><a href="modifica1.asp">Verifica Le
Modifiche</a></CENTER></TD>
</TR>
</TABLE>
</center></TD>
</TR>
</TABLE>
</BODY>
</HTML>
<%
else
response.redirect "modifica1.asp"
end if
%>

Di questo listato, analizzeremo solamente la parte asp. Il resto è solamente una tabella html dove viene avvisato l'utente dell'aggiornamento.

Come osserverete, nel codice Asp, la stringa di interrogazione sql è identica a quella del listato precedente per lo stesso motivo. Il campo Id svolge la funzione di chiave primaria e quindi non vi sono ripetizioni dello stesso all'interno. Otterremo di conseguenza un solo record dopo l'esecuzione della stessa.

La parte su cui intendo soffermarmi è la riga effettiva dove viene effettuato l'aggiornamento fisico del database.

rs(1)=request.form("titolo")
rs(2)=request.form("autore")
rs(3)=request.form("genere")
rs.update

Come potrete osservare, la parte appena proposta di codice è molto simile a quella per l'inserimento di nuovi dati nel database. Ora vi riporto anche questa seconda sintassi:

rs.addnew
rs(1)=request.form("titolo")
rs(2)=request.form("autore")
rs(3)=request.form("genere")
rs.update

La differenza in cosa consiste? La risposta è molto banale da un punto di vista visivo (dopo la lettura del codice) ma è un po' più complesso da un punto di vista di programmazione. Come si può osservare nella fase di aggiornamento del database, a differenza di quella di inserimento, non si trova l'istruzione rs.addnew. Questo fatto è legato solamente ad un meccanismo di memorizzazione dati che ora vi illustro. Quando andiamo ad immettere nuovi dati nel database dobbiamo preparare prima un buffer per la loro memorizzazione (rs.addnew è l'istruzione apposita che useremo), poi memorizzeremo in dati nei vari rs(posizione) e successivamente andremo a memorizzare questo buffer nel database. Nella situazione di aggiornamento, la preparazione del buffer non serve in quanto i dati esistono già all'interno del database. Bisogna effettuare l'update per rendere valido l'aggiornamento degli stessi.


Ti consigliamo anche