Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    30

    Che succede se faccio 'INSERT' su una vista?

    Ho un database di 5 tabelle, collegate con i rispettivi vincoli di foreign key.Creo una vista in cui ricavo ALCUNI degli elementi da queste tabelle.
    Se dovessi fare INSERT nella vista ,e inserire appunto un record,i campi verrebbero inseriti anche nelle rispettive tabelle? Rispettando i vari vincoli?
    Tenete conto ad esempio in una tabella c'erano due campi: un id e un campo stringa,di cui nella vista richiamo solo quest'ultimo: tenendo in conto che per il campo id c'è l'autoincremento, nel momento in cui tramite la vista aggiungo solo il campo string,il campo id viene creato automaticmente?

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da Mifert4 Visualizza il messaggio
    ...... tenendo in conto che per il campo id c'è l'autoincremento, nel momento in cui tramite la vista aggiungo solo il campo string,il campo id viene creato automaticmente?
    Non hai scritto il DataBase che per questa risposta potrebbe essere importante

    Comunque in linea di massima direi che si può fare ma dipende molto da come è progettata la vista e dal DataBase
    chiaramente:

    la vista deve essere editabile
    ( tieni presente che senza id la vista potrebbe essere NON editabile ( sola lettura ) )

    la vista deve essere progettata in modo che l' INSERT vada sulla tabella desiderata

    Solitamente il id con autoincremento viene creato automaticamente dal DB ma se non fosse cosi ricevi certamente un errore
    ( oppure anche senza darti errore non esegue il INSERT )


    .

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    30
    LIBRO (idlibro,titolo,anno,ideditore,idTema)
    AUTORE(idAutore)
    EDITORE(idEditore)
    TEMA(idTema)
    DETTAGLIAUTORE(idLibro,idAutore)

    nella form sulla mia pagina web ho bisogno di inserire questi elementi di un nuovo libro:
    titolo,anno,editore,autore,tema

    E no,la vista è una banale vista, progettata senza nessun criterio per scriverci sopra

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    30
    Intanto ho pensato a quest'altra soluzione,parecchio macchinosa per database più grandi,quindi credo proprio che non sia quella esatta,ma il mio unico scopo per ora è farla funzionare...peccato che ancora non funzioni però...
    codice:
    String Titolo=req.getParameter("titolo");
                String Autore=req.getParameter("autore");
                String Editore=req.getParameter("editore");
                String Tema=req.getParameter("tema");
                String Anno=req.getParameter("anno");
                
                
                INSERT1="INSERT INTO editori (nome) VALUE(\'" +Editore+ "\')";
                st = con.prepareStatement(INSERT1);
                st.executeUpdate(INSERT1);
                INSERT2="INSERT INTO autori (nome) VALUE(\'" +Autore+ "\')";
                st = con.prepareStatement(INSERT2);
                st.executeUpdate(INSERT2);
                INSERT3="INSERT INTO temi (tema) VALUE(\'" +Tema+ "\')";
                st = con.prepareStatement(INSERT3);
                st.executeUpdate(INSERT3);
                
                SQL1="SELECT idEditore FROM editori WHERE nome=\'" +Editore+ "\'";
                st = con.prepareStatement(SQL1);
                rs1=st.executeQuery(SQL1);
                SQL2="SELECT idAutor FROM autori WHERE nome=\'" +Autore+ "\'";
                rs2=st.executeQuery(SQL2);
                SQL3="SELECT idTema FROM temi WHERE tema=\'" +Tema+ "\'";
                rs3=st.executeQuery(SQL3);
                
                INSERT4=" INSERT INTO libri(titolo,anno,situazione,idEditore,idTema) VALUES (\'" +Titolo+ "\'," +Anno+ ",\'disponibile\',\'" +rs1.getString("idEditore")+"\',\'" +rs3.getString("idTema")+"\') " ;
                st = con.prepareStatement(INSERT4);
                st.executeUpdate(INSERT4);
                out.println("</HTML></BODY>");
    A quanto pare il problema è che i comandi rs1.getString() e rs3.getString() sembrano non dare nessun risultato
    Ultima modifica di Mifert4; 25-05-2014 a 17:05

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.