PDA

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 ;)

shinya
15-10-2006, 20:18
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?

Angus
16-10-2006, 14:55
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?

Angus
17-10-2006, 15:52
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.

Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.