Ciao a tutti,
da poco ho installato Windows XP Professional e IIS 5 per testare le mie pagine ASP che sto imparando a creare.
Seguendo gli esempi di un libro, sono arrivata al capitolo che riguarda l’utilizzo dei database con ASP. Ho imparato a selezionare i dati contenuti nel database e fin qui tutto OK.
Il problema sorge quando cerco di impostare il codice necessario per impostare l’immissione dei dati all’interno di un database.
Il file asp si chiama aggiungiconsql.asp, mentre il database rubrica.mdb (File Access 2000).
Il database ha :
1) una tabella che si chiama rubrica;
2) i campi sono: ID (Contatore), Nome (testo), Telefono(testo)
3) il database è stato popolato con alcuni dati.
Dal CD-ROM allegato al libro, adotto il seguente codice:
<form method="post">
<H1>Aggiungi nuova voce</H1>
Nome: <input type="text" name="nome">
Telefono: <input type="text" name="telefono">
<input type="submit" value="Aggiungi">
</form>
<%
Function FixQuotes (strTxt)
FixQuotes = Replace(strTxt, "'", "''")
End Function
if len(Request.Form) > 0 then
dim conn, strConn
strConn = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " &_
Server.MapPath("rubrica.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConn
SQL = "INSERT INTO Rubrica (nome, telefono) "
SQL = SQL & " VALUES (' " & FixQuotes(Request.Form("nome") ) & " ',"
SQL = SQL & " ' " & FixQuotes(Request.Form("telefono") ) & " ' )"
' creo il recordset
conn.Execute (SQL)
' libero risorse
conn.Close
set conn = Nothing
Response.write "<H2>Inserimento effettuato con successo</H2>"
End if
%>
Copio il database e il file aggiungiconsql.asp all’interno della wwwroot di IIS 5.
Avvio la pagina con http://localhost/aggiungiconsql.asp e al momento della richiesta della pagina compare questo errore:
HTTP 500.100 - Errore interno del server - errore ASP
Internet Information Services
Informazioni tecniche (per il personale del supporto tecnico)
Tipo di errore:
Microsoft JET Database Engine (0x80004005)
Per l'operazione è necessaria una query aggiornabile.
/aggiungiconsql.asp, line 31
Tipo di browser:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Pagina:
POST 30 bytes to /aggiungiconsql.asp
POST Data:
nome=pippo&telefono=0666666666
Praticamente mi dice che c’è un errore nella linea 31 che corrisponde a:
conn.Execute (SQL)
dove conn è il nome della variabile che memorizza l’oggetto Connection, SQL contiene, invece, l’istruzione per inserire i dati nel database (vedi sopra).
Come posso fare a risolvere questo problema? Come è possibile che non sia stata creata una query aggiornabile se nel codice esiste l’istruzione SQL. Vi ringrazio in anticipo a chiunque mi voglia aiutare.

Rispondi quotando
