Newsgroup: it.comp.www.html
Titolo: Inserire nuovi record in un database

Salve, sto cercando di creare un sondaggio articolato su
più domande, ognuna delle quali su una pagina diversa. Per
salvare i dati ho deciso di utilizzare un database Access.
Ho creato tre pagine di prova. La prima contine
semplicemente un form con due caselle di testo; la seconda
pagina salva i dati del form precedente nel database e
successivamente visualizza un secondo form con dei radio
button. I dati di quest'ultimo modulo sono inviati alla
terza pagina che ha il solo compito di memorizzarli.
Nella seconda pagina asp  creo un recordset,
successivamente tramite il metodo AddNew faccio un nuovo
record e infine salvo le variabili del form con Update.
Nell'ultima pagina non creo un nuovo record, ma mi limito a
salvare le variabili del form precedente. Prima però
inserisco un MoveLast, altrimenti il valore
sovrascriverebbe quello del campo che si trova in  prima
posizione. Se non ci sono connessioni contemporanee fila
tutto liscio, altrimenti sorgono problemi. Infatti,
ipotizziamo che due utenti stiano compilando allo stesso
tempo il questionario.  Dopo che X ha risposto alla prima
domanda viene creto un nuovo record; immediatamente dopo
anche Y risponde alla prima domanda e ne viene creato un
altro nuovo. Quando X risponde alla seconda domanda, per
effetto del MoveLast, il valore è salvato nell'ultimo
record, che è quello creato da Y e non da X. In fine Y
risponde alla seconda domanda e sovrascrive il valore
inserito precedentemente da X nel corrispondente campo.
C'è un modo per ovviare a questo problema? Infine, vorrei
chiedere se è necessario aprire e chiudere il recordset in
ogni file asp che forma il questionario: c'è un modo per
farlo una sola volta. E' possibile salvare i valori dei
campi di un utente in un'unica volta utilizzando un solo
Update? Negli esempi che ho trovato su
www.programmazione.it
 è usato l'oggetto Connection e
successivamente Recordset: che utilità ha usare Connction
dato che con Recordset riesco comunque a connettermi al
database?
Grazie anticipato per l'interessamento
P.S.  Sarebbe gradita anche risposta in email
fugg...@tiscalinet.it
pezzo della seconda pagina
<%
dim rs
set rs=Server.CreateObject("ADODB.Recordset")
dim dove
dove="driver={Microsoft Access Driver (*.mdb)};dbq="&
Server.Mappath("db1.mdb")
rs.Source           = "prova"
rs.ActiveConnection = dove
rs.CursorType       = 2
rs.LockType         = 3
rs.Open
rs.AddNew
rs("nome")=Request.Form("nome")
rs("cognome")= Request.Form("cognome")
rs.UpDate
rs.Close
%>
<form method="POST" action="nome3.asp">
  <p>1&nbsp;&nbsp;&nbsp; <input type="radio" value=1
checked name="punti"></p>
  <p>2&nbsp;&nbsp;&nbsp; <input type="radio" name="punti"
value=2></p>
  <p>3&nbsp;&nbsp;&nbsp; <input type="radio" name="punti"
value=3></p>
  <p>4&nbsp;&nbsp;&nbsp; <input type="radio" name="punti"
value=4></p>
  <p><input type="submit" value="Invia" name="B1"><input
type="reset" value="Reimposta" name="B2"></p>
</form>
pezzo della terza pagina
<%
dim rs
set rs=Server.CreateObject("ADODB.Recordset")
dim dove
dove="driver={Microsoft Access Driver (*.mdb)};dbq="&
Server.Mappath("db1.mdb")
rs.Source           = "prova"
rs.ActiveConnection = dove
rs.CursorType       = 2
rs.LockType         = 3
rs.Open
rs.MoveLast
rs("punti")=Request.Form("punti")
rs.UpDate
rs.Close
* Sent from AltaVista 
http://www.altavista.com
 Where you can also find related Web Pages, Images, Audios, Videos, News, and Shopping.  Smart is Beautiful

Alberto <fuggetta...@mythnet.it.invalid> ha scritto nel messaggio
0296c87e...@usw-ex0108-062.remarq.com...
|
| Salve, sto cercando di creare un sondaggio articolato su
| più domande, ognuna delle quali su una pagina diversa. Per
| salvare i dati ho deciso di utilizzare un database Access.
<cut>
Penso che sia più corretto porre questa domanda in
news:it.comp.www.asp
mandi!
andrea/bergamasco
--
______________________________
Le faq di it.comp.www.html:
http://digilander.iol.it/tamburo