Newsgroup: it.comp.java
Titolo: non riesco ad aprire un DB MS ACCES

Vi prego aiutatemi !
Sono alle prese con un apertura di un DB (per la prima volta)
L'unica cosa che posso provare in questo momento è di aprire un DB MS
ACCESS (ahimè !)
Possiedo  il driver per ACCESS 7.0:      3.40.2204
Ho creato il DB vuoto (indirizzi.mdb) nella stessa cartella del file
che compilo
Ho compilato un file di esempio ma mi restituisce questi messaggi:
(segue anche il file di esempio)
-------------------------------------------------------------------------------------------------------
JDBCTest.java:16: Class Connection not found in type declaration.
			Connection DBConnection =
DriverManager.getConnection (
			^
JDBCTest.java:16: Undefined variable: DriverManager
			Connection DBConnection =
DriverManager.getConnection (
			                          ^
JDBCTest.java:23: Class Connection not found in void
main(java.lang.String[]).
			checkForWarning (DBConnection.getWarnings ());
			                                          ^
JDBCTest.java:27: Class DatabaseMetaData not found in type
declaration.
			DatabaseMetaData DBMetadata =
DBConnection.getMetaData ();
			^
JDBCTest.java:27: Class Connection not found in void
main(java.lang.String[]).
			DatabaseMetaData DBMetadata =
DBConnection.getMetaData ();
^
JDBCTest.java:29: Class DatabaseMetaData not found in void
main(java.lang.String[]).
			System.out.println("\nConnected to " +
DBMetadata.getURL());
^
JDBCTest.java:31: Class DatabaseMetaData not found in void
main(java.lang.String[]).
				DBMetadata.getDriverName());
				                        ^
JDBCTest.java:33: Class DatabaseMetaData not found in void
main(java.lang.String[]).
				DBMetadata.getDriverVersion());
				                           ^
JDBCTest.java:37: Class Statement not found in type declaration.
			Statement SQLStatement =
DBConnection.createStatement ();
			^
JDBCTest.java:37: Class Connection not found in void
main(java.lang.String[]).
			Statement SQLStatement =
