Dreamweaver: aggiornamento database.

Di: sergio | 26/09/2020 18:59:05
Ciao a tutti,
premetto che uso IIS.
Ho creato una pagina ASP per l'immissione di dati all'interno di un database in Access con Dreamweaver.
Ho creato la connessione al database tramite stringa personalizzata che ho anche testato e funziona.
All'interno dell'opzione "comportamenti server" ho selezionato inserisci record verificando le impostazioni funzionanti.
Ho anche creato una pagina di verifica dei dati immessi con relativo recordset andando ad aprire la pagina di inserimento dati tramite Internet Explorer (http//:localhost/miosito) mi apre la pagina ASP quando immetto i dati e premo il tasto di invio (all'interno dello stess form di inserimento dati). Il risultato è la seguente pagina di errore:
Impossibile visualizzare la pagina
Si è verificato un problema a livello della pagina che si desidera visualizzare che ne impedisce la visualizzazione.
--------------------------------------------------------------------------------
Please try the following:
Fare clic sul pulsante Aggiorna o riprovare più tardi.
Aprire la localhost home page e cercare i collegamenti alle informazioni desiderate.
HTTP 500.100 - Errore interno del server - errore ASP
Internet Information Services
--------------------------------------------------------------------------------
Informazioni tecniche (per il personale del supporto tecnico)
Tipo di errore:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nell'istruzione INSERT INTO.
/biblioteca/iscriviti.asp, line 115
Tipo di browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; FastWeb)
Pagina:
POST 141 bytes to /biblioteca/iscriviti.asp
POST Data:
nome=paperino&cognome=gastone&e-mail=paperone@libero.it&telefono=31331313113&username=pippo&password=pluto&Submit2=invia+dati&MM_insert=form8
Ora:
giovedì 7 ottobre 2004, 13.33.56
Informazioni aggiuntive:
Supporto Microsoft
sono ache andato a vedere la linea 115 della mia pagina senza riuscire a capire granchè:
(linea 115) MM_editCmd.Execute
il listato della mia pagina è:
<%@LANGUAGE="VBSCRIPT"%>
<!--#include file="Connections/iscrizione.asp" -->
<%
' *** Edit Operations: declare variables
Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd
Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId
Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i
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
MM_abortEdit = false
' query string to execute
MM_editQuery = ""
%>
<%
' *** Insert Record: set variables
If (CStr(Request("MM_insert")) = "form8") Then
MM_editConnection = MM_iscrizione_STRING
MM_editTable = "iscritti"
MM_editRedirectUrl = "conferma.asp"
MM_fieldsStr = "nome|value|cognome|value|e-mail|value|telefono|value|username|value|password|value"
MM_columnsStr = "nome|',none,''|cognome|',none,''|e-mail|',none,''|telefono|none,none,NULL|username|',none,''|password|',none,''"
' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")
' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next
' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If
End If
%>
<%
' *** Insert Record: construct a sql insert statement and execute it
Dim MM_tableValues
Dim MM_dbValues
If (CStr(Request("MM_insert")) <> "") Then
' create the sql insert statement
MM_tableValues = ""
MM_dbValues = ""
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_tableValues = MM_tableValues & ","
MM_dbValues = MM_dbValues & ","
End If
MM_tableValues = MM_tableValues & MM_columns(MM_i)
MM_dbValues = MM_dbValues & MM_formVal
Next
MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
If (Not MM_abortEdit) Then
' execute the insert
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If
End If
%>
<html>
<head>
<title>destra</title>
</head>
<body background="tile4.jpg">
<p align="center"> <b>ISCRIZIONE</b>
</p>
<p align="justify"><em>In questa pagina si può effettuare l'iscrizione al sito in modo da poter usufruire gratuitamente del servizio di prenotaione testi. </em></p>
<form name="form8" method="POST" action="<%=MM_editAction%>">
<table background="matt.gif" width="200" border="4" align="center">
<tr>
<td><div align="center">nome</div></td>
<td><div align="center">cognome</div></td>
</tr>
<tr>
<td><input name="nome" type="text" id="nome"></td>
<td><input name="cognome" type="text" id="cognome"></td>
</tr>
<tr>
<td><div align="center">e-mail</div></td>
<td><div align="center">telefono</div></td>
</tr>
<tr>
<td><input name="e-mai" type="text" id="e-mai"></td>
<td><input name="telefono" type="text" id="telefono"></td>
</tr>
<tr>
<td><p align="center">username</p> </td>
<td><div align="center">password</div></td>
</tr>
<tr>
<td><input name="username" type="text" id="username"></td>
<td><input name="password" type="text" id="password"></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" name="Submit2" value="invia dati">
</div></td>
</tr>
</table>
<input type="hidden" name="MM_insert" value="form8">
</form>
<p align="justify"><em></em></p>
<div align="center"></div>
<div align="center"></div>
<p align="justify"><em></em></p>
</body>
</html>
Se siete arrivati a leggere fino qui vi meritate comunque la mia gratitudine.
Se mi rispondete anche...
...decidete voi

Risposte



Ciao Sergio, complimenti per la spiegazione dettagliata. Si tratta dell'errore di sintassi nell'istruzione INSERT INTO.
Se mi mandi questa pagina con relativo database, mi risparmi la fatica di ricostruirlo. Farò le prove personalmente per risolvere il problema.
Metti tutto in una cartella zip e invia al seguente indirizzo:
gianpaolo@starnet.it
Io ti mando invece un piccolo esempio su "Inserimento, modifica, visualizza e cancella record"
Fammi sapere.

Di: Gian Paolo | 26/09/2020 18:00:06


Ciao GianPaolo,
ti ringrazio per la disponibilità che hai dimostrato e volevo dirti che ho risolto ma non so nemmeno io come:
ho formattato c e reinstallato l'intero sistema operativo windows xp con service pack 2, office 2003 e dreamweaver mx 2004, e finalmente sono riuscito, dopo aver installato l'IIS, a visualizzare la pagina http://localhost/
a questo punto ho fatto le prove con gli esempi della pagina di help che si apriva automaticamente riuscendo finalmente ad aggiornare il mio primo database.
mi sono quindi armato di pazienza e ho riprovato con il dreamweaver fino ad ottenere un risultato: il database in access si è aggiornato!
Comunque ora vado di corsa a scaricarmi la posta.
Ciao e grazie ancora.

Di: sergio | 26/09/2020 18:00:06