Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di arrows
    Registrato dal
    Jun 2002
    Messaggi
    1,143

    mancato inserimento database

    cosa ha questa pagina che non va?
    codice:
    <%
    dim feed
    feed=request.querystring("feed")
    if feed then
    dim tipo, lingua, prodotto, descrizione
    
    lingua=request.form("lingua")
    tipo=request.form("tipo")
    prodotto=request.form("prodotto")
    descrizione=request.form("descrizione")
    if len(descrizione)<256 then
    
    Set objConn = Server.CreateObject("ADODB.Connection")
    dbconnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("/mdb-database/news.mdb")
    objConn.Open dbconnection
    
    select case lingua
    case italiano
    
    
    
    Set objRs = Server.CreateObject("ADODB.Recordset")
    set objRs = objConn.Execute(SQL)
    
    SQL = "INSERT INTO elencoita (tipo, prodotto, descrizione)"
    SQL = SQL&"VALUES('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    
    objRs.Close
    Set objRs = Nothing
    objConn.Close
    Set objConn = Nothing
    
    
    case tedesco
    
    
    Set objRs = Server.CreateObject("ADODB.Recordset")
    set objRs = objConn.Execute(SQL)
    
    
    SQL = "INSERT INTO elencoted (tipo, prodotto, descrizione)"
    SQL = SQL&"VALUES('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    
    objRs.Close
    Set objRs = Nothing
    objConn.Close
    Set objConn = Nothing
    
    
    case inglese
    
    
    Set objRs = Server.CreateObject("ADODB.Recordset")
    set objRs = objConn.Execute(SQL)
    
    SQL = "INSERT INTO elencoeng (tipo, prodotto, descrizione)"
    SQL = SQL&"VALUES('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    
    objRs.Close
    Set objRs = Nothing
    objConn.Close
    Set objConn = Nothing
    
    end select
    
    response.write("prodotto aggiunto al database")
    
    
    else
    response.write("lunghezza del campo descrizione eccessiva")
    end if
    
    else
    %>
    <form method="POST" action="prodotti.asp?feed=TRUE">
      
    
    
      <select size="1" name="lingua">
      <option>italiano</option>
      <option>tedesco</option>
      <option>inglese</option>
      </select></p>
      
    
    
      <select size="1" name="tipo">
      <option>rossi</option>
      <option>bianchi</option>
      <option>dessert</option>
      <option>spumanti</option>
      <option>altro</option>
      </select></p>
      
    
    <input type="text" name="prodotto" size="20"></p>
      
    
    <textarea rows="10" name="descrizione" cols="43"></textarea></p>
      
    
    </p>
      
    
    </p>
      
    
    </p>
      
    
    <input type="submit" value="Invia" ><input type="reset" value="Reimposta" ></p>
    </form>
    
    <%end if%>
    a me non da nessun tipo di errore, xò non aggiunge neanche il record al database
    boooooh
    Ti spio dalla finestra

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    bastava rendere dinamico il nome della tabella in base alla lingua ed avere un listato più corto della metà almeno...
    Verifica cosa contenga la variabile "lingua".

    Roby

  3. #3
    Utente di HTML.it L'avatar di arrows
    Registrato dal
    Jun 2002
    Messaggi
    1,143
    dopo ci provo...cmq la variabile lingua può avere 3 valori:italiano, tedesco, inglese.m serve perchè il database ha 3 tabelle.
    Ti spio dalla finestra

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questo era chiaro ma devi verificare se uno di quei tre valori li assuma!

    Roby

  5. #5
    Utente di HTML.it L'avatar di arrows
    Registrato dal
    Jun 2002
    Messaggi
    1,143
    se non ho capito male:
    ho fatto un response.write request("lingua")
    al posto di tutto, e mi restituisce ciò che avevo inserito
    Ti spio dalla finestra

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ahhhhhhhhhhh hai eseguito le query prima di crearle... fai un uso eccessivo di copia/incolla...
    Inoltre il recordset non ti occorre. Ecco un esempio corretto:

    codice:
    SQL = "INSERT INTO elencoita (tipo, prodotto, descrizione)"
    SQL = SQL&"VALUES('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    set objRs = objConn.Execute(SQL)
    La connessione chiudila prima della riga response.write("prodotto aggiunto al database")

    codice:
    objConn.Close
    Set objConn = Nothing
    response.write("prodotto aggiunto al database")
    Dimenticavo: occhio ai replace. Se i campi testo contengono degli apici la query va in errore se non li raddoppi!

    Roby

  7. #7
    Utente di HTML.it L'avatar di arrows
    Registrato dal
    Jun 2002
    Messaggi
    1,143
    che vergogna....
    cmq riguardo a quel discorso del nome dinamico dovrei fare come?
    codice:
    SQL = "INSERT INTO 'qui cosa va?(tipo, prodotto, descrizione)"
    SQL = SQL&"VALUES('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    grazie ancora
    Ti spio dalla finestra

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    lingua2 = left(lingua,3)
    SQL = "INSERT INTO elenco"& lingua2 &" (tipo, prodotto, descrizione)"
    SQL = SQL&"VALUES('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    set objRs = objConn.Execute(SQL)
    E così ne metti una per tutte.

    Roby

  9. #9
    Utente di HTML.it L'avatar di arrows
    Registrato dal
    Jun 2002
    Messaggi
    1,143
    ora è cosi:
    codice:
    <%
    dim feed
    feed=request.querystring("feed")
    if feed then
    dim tipo, lingua, prodotto, descrizione, lingua2
    
    lingua=request.form("lingua")
    tipo=request.form("tipo")
    prodotto=request.form("prodotto")
    descrizione=request.form("descrizione")
    if len(descrizione)<256 then
    
    
    
    Set objConn = Server.CreateObject("ADODB.Connection")
    dbconnection="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath("/mdb-database/news.mdb")
    objConn.Open dbconnection
    
    
    
    lingua2 = left(lingua,3)
    SQL = "INSERT INTO elenco"& lingua2 &" (tipo, prodotto, descrizione)"
    SQL = SQL&"VALUES('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    set objRs = objConn.Execute(SQL)
    
    
    objConn.Close
    Set objConn = Nothing
    
    
    
    response.write("prodotto aggiunto al database")
    
    
    else
    response.write("lunghezza del campo descrizione eccessiva")
    end if
    
    else
    %>
    ma non funziona lo stesso.mi dice
    codice:
     
    tipo di errore:
    Microsoft JET Database Engine (0x80040E14)
    Errore di sintassi (operatore mancante) nell'espressione della query ''invecchiamento per almeno 2 anni in fusti di rovere. Stappare almeno un'ora prima. Temperatura di servizio 20/22°')'.
    /news/prodotti.asp, line 35
    Ti spio dalla finestra

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Stampati questa e guarda cosa ti restituisce:

    codice:
    lingua2 = left(lingua,3)
    SQL = "INSERT INTO elenco"& lingua2 &" (tipo, prodotto, descrizione) "
    SQL = SQL&"VALUES ('"&tipo&"','"&prodotto&"','"&descrizione&"')"
    response.write SQL:response.end
    set objRs = objConn.Execute(SQL)
    Roby

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.