Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Aiuto SQL

0 views
Skip to first unread message

ProgHettoLab

unread,
Nov 16, 2002, 10:55:58 AM11/16/02
to
Perchè questo codice viene compilato e poi in esecuzione con Forte4Java non
eseguito? (In DSN utente l'origine è MSAccess)

Grazie
pMB
www.proghettolab.it

// file EsempioJDBC.java

import java.sql.*;

public class EsempioJDBC {

public static void main(String args[]) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
System.out.println(e.toString());
System.out.println("Il driver non può essere caricato.");
System.exit(1);
}
try {
Connection conn =
DriverManager.getConnection("jdbc:odbc:impiegati","","");
Statement stmt = conn.createStatement();
ResultSet rs= stmt.executeQuery("SELECT nomi FROM impiegati");
while(rs.next()) {
System.out.println(rs.getString("nome"));
}
rs.close();
stmt.close();
conn.close();
} catch (SQLException se) {
System.out.println(se.getMessage());
se.printStackTrace(System.out);
System.exit(1);
}
}

}

Gli errori sono:

java.lang.NoClassDefFoundError: VRML/Java_EAI/EsempioJDBC (wrong name:
EsempioJDBC)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:493)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:111)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
Exception in thread "main"

ProgHettoLab

unread,
Nov 16, 2002, 11:02:41 AM11/16/02
to
Ah, dimenticavo ... uso "per forza" la JavaVM e non la Java(sun) perchè solo
con quella posso interfacciare i mondi virtuali in VRML con Java.


ProgHettoLab

unread,
Nov 16, 2002, 11:17:09 AM11/16/02
to
Ho cambiato il nome del file e quindi della classe in EsempioDB.java però
ritorna:

[Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver
predefinito non specificato.
java.sql.SQLException: [Microsoft][Driver Manager ODBC] Nome origine dati
non trovato e driver predefinito non specificato.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6031)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6188)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(JdbcOdbc.java:2458)
at
sun.jdbc.odbc.JdbcOdbcConnection.initialize(JdbcOdbcConnection.java:320)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:163)
at java.sql.DriverManager.getConnection(DriverManager.java:517)
at java.sql.DriverManager.getConnection(DriverManager.java:177)
at VRML.Java_EAI.EsempioDB.main(EsempioDB.java:23)

Dan

unread,
Nov 18, 2002, 4:50:44 AM11/18/02
to
L'errore che ti spara fuori è abbastanza indicativo.

Risolvi il problema creando una risorsa ODBC col nome che usi nel codice
("impiegati") e associando a quel nome il DB Access (forse impiegati.mdb).
Controlla bene la stringa passata al DriverManager....credo di ricordare che
basta "impegati".

I hope this helps.
Dan.


ProgHettoLab

unread,
Nov 18, 2002, 6:26:37 AM11/18/02
to
In effetti qualcosa che non andava c'era: il nome della fonte dei dati non
coincideva con "impiegati" ma avevo scritto "EsempioDB" pensando che fosse
solo indicativo.
Ora però mi dà quest'altro errore:

[Microsoft][Driver ODBC Microsoft Access] Parametri insufficienti. Previsto
1.
java.sql.SQLException: [Microsoft][Driver ODBC Microsoft Access] Parametri
insufficienti. Previsto 1.


at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6031)
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6188)

at sun.jdbc.odbc.JdbcOdbc.SQLExecDirect(JdbcOdbc.java:2494)
at
sun.jdbc.odbc.JdbcOdbcStatement.execute(JdbcOdbcStatement.java:334)
at
sun.jdbc.odbc.JdbcOdbcStatement.executeQuery(JdbcOdbcStatement.java:249)
at VRML.Java_EAI.EsempioDB.main(EsempioDB.java:25)

e la linea 25 è


ResultSet rs= stmt.executeQuery("SELECT nomi FROM impiegati");

Perchè i parametri sono insufficienti?
Dov'è l'errore?

Grazie ancora!
pMB
www.proghettolab.it


Dan <dno...@supereva.it> wrote in message
aracvi$lfe$1...@fata.cs.interbusiness.it...

Dan

unread,
Nov 19, 2002, 11:00:02 AM11/19/02
to
> ResultSet rs= stmt.executeQuery("SELECT nomi FROM impiegati");
>
> Perchè i parametri sono insufficienti?
> Dov'è l'errore?

Molto strano.....
L'unica cosa che mi viene in mente è che la query sia sbagliata!
Prova a controllare che nel DB esista una tabella "impiegati" con un campo
"nomi".
I db solitamente non sono case sensitive quindi la querycome l'hai scritta
tu dovrebbe essere corretta.

Ah, un'altra cosa: per correttezza il campo dovrebbe chiamarsi "nome" e non
"nomi".

0 new messages