26 messaggi dal 14 ottobre 2002
Certo, ecco il codice della pagina di controllo, dove recupera i dati dal form e attribuisce il codice disponibile all'utente appena registrato. La procedura di UPDATE quindi quella per attribuire al codice abbena attribuito un valore "false" per i futuri utenti che si registrano, non da risultato.

<%
dim objConn
dim objRs
dim strCognome
dim strNome
dim strCodice
dim Codice_Skills
set objConn = Server.CreateObject("ADODB.Connection")
objConn.connectionstring="DRIVER={Microsoft Access Driver (*.mdb)};" & "DBQ=C:\inetpub\wwwroot\ecdl\ecdl.mdb"
objConn.Open
set objRs = Server.CreateObject("ADODB.Recordset")

objRs.Open "SELECT Codice FROM Codici_Nuovi WHERE utilizzato=False", objConn, 0, 1
IF NOT objRs.EOF THEN
Codice_Skills=objRs("Codice")
ELSE
Response.Write "Si è verificato un errore"
RESPONSE.END
END IF

on error resume next
dim sqlOk
sql = true
objConn.BeginTrens
err.clear

objRs.Close
objRs.Open "Kw_Registrati", objConn, adLockOptimistic, adCmdTable
objRs.AddNew
objRs("Cognome")=trim(request.form("Cognome"))
objRs("Nome")=trim(request.form("Nome"))
objRs("Indirizzo")=trim(request.form("Indirizzo"))
objRs("Cap")=trim(request.form("Cap"))
objRs("Città")=trim(request.form("Citta"))
objRs("Provincia")=trim(request.form("Provincia"))
objRs("Nazione")=trim(request.form("Nazione"))
objRs("Telefono")=trim(request.form("Telefono"))
objRs("E-mail")=trim(request.form("E-mail"))
objRs("Scolarità")=trim(request.form("Scolarita"))
objRs("Data_Nascita")=trim(request.form("Data_Nascita"))
objRs("Luogo_Nascita")=trim(request.form("Luogo_Nascita"))
objRs("occupazione")=trim(request.form("Occupazione"))
objRs("Codice_Skills")=Codice_Skills
objRs.Update
objRs.Close
set objRs=Nothing

if err.number <> 0 then
sqlOk = false
end if

if sqlOk then
sql ="UPDATE Codici_Nuovi SET Utilizzato=true WHERE Codice=" & Codice_Skills
err.clear
objConn.Execute sql
if err.number <> 0 then
sql Ok = false
end if
end if

if sqlOk then
objConn.CommitTrans
else
objConn.RollbackTrans
end if

objConn.Close
set objConn=Nothing
strCognome=request.form("Cognome")
strNome=request.form("Nome")
strCodice=Codice_Skills
%>

grazie
879 messaggi dal 09 luglio 2002
www.i-studio.it
Allora,
la variabile che contiene il codice che stai associando all'utente che hai appena memorizzato e' Codice_Skills; quindi se alla fine scrivi:

response.write ("Codice_Skills: " & Codice_Skills)

dovresti vedere il codice che hai appena associato all'utente.

Poi, fai attenzione alla variabile sqlOk che devi usare per controllare che vada tutto bene sia nella parte di inserimento che nella update.
Mi pare che quando scrivi:

objConn.Execute sql
if err.number <> 0 then
sql Ok = false
end if

ci sia uno spazio tra sql e OK... e probabilmente non ricevi un errore perche' hai inserito l'on error resume next che blocca tutti gli errori (anzi, per il momento, commenta la riga on error resume next...).

In pratica, quello che deve succedere e' che sqlOK deve valere true se tutto e' andato bene.
Inoltre, per il momento commenta le righe

objConn.BeginTrans
objConn.CommitTrans
objConn.RollbackTrans

cosi' non hai problemi di transazione.

Poi, prima del blocco:

if sqlOk then
objConn.CommitTrans
else
objConn.RollbackTrans
end if

scrivi:

response.write("<p>sqlOK:" & sqlOK)
response.end

Ciao
Alex

Internetworking Studio Srl
www.i-studio.it

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.