Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Caimar
    Registrato dal
    Oct 2007
    Messaggi
    47

    Connette ma non aggiorna...

    Sono riuscito a fare la connessione ed a visualizzare i record di un db access e questo è stato motivo di grande soddisfazione ...però...

    Non riesco ad aggiornare il db...

    Ho fatto una pagina dove c'è il FORM:
    ----------------------------------------------------------------------------------------
    <html>
    <head>
    <title>Inserimento</title>
    </head>
    <body>

    <form name="inserimento" method="post" action="dbase.asp">
    Titolo:&nbsp&nbsp&nbsp<input type="text" nome="titolo" value="" size="25" maxlenght="50">

    Autore:&nbsp<input type="text" name="autore" value="" size="25" maxlenght="50">

    Genere:&nbsp<input type="text" name="genere" value="" size="25" maxlenght="50">

    Costo:&nbsp&nbsp&nbsp<input type="text" name="costo" value="" size="25" maxlenght="50">

    <input type="submit" name="pulsante" value="invio">

    </form>
    </body>
    </html>
    ----------------------------------------------------------------------------------------

    poi ho fatto la seguente pagina "dbase.asp":

    ----------------------------------------------------------------------------------------
    <%
    dim strTitolo
    strTitolo = request.form("titolo")

    dim strAutore
    strAutore = request.form("autore")

    dim strGenere
    strGenere = request.form("genere")

    dim strCosto
    strCosto = request.form("costo")

    dim Conn
    set Conn = Server.CreateObject("ADODB.Connection")
    Conn.Open "driver={Microsoft Access Driver (*.mdb)}; dbq="&Server.MapPath("libreria.mdb")

    set rs= Server.CreateObject("ADODB.Recordset")
    rs.Open "SELECT * FROM libri", conn

    rs.addnew
    rs(1) = strTitolo
    rs(2) = strAutore
    rs(3) = strGenere
    rs(4) = strCosto
    rs.update

    rs.close
    set rs = nothing
    Conn.close
    set conn = nothing
    %>
    ---------------------------------------------------------------------------------------
    ma non vuole funzionare! da errore alla riga 22 e dice che il db non è aggiornabile..come se fosse bloccato ..ora non ricordo bene il messaggio..

    Sapete cosa fare?

  2. #2
    Non sapendo di preciso quale è il messaggio di errore, potrebbe essere che tu tieni aperto il database in modalità esclusiva mentre esegui la query o potrebbe essere invece che non hai i permessi di scrittura nella cartella in cui hai il database.

  3. #3
    Utente di HTML.it L'avatar di Caimar
    Registrato dal
    Oct 2007
    Messaggi
    47
    Originariamente inviato da michele.santoro
    Non sapendo di preciso quale è il messaggio di errore, potrebbe essere che tu tieni aperto il database in modalità esclusiva mentre esegui la query o potrebbe essere invece che non hai i permessi di scrittura nella cartella in cui hai il database.
    Ciao Michele mi sa che hai ragione...
    Penso che sia la seconda cosa...
    Addormento mio figlio e dopo provo...e faccio sapere se riesco a risolvere o cosa dice precisamente...

  4. #4
    Utente di HTML.it L'avatar di Caimar
    Registrato dal
    Oct 2007
    Messaggi
    47
    Originariamente inviato da michele.santoro
    Non sapendo di preciso quale è il messaggio di errore, potrebbe essere che tu tieni aperto il database in modalità esclusiva mentre esegui la query o potrebbe essere invece che non hai i permessi di scrittura nella cartella in cui hai il database.
    allora il tipo di errore segnalato è il seguente:
    tipo di errore:
    ADODB.Recordset (0x800A0CB3)
    Il set di record corrente non supporta l'aggiornamento.
    Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.
    /connection/dbase.asp, line 21

    connection è la cartella in localhost...

    Ora, ho provato ad aggiungere "IUSR_Nome della mia Macchina" nelle proprietà della cartella di inetpub (e dopo esasperato anche in wwwroot ed nella cartella connection che contiene poi di db) ed a spuntare modifica....ma questo maledetto non vuole proprio funzionare!!

  5. #5
    Scusa se ti rispondo solo adesso, ma sono stato fuori. Comunque, prova così:
    codice:
    <%
    ' Connessione database
    Set conn = Server.CreateObject("ADODB.Connection")
    dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
    dsnpath = dsnpath & "DBQ=" & Server.MapPath("libreria.mdb")
    conn.open dsnpath
    %>
    <%
    'Recupero i dati dal modulo
    Titolo = request.form("titolo")
    Autore = request.form("autore")
    Genere = request.form("genere")
    Costo = request.form("costo")
    'Invio i dati inseriti nel modulo al database (tabella libri)
    SQL = "INSERT INTO libri (titolo,autore,genere,costo)"
    SQL = SQL&"VALUES('"&titolo&"','"&autore&"','"&genere&"','"&costo&"')"
    Conn.Execute(SQL)
    'reindirizzo alla pagina che voglio (tuapagina.asp)
    Response.Redirect "tuapagina.asp"
    %>
    Spero di non aver fatto errori

  6. #6
    Utente di HTML.it L'avatar di Caimar
    Registrato dal
    Oct 2007
    Messaggi
    47
    Originariamente inviato da michele.santoro
    Scusa se ti rispondo solo adesso, ma sono stato fuori. Comunque, prova così:
    codice:
    <%
    ' Connessione database
    Set conn = Server.CreateObject("ADODB.Connection")
    dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
    dsnpath = dsnpath & "DBQ=" & Server.MapPath("libreria.mdb")
    conn.open dsnpath
    %>
    <%
    'Recupero i dati dal modulo
    Titolo = request.form("titolo")
    Autore = request.form("autore")
    Genere = request.form("genere")
    Costo = request.form("costo")
    'Invio i dati inseriti nel modulo al database (tabella libri)
    SQL = "INSERT INTO libri (titolo,autore,genere,costo)"
    SQL = SQL&"VALUES('"&titolo&"','"&autore&"','"&genere&"','"&costo&"')"
    Conn.Execute(SQL)
    'reindirizzo alla pagina che voglio (tuapagina.asp)
    Response.Redirect "tuapagina.asp"
    %>
    Spero di non aver fatto errori
    Ciao Michele
    inanzitutto ti ringrazio dell'aiuto!

    Ho provato il tuo codice ma mi da un errore:
    "Errore di sintassi nell'istruzione INSERT INTO. ...line 28"

    Se riesco a fare l'inserimento anche con il tuo codice sarebbe motivo di grande soddisfazione, ma vorrei capire perchè quello della guidea non funziona.

    Gazie e ciao.

  7. #7
    Intanto correggi il modulo di invio: hai scritto no me="titolo" anziché na me="titolo".
    Questo comunque non influisce sul funzionamento dell'inserimento dei dati nel database ad tranne che per il mancato inserimento del titolo.
    Non capisco perché ti dia "Errore di sintassi nell'istruzione INSERT INTO. ...line 28" e non capisco neppure perché ci sia una linea 28 dal momento che le linee di codice da me postate sono 20 in tutto.
    Comunque facciamo una cosa più semplice. Salva il codice da me postato col nome dbase.asp in una cartella sul desktop che chiamerai PROVA. In questa cartella metti anche il database libreria.mdb e la pagina con il modulo di inserimento che potresti chiamare insert.asp o come ti pare e che è la seguente:
    codice:
    <html>
    <head>
    <title>Inserimento</title>
    </head>
    <body>
    
    <form name="inserimento" method="POST" action="dbase.asp">
    <div align="center">
    	<table border="0" width="31%" id="table1" cellspacing="0" cellpadding="2">
    		<tr>
    			<td>Titolo</td>
    			<td>
    			<input type="text" nome="titolo" value="" size="25" maxlenght="50" name="titolo"></td>
    		</tr>
    		<tr>
    			<td>Autore</td>
    			<td><input type="text" name="autore" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td>Genere</td>
    			<td><input type="text" name="genere" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td>Costo</td>
    			<td><input type="text" name="costo" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td colspan="2">
    			<p align="center">
    <input type="submit" name="pulsante" value="invio"></td>
    		</tr>
    	</table>
    </div>
    
    </form>
    </body>
    </html>
    Ora fai clik col tasto destro del mouse sulla cartella PROVA e scegli dal menu contestuale "condivisione e protezione..."
    Scegli la linguetta "Condivisione Web" e seleziona "Condividi la cartella"
    Ora nella finestra "Modifica Alias" che ti si è aperta, metti la spunta su:
    Accesso origine script, Esplorazione directory, script ed eseguibili, scrittura e lettura
    Conferma sempre fino ad uscire
    Ora apri il Browser e scrivi nella barra degli indirizzi: localhost/prova/insert.asp e dai invio.
    Prova e fai sapere.

  8. #8
    Utente di HTML.it L'avatar di Caimar
    Registrato dal
    Oct 2007
    Messaggi
    47
    Originariamente inviato da michele.santoro
    Intanto correggi il modulo di invio: hai scritto no me="titolo" anziché na me="titolo".
    Questo comunque non influisce sul funzionamento dell'inserimento dei dati nel database ad tranne che per il mancato inserimento del titolo.
    Non capisco perché ti dia "Errore di sintassi nell'istruzione INSERT INTO. ...line 28" e non capisco neppure perché ci sia una linea 28 dal momento che le linee di codice da me postate sono 20 in tutto.
    Comunque facciamo una cosa più semplice. Salva il codice da me postato col nome dbase.asp in una cartella sul desktop che chiamerai PROVA. In questa cartella metti anche il database libreria.mdb e la pagina con il modulo di inserimento che potresti chiamare insert.asp o come ti pare e che è la seguente:
    codice:
    <html>
    <head>
    <title>Inserimento</title>
    </head>
    <body>
    
    <form name="inserimento" method="POST" action="dbase.asp">
    <div align="center">
    	<table border="0" width="31%" id="table1" cellspacing="0" cellpadding="2">
    		<tr>
    			<td>Titolo</td>
    			<td>
    			<input type="text" nome="titolo" value="" size="25" maxlenght="50" name="titolo"></td>
    		</tr>
    		<tr>
    			<td>Autore</td>
    			<td><input type="text" name="autore" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td>Genere</td>
    			<td><input type="text" name="genere" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td>Costo</td>
    			<td><input type="text" name="costo" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td colspan="2">
    			<p align="center">
    <input type="submit" name="pulsante" value="invio"></td>
    		</tr>
    	</table>
    </div>
    
    </form>
    </body>
    </html>
    Ora fai clik col tasto destro del mouse sulla cartella PROVA e scegli dal menu contestuale "condivisione e protezione..."
    Scegli la linguetta "Condivisione Web" e seleziona "Condividi la cartella"
    Ora nella finestra "Modifica Alias" che ti si è aperta, metti la spunta su:
    Accesso origine script, Esplorazione directory, script ed eseguibili, scrittura e lettura
    Conferma sempre fino ad uscire
    Ora apri il Browser e scrivi nella barra degli indirizzi: localhost/prova/insert.asp e dai invio.
    Prova e fai sapere.
    Grazie ancora!
    Provo e ti faccio sapere (mi ci vuole un pò perché lo provo su un pc diverso da questo).
    Ciao

  9. #9
    Utente di HTML.it L'avatar di Caimar
    Registrato dal
    Oct 2007
    Messaggi
    47
    Originariamente inviato da michele.santoro
    Intanto correggi il modulo di invio: hai scritto no me="titolo" anziché na me="titolo".
    Questo comunque non influisce sul funzionamento dell'inserimento dei dati nel database ad tranne che per il mancato inserimento del titolo.
    Non capisco perché ti dia "Errore di sintassi nell'istruzione INSERT INTO. ...line 28" e non capisco neppure perché ci sia una linea 28 dal momento che le linee di codice da me postate sono 20 in tutto.
    Comunque facciamo una cosa più semplice. Salva il codice da me postato col nome dbase.asp in una cartella sul desktop che chiamerai PROVA. In questa cartella metti anche il database libreria.mdb e la pagina con il modulo di inserimento che potresti chiamare insert.asp o come ti pare e che è la seguente:
    codice:
    <html>
    <head>
    <title>Inserimento</title>
    </head>
    <body>
    
    <form name="inserimento" method="POST" action="dbase.asp">
    <div align="center">
    	<table border="0" width="31%" id="table1" cellspacing="0" cellpadding="2">
    		<tr>
    			<td>Titolo</td>
    			<td>
    			<input type="text" nome="titolo" value="" size="25" maxlenght="50" name="titolo"></td>
    		</tr>
    		<tr>
    			<td>Autore</td>
    			<td><input type="text" name="autore" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td>Genere</td>
    			<td><input type="text" name="genere" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td>Costo</td>
    			<td><input type="text" name="costo" value="" size="25" maxlenght="50"></td>
    		</tr>
    		<tr>
    			<td colspan="2">
    			<p align="center">
    <input type="submit" name="pulsante" value="invio"></td>
    		</tr>
    	</table>
    </div>
    
    </form>
    </body>
    </html>
    Ora fai clik col tasto destro del mouse sulla cartella PROVA e scegli dal menu contestuale "condivisione e protezione..."
    Scegli la linguetta "Condivisione Web" e seleziona "Condividi la cartella"
    Ora nella finestra "Modifica Alias" che ti si è aperta, metti la spunta su:
    Accesso origine script, Esplorazione directory, script ed eseguibili, scrittura e lettura
    Conferma sempre fino ad uscire
    Ora apri il Browser e scrivi nella barra degli indirizzi: localhost/prova/insert.asp e dai invio.
    Prova e fai sapere.
    FUNZIONA!!!

    Ora vado a leggermi e a cercare di capire come hai fatto...

  10. #10
    Utente di HTML.it L'avatar di Caimar
    Registrato dal
    Oct 2007
    Messaggi
    47
    Perché:

    1) avevo capito che la cartella con i file ASP dovessero stare sotto la WWWROOT ed invece no.... avevo capito male? (bè questa è un pò ovvia..)

    2)l'operazione della "condivisione Web" è quello che basta per abilitare le cartelle a fare inserire i dati? (anche a dire il vero anche questa sembra un pò ovvia.. )

    3)perchè usi questo metodo :
    -------------------------
    Set conn = Server.CreateObject("ADODB.Connection")
    dsnpath = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; "
    dsnpath = dsnpath & "DBQ=" & Server.MapPath("libreria.mdb")
    conn.open dsnpath
    -------------------------
    anzichè questo che mi sembra più semplice:
    -------------------------
    Set conn = Server.CreateObject("ADODB.Connection")
    conn.open = "DRIVER={MICROSOFT ACCESS DRIVER (*.mdb)}; DBQ=" & Server.MapPath("libreria.mdb")
    -------------------------
    cioè perché metti di mezzo "dsnpath" ?

    4) non credi anche te che dovrei trovarmi un bel libro dettagliato e studiarmi come si deve ASP invece di "razzolare" così per il web? Se si, hai qualche libro da consigliarmi?..

    Ciao e ancora grazie per la tua pazienza.

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.