Dovresti poterlo fare dando da riga di comando qualcosa tipo dump NOME_FILE_DB '.dump'
.
Cercando su internet ho anche trovato un modo un po' più sofisticato:
echo '.dump' | sqlite3 NOME_FILE_DB | gzip -c >NOME_FILE_DB.dump.gz
In questa maniera hai anche il file risultante già compresso ;-)
Dovresti poterlo fare dando da riga di comando qualcosa tipo dump NOME_FILE_DB '.dump'
.
Cercando su internet ho anche trovato un modo un po' più sofisticato:
echo '.dump' | sqlite3 NOME_FILE_DB | gzip -c >NOME_FILE_DB.dump.gz
In questa maniera hai anche il file risultante già compresso ;-)
Quindi dovrei richioamare nel programma la shell con un comando come da esempio tuo. :-\
Intanto ho provato di eseguire il comandop direttamente nella shell e:
1) Il tuo primo esempio debbo approfondirlo perchè così non funziona, ma tu infatti hai scritto qualcosa tipo ...
2) Siccome il file compresso a me non interessa, ho provato a scrivere:
echo '.dump'| percorso/ContabFam.db /percorso/FileSeq.txt
ma ho sbagliato ragionamento perchè ho ottenuto:
bash: percorso/ContabFam.db: cannot execute binary file
Rivedendo però il tuo esempio, ho visto che nel mio comando mancava la parola-chiave "sqlite3"; allora ho ripetuto il comando con la modifica:
echo '.dump'| sqlite3 percorso/ContabFam.db /percorso/FileSeq.txt
ma ho ricevuto la rispostaccia: Error: near "/": syntax error
Dai risultati ottenuti, sembrerebbe che entrambi i comandi abbiano bisogno di qualche parametro aggiuntivo. Devo studiarci un pò sopra.
Comunque, grazie.
Ciao.
Grazie Leo, ha funzionato benissimo. Dopo la prima prova ho aggiunto il comando di reindirizzamento su file, in modo da tenerlo sempre disponibile per un'eventuale lettura/trattamento:
/$ sqlite3 percorso/NomeDb '.dump' | col > percorso/DumpDb.txt
Trovato il comando di produzione del dump, ora devo studiare su come svolegere tutto questo da programma. Mi pare che già esista qualche discussione sull'utilizzo della shell i dentro un programma Gambas. Ti farò sapere. :D :D
Ciao.
Bellissimo; ce l'ho fatta. ;D ;D
È stato facilissimo, non immaginavo di ottenere un risultato ottimale in così pochissimo tempo. Ecco l'istruzione inserita in prova nel programma:
SHELL ("sqlite3 percorsoinput/ContabFam.db '.dump'| col > percorsooutput/DumpDb.txt")
Non mi resta che posizionarla nel punto giusto.
Grazie, grazie, grazie!
;D ;D
Ciao ancora.
Una semplice soluzione è quella di richiamare quel comando così:
SHELL ("sqlite3 percorso/NomeDb '.dump' | col > percorso/DumpDb.txt") WAIT
Con il WAIT finale ti assicuri che il controllo non torni a Gambas fintanto che quel comando non è stato eseguito. Puoi magari anche metterci un "TRY" davanti e controllare un eventuale errore dopo così da assicurarti che tutto sia filato liscio:
TRY SHELL ("sqlite3 percorso/NomeDb '.dump' | col > percorso/DumpDb.txt") WAIT
IF ERROR THEN
Message.Warning("Attenzione! Errore!")
ENDIF
TRY SHELL ("sqlite3 percorso/NomeDb '.dump' | col > percorso/DumpDb.txt") WAIT
IF ERROR THEN
Message.Warning("Attenzione! Errore!")
ENDIF
Meglio ancora sarebbe
TRY SHELL ("sqlite3 percorso/NomeDb '.dump' | col > percorso/DumpDb.txt") WAIT
IF ERROR THEN
Message.Warning("Errore")
PRINT Error.Text
ENDIF
Così nel terminale ti scrive per bene l'errore preciso che si è presentato...