DBConnection.createStatement ();
^
JDBCTest.java:40: Class Statement not found in void
main(java.lang.String[]).
			SQLStatement.executeUpdate (
			                           ^
JDBCTest.java:47: Class Statement not found in void
main(java.lang.String[]).
			SQLStatement.executeUpdate (
			                           ^
JDBCTest.java:49: Class Statement not found in void
main(java.lang.String[]).
			SQLStatement.executeUpdate (
			                           ^
JDBCTest.java:51: Class Statement not found in void
main(java.lang.String[]).
			SQLStatement.executeUpdate (
			                           ^
JDBCTest.java:53: Class Statement not found in void
main(java.lang.String[]).
			SQLStatement.executeUpdate (
			                           ^
JDBCTest.java:55: Class Statement not found in void
main(java.lang.String[]).
			SQLStatement.executeUpdate (
			                           ^
JDBCTest.java:59: Class ResultSet not found in type declaration.
			ResultSet result_set =
SQLStatement.executeQuery (
			^
JDBCTest.java:59: Class Statement not found in void
main(java.lang.String[]).
			ResultSet result_set =
SQLStatement.executeQuery (
^
JDBCTest.java:65: Class ResultSet not found in void
main(java.lang.String[]).
			result_set.close();
			                ^
JDBCTest.java:66: Class Statement not found in void
main(java.lang.String[]).
			SQLStatement.close();
			                  ^
JDBCTest.java:67: Class Connection not found in void
main(java.lang.String[]).
			DBConnection.close();
			                  ^
JDBCTest.java:122: Class ResultSet not found in type declaration.
	private static void dispResultSet (ResultSet QueryResultSet)
	                    ^
JDBCTest.java:128: Class ResultSetMetaData not found in type
declaration.
		ResultSetMetaData RSMetaData =
QueryResultSet.getMetaData ();
		^
JDBCTest.java:128: Class ResultSet not found in void
dispResultSet(ResultSet).
		ResultSetMetaData RSMetaData =
QueryResultSet.getMetaData ();
^
JDBCTest.java:131: Class ResultSetMetaData not found in void
dispResultSet(ResultSet).
		int numCols = RSMetaData.getColumnCount ();
		                                        ^
JDBCTest.java:136: Class ResultSetMetaData not found in void
dispResultSet(ResultSet).
System.out.print(RSMetaData.getColumnLabel(i));
			                                          ^
JDBCTest.java:142: Class ResultSet not found in void
dispResultSet(ResultSet).
		while (QueryResultSet.next ()) {
		                           ^
JDBCTest.java:146: Class ResultSet not found in void
dispResultSet(ResultSet).
System.out.print(QueryResultSet.getString(i));
^
28 errors
-------------------------------------------------------------------------------------------------------------------------------------
Il file di esempio è questo:
--------------------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------
//	JDBCTest - dimostra le funzioni base della JDBC e del driver
ODBC
//----------------------------------------------------------------------------
import java.sql.*;
class JDBCTest {
	public static void main (String args[]) {
		String query = "SELECT * FROM emp";
		try {
			// Carica il driver ponte fra JDBC e ODBC
			Class.forName
("sun.jdbc.odbc.JdbcOdbcDriver");
			// Apre la connessione DBConnection il driver.
			Connection DBConnection =
DriverManager.getConnection (
				"jdbc:odbc:Indirizzi",	// la JDBC URL
del database
				"User",		// utente e password
non sono
				"Password");		//  necessari,
nel nostro caso
			// Se siamo qui, la connessione è aperta,
comunque
			// potrebbero esserci degli warning
			checkForWarning (DBConnection.getWarnings ());
			// I metadati sulla connessione sono
informazioni generali
			// ecco qualche esempio
			DatabaseMetaData DBMetadata =
DBConnection.getMetaData ();
			System.out.println("\nConnected to " +
DBMetadata.getURL());
			System.out.println("Driver       " +
				DBMetadata.getDriverName());
			System.out.println("Version      " +
				DBMetadata.getDriverVersion());
			System.out.println("");
			// Creiamo uno statement SQL
			Statement SQLStatement =
DBConnection.createStatement ();
			// Creiamo la tabella
			SQLStatement.executeUpdate (
				"CREATE TABLE Clienti (" +
				"	[Cognome] TEXT(32)," +
				"	[Nome] TEXT(32)," +
				"	[Telefono] INTEGER)" );
			// Riempiamo la tabella con dei valori
			SQLStatement.executeUpdate (
				"INSERT INTO Clienti (Cognome, Nome,
Telefono) VALUES ('Rossi', 'Luigi', 5551234)");
			SQLStatement.executeUpdate (
				"INSERT INTO Clienti (Cognome, Nome,
Telefono) VALUES ('Bianchi', 'Paolo', 5554321)");
			SQLStatement.executeUpdate (
				"INSERT INTO Clienti (Cognome, Nome,
Telefono) VALUES ('Costabile', 'Michele', 5552341)");
			SQLStatement.executeUpdate (
				"INSERT INTO Clienti (Cognome, Nome,
Telefono) VALUES ('Verdi', 'Alfredo', 5553421)");
			SQLStatement.executeUpdate (
				"INSERT INTO Clienti (Cognome, Nome,
Telefono) VALUES ('Grigi', 'Carmine', 5559876)");
			// Stampiamo il contenuto della tabella
			ResultSet result_set =
SQLStatement.executeQuery (
				"SELECT * FROM Clienti" );
			// Stampiamo i risultati
			dispResultSet (result_set);
			// Chiudiamo tutto quello che abbiamo aperto
			result_set.close();
			SQLStatement.close();
			DBConnection.close();
		}
		catch (SQLException e) {
			System.out.println ("\n*** SQLException
***\n");
			while (e != null) {
				System.out.println ("SQLState: " +
					e.getSQLState ());
				System.out.println ("Message:  " +
					e.getMessage ());
				System.out.println ("Vendor:   " +
					e.getErrorCode ());
				e = e.getNextException ();
				System.out.println ("");
			}
		}
		catch (java.lang.Exception e) {
			// C'è stata un'exception di altro tipo, diamo
qualche
			// indicazione utile stampando un trace dello
stack
			e.printStackTrace ();
		}
	}
//-------------------------------------------------------------------
	// Stampa eventuali warning
//-------------------------------------------------------------------
	private static boolean checkForWarning (SQLWarning warn)
			throws SQLException
	{
		boolean rc = false;
		// If a SQLWarning object was given, display the
		// warning messages.  Note that there could be
		// multiple warnings chained together
		if (warn != null) {
			System.out.println ("\n *** Warning ***\n");
			rc = true;
			while (warn != null) {
				System.out.println ("SQLState: " +
					warn.getSQLState ());
				System.out.println ("Message:  " +
					warn.getMessage ());
				System.out.println ("Vendor:   " +
					warn.getErrorCode ());
				System.out.println ("");
				warn = warn.getNextWarning ();
			}
		}
		return rc;
	}
//-------------------------------------------------------------------
	// Stampa i risultati di una query
//-------------------------------------------------------------------
	private static void dispResultSet (ResultSet QueryResultSet)
		throws SQLException
	{
		int i;
		// Recupera i meta dati sulla query
		ResultSetMetaData RSMetaData =
QueryResultSet.getMetaData ();
		// Dai meta dati sappiamo il numero di colonne ...
		int numCols = RSMetaData.getColumnCount ();
		// ... e anche le intestazioni delle colonne
		for (i=1; i<=numCols; i++) {
			if (i > 1) System.out.print(",");
System.out.print(RSMetaData.getColumnLabel(i));
		}
		System.out.println("");
		// Ripetiamo finchè ci sono righe nell'output
		while (QueryResultSet.next ()) {
			// e stampiamo tutte le colonne
			for (i=1; i<=numCols; i++) {
				if (i > 1) System.out.print(",");
System.out.print(QueryResultSet.getString(i));
			}
			System.out.println("");
		}
	}
}
--------------------------------------------------------------------------------------------------------------------------------------------
Grazie anticipatamente:
Paolo

Facendo cut&paste sul messaggio e riordinando un po' le righe sono riuscito
a compilarlo senza problemi con jdk1.1
Ho creato il database indirizzi.mdb dal pannello di controllo/32bitODBC/DNS
utente
selezioni MS Access 97 Database e premo configura... nella sezione Database
premo Crea... ,scelgo la directory e do' il nome indirizzi.mdb.
Purtroppo nell'avvio mi ritorna un'eccezione che mi e' gia' capitata con
un'altro programma java:
Message: [Microsoft][ODBC Driver Manager] Nome fonte dati non trovato e
driver predefinito non specificato.
Per ora non ho idea del perche'.
Maurizio