Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515

    clonare una tabella con una colonna in più...

    ciao a tutti!!!

    vorrei copiare una tabella con una colonna in +....

    ho questo cod.

    codice:
    try {
    String s1 = textCrea.getText().toString();
    int[] selezione = listEdit.getSelectedIndices();
    conn = DriverManager.getConnection("jdbc:mysql://localhost/basi?user=root&password=1234");					
    for (int i=0; i<selezione.length; i++) {						
    QueryEdit edit = (QueryEdit)listEdit.getModel().getElementAt(selezione[i]);				
    pstmt = (PreparedStatement) conn.prepareStatement("insert into playlist (nome, base, testo, lista) " +
    "SELECT nome, base, testo,"+ s1 +" FROM datasong where id="+edit.idNum2);		 
    pstmt.execute();
    }	
    }catch (Exception exc) {
    System.out.println("Errore: "+ exc.getMessage());
    }
    se scrivo su JTextField "prova" mi esce questo errore:

    Errore: Unknown column 'prova' in 'field list'
    eppure trasformo le JTextField in String.....

    help....

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157

    codice:
    "SELECT nome, base, testo,"+ s1 +" FROM datasong where id="+edit.idNum2)
    allora tu qui chiedi

    SELECT nome, base, test, prova FROM datasong WHERE id ....

    a sto punto, esiste la colonna PROVA nella tabella datasong??

    Esisterà la colonna PLUTO nella tabella datasong??

    Ti consiglio vivamente di separare la prima select dalla seconda, non usare al momento prepared statement (non li userei nemmeno come stai facendo, c'è un motivo per cui si scelgono e non è detto che vadano sempre bene) e stampa a video (con System.out.println) la query che esegui PRIMA di eguirla (una istruzione prima). Quanto meno hai un'idea di quello che provi a fare.
    Sarei curiosa di sapere se la stessa query eseguita direttamente su DB (quindi senza passare per java) ti dà lo stesso risultato (credo te ne dia uno simile)
    RTFM Read That F*** Manual!!!

  3. #3
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    nella tabella datasong c'è solo id, nome, base, testo

    nella tabella playlist c'è id, nome, base, testo, lista...

    ora vorrei copiare il contenuto del recordset del datasong e copiarlo nella playlist...ma aggiungendo nella colonna lista "s1"

    io ho scritto:
    codice:
    SELECT nome, base, testo,"+ s1 +" FROM datasong where id="+edit.idNum2);
    so benissimo che la tabella datasong contiene solo 4 colonne!!!!

    come faccio ad aggiungere "s1" alla "lista"?????????

    ho provato in tutti i modi!!!!!!!

    mi hai detto:

    Ti consiglio vivamente di separare la prima select dalla seconda.....
    ho solo una select.....

    il cod. che ho scritto è nell'evento click del JButton.....

  4. #4
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    allora ho fatto una prova direttamente su mysql senza java....

    ho scritto:
    Codice PHP:
    insert into playlist (nomebasetestolista
    select nomebasetesto'serate' from datasong
    tutto ok!!!!!

    mi ha copiato tutto!!!!!!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ascolta quella sintassi indica che tu fai una cosa che di solito fai in 2 step in un unico step.

    Stai selezionando dalla tabella datasong le colonne nome, base, test, "variabile" (quindi stai guardando alla struttura della tabella) e stai dicendo che questi 4 campi selezionati sono quelli che devi inserire dentro playlist. Inoltre stai dicendo che questi devi inserirli in un determinato posto (il primo è il nome, il secondo base ecc). Nella tua testa stai invece pensando di dire "i primi 3 parametri prenditeli dalle tabelle, il quarto te lo do io".

    Devi essere sicuro che il tuo DBMS supporti la possibilità di una query simile (non è supportata da tutti infatti), che la supporti il driver.

    Questi passi io sono solita farli (quando ho errore) separati, quindi seleziono i primi, vedo che tornano risultati, faccio la INSERT. E' un modo per facilitarmi il debug (e per risolverti il problema).

    Attualmente il quarto parametro è visto come nome colonna, non esiste la rispettiva colonna, la query termina con errore. Separa le due istruzioni, prima select, poi insert e vedi che succede.
    Inoltre non hai ancora capito che non è necessario copiare il contenuto, ma creare riferimenti con gli ID (e mi pare che ti sia stata data anche la struttura del database).
    RTFM Read That F*** Manual!!!

  6. #6
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    Devi essere sicuro che il tuo DBMS supporti la possibilità di una query simile (non è supportata da tutti infatti), che la supporti il driver.
    per tagliare la testa al toro......

    quale versione DBMS supparta?????

  7. #7
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    ti stò seguendo...

    io primo passaggio quello di selezionare i primi 3....l'ho fatto e mi copia tutto ma dando come risultato nella colonna "lista" "null".......

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da paul78
    ti stò seguendo...

    io primo passaggio quello di selezionare i primi 3....l'ho fatto e mi copia tutto ma dando come risultato nella colonna "lista" "null".......
    No, non hai capito

    Devi fare 2 query al db:

    1. query numero 1: select * from datasong where id = id_value
    questa ti seleziona quello che devi inserire. visto che a quanto ho capito si tratta di 3 campi, memorizza questo in 3 stringhe, nome, base, testo
    2. query numero 2: seguendo la regola generale
    codice:
    INSERT INTO nome_tanella (elenco_campi) VALUES ('elenco_valori')
    avrai INSERT INTO NOME_TABELLA (nome, base, testo, lista) VALUES (nome, base, testo, stringaDaTePresaCOmeInput)

    questo è il modo corretto di fare le due query. Lascia stare quella unica (usata soprattutto per altre ragioni da utenti più esperti di te)

    RIguardo al supporto, devi saperlo tu (guardando la documentazione del DBMS che hai scelto).

    Infine, per l'ennesima volta ti dico che questo è il modo sbagliato di fare una cosa, crei inutile ridondanza. Ti era stata data la struttura corretta, questa è solo fonte di problemi
    RTFM Read That F*** Manual!!!

  9. #9
    Utente di HTML.it L'avatar di paul78
    Registrato dal
    Apr 2010
    Messaggi
    515
    grazie valia!!!!

    funziona!!!!!

    ora devo sistemare altra cosette che non sapevo.....

    1) i titoli con la "è" accentata non li legge!!!!
    come posso sistemare????

    non sapevo questo particolare....

    c'è sempre qualcosa da imparare....

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.