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

    eliminare il file usato in java

    Buonasera a tutti!
    Non riesco eliminare il file del access database appena creato. Allora io devo convertire un file excel in un file access, per fare questo creo un file access e poi creo una tabella dentro quel file, ma se la query va a cattivo fine io vorrei eliminare il file del database creato, ma non ci riesco perché esso è ancora utilizzato... vedi sotto il codice Come potrei cancellare il file che non serve...

    codice:
    try{         
         Connection conn = DriverManager.getConnection("jdbc:ucanaccess://" + path + ";newdatabaseversion=V2010");
         Statement s = conn.createStatement();
         s.execute(sqlCreateTable);    
    }catch (SQLException e){
         e.printStackTrace();
    }finally{
         File inutile = new File(path);
         if(inutile.exists())
              inutile.delete();
    }
    Ultima modifica di TotalNoob; 06-01-2016 a 19:28

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da TotalNoob Visualizza il messaggio
    vorrei eliminare il file del database creato, ma non ci riesco perché esso è ancora utilizzato...
    Presumibilmente è usato dal driver JDBC. Non conosco personalmente (mai usata) la UCanAccess, quindi non so dire se c'è una soluzione pulita e documentata per fare questo.
    Direi, ad occhio, che il minimo (ma proprio il minimo) che dovresti fare prima di tentare di eliminare il file, è perlomeno chiudere la connection ... cosa che dal codice postato non stai facendo.

    Poi tra l'altro stai tentando la cancellazione nel finally, quindi non solo se qualcosa nel try fallisce ma sempre, in qualunque caso.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Infatti, andbin , se la query di create table fallisce, il programma si blocca alla istruzione: s.execute(sqlCreateTable) e non eseguirà le relative close(), e non posso metterle nella catch perché né statment né connection non sono più definiti...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da TotalNoob Visualizza il messaggio
    non posso metterle nella catch perché né statment né connection non sono più definiti...
    Se il dubbio/problema è solo questo .... guarda che si tratta solo di come strutturi il codice. Non sei affatto obbligato a dichiare le variabili nel try ... puoi metterle anche fuori (prima). E in tal caso vanno inizializzate, logicamente a null.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #5
    andbin, grazie tanto, quel dubbio l'ho risolto, però adesso siccome io prima creo la tabella e poi la devo popolare con dei dati non so perché ma quando provo ad eseguire le insert mi da questo errore: user lacks privilege or object not found: ORA. Cosa potrebbe significare questo...

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.