Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Modulo di aggiornamento record ASP-VBScript

    Ciao a tutti gente,
    E' due mesi che sto cercando di costruire un sito
    Purtroppo avevo solo una piccola base di studio sul HTML ,così ,per esigenze del sito in progettazione , ho dovuto cimentarmi nello studio di asp VBScript che mi permette ,oltre la dinamicità, l'implementazione di un database Access.
    Ma adesso sono bloccato nella creazione dell'ultima pagina (Edit.asp) che dovrebbe consentirmi di modificare i record della tabella degli utenti registrati (utentireg):Ma veniamo al sodo ,vi riporto il codice che ho fatto ,commentandolo nei vari passaggi.

    La prima cosa che c'è e il blocco alla visualizzazione della pagina se non si è loggati
    codice:
    <%
    ' *** Restrict Access To Page: Grant or deny access to this page
    MM_authorizedUsers=""
    MM_authFailedURL="errore.asp"
    MM_grantAccess=false
    If Session("MM_Username") <> "" Then
    If (true Or CStr(Session("MM_UserAuthorization"))="") Or _
    (InStr(1,MM_authorizedUsers,Session("MM_UserAuthorization"))>=1) Then
    MM_grantAccess = true
    End If
    End If
    If Not MM_grantAccess Then
    MM_qsChar = "?"
    If (InStr(1,MM_authFailedURL,"?") >= 1) Then MM_qsChar = "&"
    MM_referrer = Request.ServerVariables("URL")
    if (Len(Request.QueryString()) > 0) Then MM_referrer = MM_referrer & "?" & Request.QueryString()
    MM_authFailedURL = MM_authFailedURL & MM_qsChar & "accessdenied=" & Server.URLEncode(MM_referrer)
    Response.Redirect(MM_authFailedURL)
    End If
    %>
    Ma qua non mi da problemi funziona tutto

    qua specifico dovè il file conn.asp dove c'è la stringa di connessione al database
    Dopo di che ho creato il collegamento con un recordset alla tabella utentireg
    codice:
    <%
    Dim Recordset1__MMColParam
    Recordset1__MMColParam = "1"
    If (Session("MM_ID") <> "") Then
    Recordset1__MMColParam = Session("MM_ID") /*gli dico che ID deve essere uguale al ID di sessione memorzzato al login */
    End If
    %>
    <%
    Dim Recordset1
    Dim Recordset1_cmd
    Dim Recordset1_numRows
    
    Set Recordset1_cmd = Server.CreateObject ("ADODB.Command")
    Recordset1_cmd.ActiveConnection = MM_conn_STRING
    Recordset1_cmd.CommandText = "SELECT * FROM utentireg WHERE ID = ?" /*vado a richiamare la fnzione  */
    Recordset1_cmd.Prepared = true
    Recordset1_cmd.Parameters.Append Recordset1_cmd.CreateParameter("param1", 5, 1, -1, Recordset1__MMColParam) ' adDouble
    
    Set Recordset1 = Recordset1_cmd.Execute
    Recordset1_numRows = 0
    %>
    e anche questo funziona

    adesso arriva il form che mi crea problemi
    codice:
    <%
    Dim MM_editAction
    MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
    If (Request.QueryString <> "") Then
    MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
    End If
    
    ' boolean to abort record edit
    Dim MM_abortEdit
    MM_abortEdit = false
    %>
    <%
    ' IIf implementation
    Function MM_IIf(condition, ifTrue, ifFalse)
    If condition = "" Then
    MM_IIf = ifFalse
    Else
    MM_IIf = ifTrue
    End If
    End Function
    %>
    <%
    If (CStr(Request("MM_update")) = "form1") Then
    If (Not MM_abortEdit) Then
    ' execute the update
    Dim MM_editCmd
    
    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_conn_STRING
    MM_editCmd.CommandText = "UPDATE utentireg SET ID = ?, password = ?, utenti = ? WHERE ID = ?"
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 5, 1, -1, MM_IIF(Request.Form("ID"), Request.Form("ID"), null)) ' adDouble
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 202, 1, 255, Request.Form("password")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 255, Request.Form("utenti")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param4", 5, 1, -1, MM_IIF(Request.Form("MM_recordId"), Request.Form("MM_recordId"), null)) ' adDouble
    MM_editCmd.Execute /*RIGA 58*/
    MM_editCmd.ActiveConnection.Close
    
    ' append the query string to the redirect URL
    Dim MM_editRedirectUrl
    MM_editRedirectUrl = "index.asp"
    If (Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
    MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
    MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
    End If
    Response.Redirect(MM_editRedirectUrl)
    End If
    End If
    %>
    Quando vado ad eseguire la pagina nel momento in cui invio i dati per la modifica, il browser mi riporta questo errore nella riga 58 che sopr ho segnato
    codice:
    Microsoft Office Access Database Engine error '80040e14'
    Errore di sintassi nell'istruzione UPDATE.
    /admin/add.asp, riga 58
    a questo unto non trovo l'errore

  2. #2

    Re: Modulo di aggiornamento record ASP-VBScript

    Originariamente inviato da alcatraz75
    a questo unto non trovo l'errore
    per evitare di ungerti inutilmente, stampa a video la stringa di UPDATE e postala, che la si controlla assieme

  3. #3
    mmmmm, tutti quei MM....

    usi sdreamsweabers?

  4. #4
    GRAZIE PER L'IMMEDIATEZZA
    cosa intendi per ungermi ????.....forse l'ho capito....va bè lasciamo stare allora

    comunque questa è la stringa incriminata
    codice:
    MM_editCmd.CommandText = "UPDATE utentireg SET ID = ?, password = ?, utenti = ? WHERE ID = ?"

  5. #5
    Originariamente inviato da optime
    mmmmm, tutti quei MM....

    usi sdreamsweabers?
    SI dreamweaver

  6. #6
    Originariamente inviato da alcatraz75
    SI dreamweaver
    io già mi arrendo. non conosco

  7. #7
    Originariamente inviato da optime
    io già mi arrendo. non conosco
    Ma no non ti arrendere adesso te lo compilo semplice a mano così capisci

  8. #8
    We ciao ragazzi !
    Eccomi di nuovo qua , mi scuso con optime per il ritardo alla replica del post precedente ,ma ho dovuto ripassare tutto quello che ho fatto in questi mesi per tradurre quello che scrive dreamweaver (ma che linguaggio è?) ,ma nonostante il mio impegno a tradurre ho tralasciato alcune "righe" che non capivo ,ricompilandole .
    Ma anche nel ricompilare non ho capito bene alcune cose del linguaggio ,infatti a questo punto devo fare un passo indietro ,cercando di capire .
    Ma veniamo a una cosa che non ho capito ,prendendo esempio dalla guida on line che troviamo in questo sito ,per la precisione in questo link dove spiega come creare la pagina che inserirà il nuovo record ,non capisco la dichiarazione della stringa Code
    codice:
    dim strCode 'dichiaro strCode
    strCode="innovatel" 'do un valore a strCode
    'che poi trovo anche nella connessione al database
    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
    adesso mi domando e dico questo valore da dove è stato preso?
    è possibile sostituirlo con un richiamo di una variabile di sessione creata precedentemente ?
    codice:
    <%=Session("ID")%>
    ops cancelliamo l'ultima domanda perche non riguarda l'inserimento di un nuovo record ma l'aggiornamento .....quindi rimango sempre con la domanda da dove ha preso quel valore"innovatel"?dal form?

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    strCode è la password del db access.
    Sarà presente in un file incluso se non c'è direttamente nella pagina.
    Ma non c'entra nulla con la tua domanda relativa all'UPDATE.

    Roby

  10. #10
    Originariamente inviato da Roby_72
    strCode è la password del db access.
    Sarà presente in un file incluso se non c'è direttamente nella pagina.
    Ma non c'entra nulla con la tua domanda relativa all'UPDATE.

    Roby
    ok grazie della risposta ,si effettivamente non c'entra con l'update ma visto che sono alle prime armi ho fatto un passo indietro ,all'inserimento di nuovi record .
    un'altra cosa che non ho capito cosa sono questi due numeri nella terza riga
    codice:
    1 sql = "SELECT * FROM libri"
    2 Set rs = Server.CreateObject("ADODB.Recordset")
    3 rs.Open sql, conn ,3,3
    3,3 ????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.