Paolo Mantovani wrote:
L'idea è questa:
A me pero' sorge un ragionevole dubbio, esporto una tabella ma poi devo
importare i dati contenuti in un' altra tabella presente nel DB, non e'
che poi importo l' intera tabella esterna e me la ritrovo interna.
Con mysql mi sono servite solo poche righe di codice per fare ste cose
ma mi sa che con HSQL mi sto incartando, ho scaricato un manuale HSQL ma
non ho visto la possibilita' di fare Select into outfile...
1. Fai la query per creare la tabella (esattamente come fai ora):
oRecordSet = oStatement.executeQuery( _
"SELECT * INTO TEXT ""mytemptable"" FROM ""tabella1""")
1. I record da inserire sono frutto di un risultato di un 'altra query,
quindi serve un modo per farlo in un colpo solo.
2. A questo punto, il file csv è stato creato e popolato con i dati.
Siccome si tratta di una tabella linkata al database, dovrai copiare o
appendere il contenuto in un altro file che avrai creato appositamente.
2. Pensavo semplicemente di rinominare il file :-) eh!! che dici.
3. Ora è il momento di fare pulizia:
oStatement.execute("DROP TABLE""mytemptable"" IF EXISTS")
Ottimo, semplice, efficace.
In questo modo il file non è più linkato al database, ma comunque non è stato
eliminato dal file system, perciò dovrai farlo manualmente, diversamente, la
prossima volta che creerai la tabella si genererà un errore.
(esempio stupido):
kill "file:///home/paolo/mytemptable.csv"
Se rinimino il file questo passaggio lo salto
Ovviamente tu dovrai eliminare il file in un modo più intelligente, in
particolare dovrai ricavare il path del file csv dal path del documento Base
e magari fare anche un controllo di esistenza del file prima di eliminarlo.
Beh!! il path del documento ormai ho impararto a ricavarlo, se ne
parlava qualche tempo fa' sul NG. Penso che mi servira' se rinomino il file.
Ricorda che il nome del file creato non è sempre identico al nome usato nella
query (nome nuova tabella), in particolare, il file è sempre in minuscolo,
anche se il nome della nova tabella contiene maiuscole, inoltre, tutti i
caratteri non alfanumerici nel nome della tabella vengono tradotti come
sottotratti (_)
Ad esempio, la query:
SELECT * INTO TEXT "My Temp-Table" ... eccetera
crea il file: my_temp_table.csv
Buono a sapersi.
Comunque, arrivato a questo punto il tuo DB è pulito e lindo come all'inizio e
sei pronto per una nuova operazione.
Speremus, sta cosa mi sfava parecchio ( sfavare = piacere molto) dare la
possibilita' di scambiarsi le ricette mi sembra una cosa utile e carina.
spero di essere stato aiutevole
Che dire, essenziale e' dire poco visto che in questi anni gli inghippi
me li hai risolti tu.
Molte grazie Jack
--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor:
Pubblicita' con l'email marketing a soli 250 Euro! Prova il servizio di
Email.it gli specialisti del settore
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=7179&d=3-11
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]