Eccoci di nuovo. Questa volta devo aggiornare (modificare) il campo di un record. Mi spiego dall'inizio:
ho un modulo di registrazione che l'utente compila e parte una e-mail all'indirizzo da lui indicato. L'email contiene un link che l'utente clicca per confermare la registrazione. Il link contenuto nell'e-mail dovrebbe essere questo:
e, nella pagina richiamata, viene ricercato il record relativo all'utente (non possono esserci duplicati) e, individuato il record, viene cambiato il campo "abilitato" da "no" a "si" (il campo è di testo).codice:http://www.sansevero.info/public/webonline/abilita.asp?Utente=prova&abilitato=si
Il codice interessato dalla ricerca e modifica del campo è il seguente:
Il record dell'utente lo trova, ma poi mi da un errore di sintassi nell'aggiornamento del record. Poi ho pensato che l'errore mi fosse causato dal fatto che inizialmente non avevo messo nella stringa di aggiornamento tutti i campi del record, così mi sono creato le variabili e, dopo aver trovato il record, ho assegnato loro i valori dei campi e poi le ho messe in ordine nella stringa di aggiornamento... nemmeno questo ha funzionato...codice:<% Dim Utente Dim abilitato Dim Identif Dim Password Dim Nome Dim Email Dim Datas Utente = Request.QueryString("Utente") abilitato = Request.QueryString("abilitato") Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = d:\inetpub\webs\sanseveroinfo\public\webonline\data\db.mdb") Set objRs = Server.CreateObject("ADODB.Recordset") strSQL="SELECT * FROM Users" set objRs = objConn.Execute(strSQL) ' cerchiamo l'utente Do While NOT objRs.EOF if objRs("UserName") = Utente then ' da qui in poi si dovrebbe modificare il campo "abilitato" Identif = objRs("ID") Password = objRs("Password") Nome = objRs("Name") Email = objRs("Email") Datas = objRs("InsertDate") strsql = "Update Users SET (UserName = '" & Utente & "', PassWord = '" & Password & "',Name = '" & Nome & "',Email = '" & email & "', InsertDate = '" & Datas & "',abilitato = '" & abilitato & "') Where ID = " & Identif Set objRs = Server.CreateObject("ADODB.Recordset") set objRs = objConn.Execute(strsql) objConn.Update objRs.Update end if objRs.Movenext Loop 'chiusura database objRs.Close Set objRs = Nothing objConn.Close Set objConn = Nothing %>
Con un "response.write", richiamando nel browser il link supra dato, è possibile vedere la stringa query che il browser dice di avere errori di sintassi.
Poi ci ho messo objConn.Update e objRs.Update senza sapere che cosa in realtà serve...
Spero che qualcuno mi riesca a chiarire l'errore, cosa ho omesso, ecc.
Grazie, ciao.
Luca

Rispondi quotando