alcatraz75
10-02-2009, 15:59
Ciao a tutti gente,
E' un mese 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 <%
' *** 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
<!--#include virtual="/Connections/conn.asp" -->
Dopo di che ho creato il collegamento con un recordset alla tabella utentireg
<%
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*/
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 dim */
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
<%
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 Microsoft Office Access Database Engine error '80040e14'
Errore di sintassi nell'istruzione UPDATE.
/admin/add.asp, riga 58
E' un mese 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 <%
' *** 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
<!--#include virtual="/Connections/conn.asp" -->
Dopo di che ho creato il collegamento con un recordset alla tabella utentireg
<%
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*/
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 dim */
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
<%
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 Microsoft Office Access Database Engine error '80040e14'
Errore di sintassi nell'istruzione UPDATE.
/admin/add.asp, riga 58