Ho un problema...JDBC è rotto![]()
Battute ha parte, ho la necessita di ottenere una serie di informazioni (es: se la colonna di una tabella è chiave/indice) da diversi Db (es: Postgre, DB2, ecc..) e non conoscendo librerie particolari che facciano ciò, ho deciso di affidarmi alla vecchia e cara JDBC.
Immagino che queste informazioni si trovino nel catalogo del Db in questione e la prima cosa che ho cercato di fare è ottenere la lista dei cataloghi presenti.
Il problema è che non ci sto riuscendo![]()
Ho provato prima con:
..ma restituisce il nome dell'istanza del database..codice:ResultSet listaCataloghi = con.getMetaData().getCatalogs(); while(listaCataloghi.next()) System.out.println("TABLE_CAT - " + listaCataloghi.getString("TABLE_CAT"));
Allora ho provato con:
TABLE_SCHEM l'ho messo giusto per vedere se da getSchemas arivassero informazioni corrette, infatti arrivano i nomi degli Schema. Il dubbio mi è venuto perchhè invece da TABLE_CATALOG non ottengo nulla...nemmeno "null"... mi dice direttamente:codice:ResultSet listaCataloghi = con.getMetaData().getSchemas(); while(listaCataloghi.next()) System.out.println("TABLE_SCHEM - " + listaCataloghi.getString("TABLE_SCHEM")); while(listaCataloghi.next()) { System.out.println("TABLE_CATALOG - " + listaCataloghi2.getString("TABLE_CATALOG")); }
org.postgresql.util.PSQLException: Colonna denominata «TABLE_CATALOG» non è presente in questo «ResultSet».
Eppure mi sto basando sulle api corrette ovvero:
http://download.oracle.com/javase/1....tSchemas%28%29
Ho provato infine a passare da una tabella facendo:
ma questa volta dove mi aspetto le info del catalogo, mi arriva effettivamente null.codice:ResultSet WSrs = con.getMetaData().getTables(null, schema, tableName, null); while(WSrs.next()) System.out.println("TABLE_CAT - " + WSrs.getString("TABLE_CAT"));
Ora non so più che fare.....![]()
Potete darmi una mano????![]()
Grazie mille!!!

Rispondi quotando
