Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Errore in un file asp che ho provato a delimitare

    Ho una pagina asp che non funziona, o meglio funziona a metà.
    Con vari test, penso di essere riuscito a delimitare l'errore in queste 3 righe:

    Response.write("

    Costo complessivo: " + rst("costo")*quantitaProdotto + "</p>");
    rst("quantita")=parseInt(rst("quantita"))-quantitaProdotto;
    rst.Update();

    qualcuno sa dirmi se c'è un errore in queste 3 righe?
    incollo ad ogni modo il file intero, per completezza, anche se ho testato e ho visto che funzionano le altre parti.
    a questa pagina asp si accede da un'altra pagina asp perfettamente funzionante invece.
    cmq incollo il codice completo

    <!DOCTYPE HTML PUBLIC
    "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <%@language="JScript"%>

    <%
    var con;
    var conString;
    con = Server.CreateObject("ADODB.Connection");
    con.Mode = adModeReadWrite;
    conString = "Provider=Microsoft.Jet.OLEDB.4.0; "
    + "Data Source=" +Server.MapPath("auto.mdb");
    con.Open(conString);
    %>
    <title>Esercizio 9.1 - Pagina B </title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <body>
    <h1>Pagina B</h1>
    <%
    var rst;
    var quantitaProdotto;
    var costoComplessivo;
    var trovato = 0;

    if (Request.ServerVariables("REQUEST_METHOD") == "GET") {
    idProdotto=parseInt(Request.QueryString("id"))
    quantitaProdotto=parseInt(Request.QueryString("qua ntita"));
    }
    else if (Request.ServerVariables("REQUEST_METHOD") == "POST") {
    quantitaProdotto=parseInt(Request.Form("quantita") );
    idProdotto=parseInt(Request.Form("id"));
    }

    if (isNaN(idProdotto)) {
    Response.write("

    Formato Id prodotto non valido</p>");
    }
    else {
    if (isNaN(quantitaProdotto) || quantitaProdotto < 0) {
    Response.write("

    Formato quantita prodotto non valido</p>");
    }
    else {
    rst = Server.CreateObject("ADODB.Recordset");
    rst.Open("auto_nuove",conString,adOpenDynamic,adLo ckPessimistic);
    while (!rst.EOF) {
    if(rst("id") == idProdotto) {
    var trovato = 1;
    if (quantitaProdotto > parseInt(rst("quantita"))) {
    Response.write("

    Quantita richiesta non disponibile</p>");
    }
    else {
    Response.write("

    Costo complessivo: " + rst("costo")*quantitaProdotto + "</p>");
    rst("quantita")=parseInt(rst("quantita"))-quantitaProdotto;
    rst.Update();
    }
    }
    rst.MoveNext( );
    }
    if(trovato == 0)
    Response.write("

    Id non esistente</p>");
    rst.Close( );
    rst = null;
    }
    }
    %>
    <h2> Contenuto del database aggiornato</h2>
    <%
    sSQLString = " Select * from auto_nuove ";
    rst = con.Execute(sSQLString);
    %>
    <table border=1>
    <tr><th>ID</th><th>Nome</th><th>Quantit&agrave;</th></tr>
    <%
    while (!rst.EOF) {
    Response.write("<tr><td>"+ rst("ID") +
    "</td> <td>"+ rst("nome") +
    "</td> <td>"+ rst("quantita")+
    "</td></tr>");
    rst.MoveNext( );
    }
    rst.Close();
    con.Close();
    rst = null;
    con = null;
    %>
    </table>


    Clicca qui per tornare alla pagina precedente</p>
    </body>
    </html>

  2. #2
    potrebbe anche essere una cosa che dipende da autorizzazioni.
    ho microsoft access 2010 versione di valutazione e windows 7 home premium 64 bit.
    quando provo ad aprire il database da wwwroot mi dice

    Sola lettura Il database è stato aperto in sola lettura. E' possibile modificare solo i dati delle tabelle collegate.Per apportare modifiche alla struttura, salvare una copia in locale.


    forse potrebbe dipendere da questo, considerando che la lettura del database con una pagina asp me la lascia fare.

  3. #3
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    L'errore che ti mostra il browser lo devi scrivere qui per esteso altrimenti nessuno può sapere cosa non vada.

    Roby

  4. #4
    allora l'errore che appare è questo

    se dall'altra pagina inserisco dati corretti come input appare ad esempio:
    Costo complessivo: 100000

    An error occurred on the server when processing the URL. Please contact the system administrator.
    If you are the system administrator please click here to find out more about this error.


    se invece metto dati errati mi appare un errore sopra e mi appare il database immutato, quindi non mi fa l'update.

    incollo il codice anche della pagina di partenza, altrimenti non potete capire.
    questa è perfettamente funzionante.

    <!DOCTYPE HTML PUBLIC
    "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <%@language="JScript"%>

    <%
    var con;
    var conString;
    con = Server.CreateObject("ADODB.Connection");
    conString = "Provider=Microsoft.Jet.OLEDB.4.0; "
    + "Data Source=" +Server.MapPath("auto.mdb");
    con.Open(conString);
    %>
    <title>Esercizio 9.1 - Pagina A </title>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <body>
    <h1> Pagina A </h1>
    <%
    var rst;
    var sSQLString;
    rst = Server.CreateObject("ADODB.Recordset");
    sSQLString = " Select * from auto_nuove ";
    rst = con.Execute(sSQLString);
    %>
    <table border=1>
    <tr><th>ID</th><th>Nome</th><th>Costo</th></tr>
    <%
    while (!rst.EOF) {
    Response.write("<tr><td>"+ rst("ID") +
    "</td> <td>"+ rst("nome") +
    "</td> <td>"+ rst("costo")+
    "</td></tr>");
    rst.MoveNext( );
    }
    rst.Close();
    con.Close();
    rst = null;
    con = null;

    %>
    </table>
    <h2> Form richiesta quantit&agrave; </h2>
    <form name="spesa" action="lab91B.asp" method="GET">
    <table>
    <tr>
    <td> Identificativo</td>
    <td><input type="text" name="id" value=""></td>
    </tr>
    <tr>
    <td> Quantit&agrave;</td>
    <td><input type="text" name="quantita" value=""></td>
    </tr>
    </table>


    <input type="submit" value="Invio"></p>
    </form>
    </body>
    </html>

  5. #5
    ho stampato lo schermo con la prima pagina in cui ho inserito id=1 e quantità=10 in inputhttp://www.flickr.com/photos/57267555@N06/5275118516/

    mentre la pagina B quella che non mi funziona come mi appare arrivando dalla pagina A è questa:

    http://www.flickr.com/photos/5726755...n/photostream/

  6. #6
    sono riuscito ad abilitare gli errori tentando..
    e mi è apparso:

    Microsoft JET Database Engine

    error '80040e09'

    Impossibile aggiornare. Database o oggetto di sola lettura.

    /lab91B.asp, riga 55




    la riga 55 sarebbe questa:
    rst("quantita")=parseInt(rst("quantita"))-quantitaProdotto;

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il database non ha i permessi di scrittura.

    Roby

  8. #8
    sì hai ragione..
    in realtà avevo dato i permessi di scrittura all'utente internet guest account, ma non andava.
    così li ho dati anche all'utente normale.
    ora va.
    grazie

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.