Autore Topic: query sqlite3  (Letto 5622 volte)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #30 il: 05 Maggio 2008, 22:07:45 »
si forse è la cosa migliore, del resto non è troppo difficile una voltas che si sa che tipo di separatori vengono utilizzati

g.paolo

  • Visitatore
Re: query sqlite3
« Risposta #31 il: 05 Maggio 2008, 22:12:19 »
Esatto! Visto che la importo da Access in un file .xls, poi la salvo in formato testo separato da TAB, visto che nei testi le virgole e punti e virgola sono troppo comuni.
Ci ho gia provato con successo, il problema era solo quello di creare la struttura della table, perchè con una gia strutturata la cosa l'ho gia realizzata.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #32 il: 05 Maggio 2008, 22:15:51 »
allora sei a cavallo!!!

g.paolo

  • Visitatore
Re: query sqlite3
« Risposta #33 il: 05 Maggio 2008, 22:20:33 »
Grazie di nuovo e buon lavoro!

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #34 il: 05 Maggio 2008, 22:23:07 »
di nulla ! ciao ciao

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #35 il: 05 Maggio 2008, 22:46:06 »
una piccola precisazione:

probabilmente in un db di kexi si può creare tabelle con gambas solo che queste non vengono visualizzate da kexi in quanto non presenti nel suo sistema di indice di progetto

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: query sqlite3
« Risposta #36 il: 06 Maggio 2008, 17:46:10 »
Posso suggerire un gestore di DB SQLite3 che non mi ha mai dato problemi? Knoda.
Visita il mio sito personale: http://www.leonardomiliani.com

g.paolo

  • Visitatore
Re: query sqlite3
« Risposta #37 il: 06 Maggio 2008, 20:23:49 »
Grazie leo, lo proverò senza dubbio.
Dopo aver abbandonato definitivamente kexi che si è dimostrato alquanto "inaffidabile" per un uso con gambas, si pone senza dubbio il problema di trovare qualcosa che lo sostituisca che sia veramenete valido.
Sqlitebrowser è molto semplice ed affidabile a quanto pare, ma forse knoda ha qualche funzione in più? Vediamo!

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #38 il: 06 Maggio 2008, 20:31:28 »
secondo me se si deve manipolare solo sqlite è preferibile sqlitebrowser (ho notato che in ubuntu 8.4 è presente nei reposity)mi sempra molto più semplice e supporta anche l' importazione di file cvs e txt.
ho avviato knoda ma mi accetta solo db mysql non riesco a impostarlo per i db sqlite

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #39 il: 06 Maggio 2008, 20:35:15 »
posto questo messaggio qui per non aprire un nuovo post.

oggi ho trovato questa query sql per otteere l' elenco delle tavole di un db sqlite

Codice: [Seleziona]
"SELECT name, sql FROM sqlite_master WHERE type='table' ORDER BY name;"


qualcuno sa invece la query per ottenere l' elenco dei field di una tavola?

ho provato con

Codice: [Seleziona]
"PRAGMA TABLE_INFO(nome tavola);"


ma sembra non funzionare!

g.paolo

  • Visitatore
Re: query sqlite3
« Risposta #40 il: 06 Maggio 2008, 21:24:21 »
Ma non conviene usare un ciclo  tipo "For each campo in fields"
per trovare i nomi dei campi?

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #41 il: 06 Maggio 2008, 21:46:31 »
l' idea sembra buona ma realizzarla in pratica ? :-)

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: query sqlite3
« Risposta #42 il: 07 Maggio 2008, 00:11:21 »
Per attivare Knoda per gestire tutti i DB più diffusi bisogna installare le rispettive librerie libhk-classes-NOMEDB (esempio: libhk-classes-sqlite3, libhk-classes-sqlite, libhk-classes-postgres ecc...).
Visita il mio sito personale: http://www.leonardomiliani.com

g.paolo

  • Visitatore
Re: query sqlite3
« Risposta #43 il: 07 Maggio 2008, 07:50:55 »
@fsurfing
Questa routine funziona come vuoi tu, basta solo che cambi il nome della tabella e del DB e che la adatti al tuo scopo. ciao!

Codice: [Seleziona]
PUBLIC SUB nomi_campi()                                   
'---------------------------------------------------------------------------------------
    'stampa in console i nomi campo di una table
'---------------------------------------------------------------------------------------
 DIM connessione AS NEW Connection      
 DIM campo AS Integer
 DIM result AS Result
 DIM nomeDB as String="tuoDB"              
    INC Application.Busy
    WITH connessione
    .Name = user.home & nomeDB                   'percorso e nome del file di database sqlite3
    .Type = "sqlite3"
    .OPEN
    .Begin
       result = .Exec("select tuatable.* from tuatable")
       campo = 0                                                'reset contatore di posizione campo  
        FOR EACH result.Fields                        'cicla sui campi
            PRINT result.Fields[campo].name & " ";                      
            INC campo                                           'indice di campo
        NEXT
    .Commit
    END WITH 'connessione
    connessione.Close
    DEC Application.Busy
CATCH
    Message.Error(Error.Text)
    connessione.Close
END


Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: query sqlite3
« Risposta #44 il: 07 Maggio 2008, 11:59:40 »
grazie mille funziona alla grande! non ci avevo pensato ! :-)



c'è solo un piccolo errore nella linea:
Codice: [Seleziona]
result = .Exec("select tuatable.* from tuatable") 


che deve essere corretto con:

Codice: [Seleziona]
result = .Exec("select * from tuatable")