Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Problemi con query sql

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    177

    Problemi con query sql

    Ho un database files(ID,NomeFile,Protetto,Processato,DataUltimoPr ocesso) dove ID è chiave, io devo ricavare l'ID avendo il nome file. Ho scritto il seguente comando:
    codice:
    database.eseguiQuery("SELECT ID FROM files(NomeFiles) VALUES ('"+nome+"')")
    la query è errata, mi stampa l'errore:
    java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Errore di sintassi nella proposizione FROM.
    at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source)
    at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unkno wn Source)
    at utility.DatabaseBridge.eseguiQuery(DatabaseBridge. java:66)
    at utility.CaricaDB.id(CaricaDB.java:41)
    at sviluppo.TestCaricaDB2.main(TestCaricaDB2.java:36)
    Exception in thread "main" java.lang.NullPointerException
    at utility.CaricaDB.id(CaricaDB.java:42)
    at sviluppo.TestCaricaDB2.main(TestCaricaDB2.java:36)

    Ho fatto più test, con vari comandi, dove sbaglio? eventualmente c'è un comando che restituisce la chiave?
    Teo

  2. #2
    Ora di access non ne so molto ma la query sql scritta in quel modo non ha senso prova:
    codice:
    database.eseguiQuery("SELECT ID FROM files where NomeFiles='"+nome+"'")

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    177
    Originariamente inviato da francesco.muia
    Ora di access non ne so molto ma la query sql scritta in quel modo non ha senso prova:
    codice:
    database.eseguiQuery("SELECT ID FROM files where NomeFiles='"+nome+"'")
    stampa un errore diverso:
    java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto 1. at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source) at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(Unknown Source) at sun.jdbc.odbc.JdbcOdbcStatement.execute(Unknown Source) at sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(Unkno wn Source) at utility.DatabaseBridge.eseguiQuery(DatabaseBridge. java:66) at utility.CaricaDB.id(CaricaDB.java:41) at sviluppo.TestCaricaDB2.main(TestCaricaDB2.java:36) Exception in thread "main" java.lang.NullPointerException at utility.CaricaDB.id(CaricaDB.java:42) at sviluppo.TestCaricaDB2.main(TestCaricaDB2.java:36)
    Teo

  4. #4
    Come dicevo prima di access non ne so molto, cmq il problema è sempre nella sintassi sql, access vuole che i campi della clausola where siano referenziati alla tabella. Questo è un esempio funzionante fatto seguendo la tabella che hai postato :
    codice:
    public static void main(String[] args)
    	{
    		try
    		{
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    			// set this to a MS Access DB you have on your machine
    			String filename = "c:/TEMP/database.mdb";
    			String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=";
    			database += filename.trim() + ";DriverID=22;READONLY=true}"; // add on to the end
    			// now we can get the connection from the DriverManager
    			Connection con = DriverManager.getConnection(database, "", "");
    			Statement st =  con.createStatement();
    			ResultSet result = st.executeQuery("select * from files where files.NomeFile='mioFile'");
    			while(result.next())
    			{
    				System.out.println(result.getInt(1));
    				System.out.println(result.getString(2));
    			}
    		}
    		catch (Exception e)
    		{
    			System.out.println("Error: " + e);
    		}
    	}

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.