View Full Version : [Java] Metadati delle tabelle di un DB
roby1483
15-10-2006, 13:18
Salve a tutti, ho fatto un programmino che sincronizza delle tabelle da un DB ad un altro e legge le tabelle da sincronizzare in un file XML. Adesso quando aggiungo una tabella al file XML devo creare manualmente la tabella nel DB destinazione e vorrei automatizzare la cosa. Con il ResultSetMetaData riesco a recuperare i tipi dalla tabella sorgente così da poter eseguire la create da programma però non riesco a sapere di quanti caratteri sono i campi testo. C'è un modo per ottenere questa informazione?
Grazie a tutti ;)
Probabilmente devi andare sulle tabelle di catalogo (information schema, data dictionary o come si chiama nel db che usi) del DB.
Che db usi? Se usi oracle forse posso aiutarti...
roby1483
15-10-2006, 20:48
Le tabelle le prendo da 4th Dimension e sinceramente non ne ho idea di quali siano le tabelle di sistema.
Cmq il tuo aiuto è stato prezioso, vedo di documentarmi un pò ma se sai qualcosa scrivi pure :D.
Grazie mille.
roby1483
16-10-2006, 14:04
Non ho trovato niente sulle tabelle di sistema di 4D, qualcuno può aiutarmi?
Non ho trovato niente sulle tabelle di sistema di 4D, qualcuno può aiutarmi?
DatabaseMetaData.getColumns(...) (http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DatabaseMetaData.html#getColumns(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String))
roby1483
17-10-2006, 09:29
DatabaseMetaData.getColumns(...) (http://java.sun.com/j2se/1.5.0/docs/api/java/sql/DatabaseMetaData.html#getColumns(java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String))
Grazie mille.
La colonna che mi dice la lunghezza dei campi dovrebbe essere la 7 ovvero COLUMN_SIZE giusto? Lo chiedo perchè mi restituisce sempre -1 su tutti i tipi di dato. E' possibile che nel driver JDBC per 4D non sia stata implementata la logica necessaria e che restituisca sempre -1?
Grazie mille.
La colonna che mi dice la lunghezza dei campi dovrebbe essere la 7 ovvero COLUMN_SIZE giusto? Lo chiedo perchè mi restituisce sempre -1 su tutti i tipi di dato. E' possibile che nel driver JDBC per 4D non sia stata implementata la logica necessaria e che restituisca sempre -1?
Purtroppo credo che sia possibile. Qui (http://www.4d.com/corporate/press_releases/pr031604_4d_jdbc.html) si afferma che assieme al driver compilato dovresti avere a disposizione i codici sorgenti: cerca lì la risposta.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.