Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Insert con db Access

  1. #1

    Insert con db Access

    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.

  2. #2
    Utente di HTML.it L'avatar di fiber81
    Registrato dal
    Oct 2002
    Messaggi
    328
    Dopo aver composto da stringa SQL metti:
    codice:
    Response.write SQL
    Response.end
    E posta quello che ti stampa a video.
    Ma il campo telefono è un campo numerico o testo?
    Nel caso che sia numerico devi togliere gli apici e la chiamata alla funzione fixquotes
    Ci sono 10 tipi di persone al mondo, quelli che conoscono la numerazione binaria e quelli che non la conoscono!

  3. #3
    Utente di HTML.it L'avatar di fiber81
    Registrato dal
    Oct 2002
    Messaggi
    328
    Se telefono è numerico correggi l'sql così:

    codice:
    SQL = "INSERT INTO Rubrica (nome, telefono) " 
    SQL = SQL & " VALUES (' " & FixQuotes(Request.Form("nome") ) & " '," 
    SQL = SQL & Request.Form("telefono") & ")"
    Ci sono 10 tipi di persone al mondo, quelli che conoscono la numerazione binaria e quelli che non la conoscono!

  4. #4
    Fai una ricerca sul forum si e' parlato un milione di volte di questo errore

  5. #5

    Risposta

    Ciao fiber,
    il campo telefono è di tipo testo, poichè non devo effettuare una operazione su questo campo.
    Ho aggiunto quello che mi hai consigliato sotto la stringa sql ma non scrive nel db.

    --------------------
    Response.write SQL
    Response.end

    ' creo il recordset
    conn.Execute (SQL)
    -------------------------


    Al di sotto del modulo esce stampato l'sql, cioè esattamente questo:

    INSERT INTO Rubrica (nome, telefono) VALUES (' pippo ', ' 1111111 ' )


  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non è un problema di quey in sé ma di permessi nell'esecuzione della stessa.
    Cerca nel forum: http://forum.html.it/forum/search.ph...by=&sortorder=

    Roby

  7. #7
    Originariamente inviato da supergeniux
    Fai una ricerca sul forum si e' parlato un milione di volte di questo errore
    Mi autoquoto

  8. #8
    :master:

  9. #9
    crea una cartella nel desktop ( o dove vuoi ) e dentro ci metti la pagina e il db.

    poi fai tasto destro sulla cartella----condivisione e protezione

    e da lì aggiungi i permessi in scrittura

    poi per arrivarci fai
    http://localhost/nomecartella/nomepagina.asp
    ciao

  10. #10
    non funziooooooooonnnnnnnnnnnnaaaaaaaaaaaa

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 © 2025 vBulletin Solutions, Inc. All rights reserved.