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

    Problema istruzione in SQL

    Ciao a tutti, sono un pņ arrugginito sull'SQL, devo creare una tabella per memorizzare delle pizze, quindi con nome contenuto e prezzo. Ho queste istruzioni:

    codice:
           st.executeUpdate("CREATE TABLE TABELLA_PIZZE" +"(NOME VARCHAR(20) PRIMARY KEY, " +" INGREDIENTI VARCHAR(80) NOT NULL, "+"PREZZO DOUBLE)");

    E poi inserisco i valori:

    codice:
     st.executeUpdate("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita, Pomodoro, mozzarella, origano', 3,5)");
    Ho questo errore in esecuzione:

    codice:
    java.sql.SQLSyntaxErrorException: Le colonne di tipo 'VARCHAR' non possono contenere valori di tipo 'INTEGER'.
    e fa riferimento a questa istruzione:

    codice:
     st.executeUpdate("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita, Pomodoro, mozzarella, origano', 3,5)");
    Perņ non capisco dov' č che metto INTEGER al posto di VARCHAR???

  2. #2
    guarda

    st
    .executeUpdate("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita, Pomodoro, mozzarella, origano', 3,5)");

    il poveraccio come fa a capire che la virgola di 3,5 č il separatore dei decimali, e non un separatore di valori di colonna?

    devi scrivere 3.5, non 3,5 - cosģ

    st
    .executeUpdate("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita, Pomodoro, mozzarella, origano', 3.5)");


  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    mi sa che oltre al "3.5" anche gli apici non funzionano perche ci sono delle virgole che sono invece parte del testo

    st.executeUpdate("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita', 'Pomodoro, mozzarella, origano', 3.5)");

    .

  4. #4
    nman, se sono *dentro* gli apici, le virgole vengono ignorate dal parser, lo sai

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    guardalo bene:
    "INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita, Pomodoro, mozzarella, origano', 3.5)"

    nel campo "NOME" mette 'Margherita, Pomodoro, mozzarella, origano'
    nel campo "INGREDIENTI" mette 3.5 ??
    nel campo "PREZZO" cosa mette ?



  6. #6
    hai ragione!

    dovrebbe essere

    st.executeUpdate("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita', 'Pomodoro, mozzarella, origano', 3.5)");

  7. #7
    Ottimo!!!
    Grazie a tutti, ora funziona e vedo anche il catalogo delle mie pizze.
    Una curiositą...siccome finora per inserire dati ho usato l' istruzione:

    codice:
    st.executeUpdate("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('Margherita', 'Pomodoro, mozzarella, origano', 3.5)");
    dove st č un oggetto Statement, mi chiedevo se ad esempio dovessi prelevare dei dati da un form, come faccio ad inserirli nel database? Voglio dire...con quella istruzione io passo il valore delle stringhe, č possibile inserire dati in una tabella passando variabili che contengono dati? Se si come?

  8. #8
    componi la stringa inserendo le variabili. ragionaci su un attimo, lo sai certamente fare

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2013
    Messaggi
    23
    Ciao, secondo me, per eseguire l'insert in modo pił leggibile, invece di fare una serie di concatenazioni tra stringhe e variabili, potresti usare lo String.format:

    codice:
    String statement = String.format("INSERT INTO TABELLA_PIZZE (NOME, INGREDIENTI, PREZZO)VALUES ('%s', '%s', '%s')", <val1>, <val2>, <val3>);
    
    st.executeUpdate(stetement);

    F.

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.