Autore Topic: aprire un database sqlite  (Letto 7431 volte)

Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: aprire un database sqlite
« Risposta #15 il: 12 Giugno 2012, 17:23:32 »
Citazione
Ho creato un file 'gino.txt' posizionandolo nella 'home' , poi ho creato dei button2-3-4-5 con il codice allegato, funziona.... Nel 'file scrittura' (button3) va a scrivere tre righe(milano,roma,palermo),fin qui ci sono, poi nel 'file lettura' richiama sempre la prima (milano),non so il perchè..., ma scusa nel mio caso deve scrivere solo una riga
ti ho fatto un'esempio di scrittura di 3 righe, tu puoi scriverne quante ne vuoi..1 o 100000
la sub che va a leggere, legge le tre righe e ti manda il messaggio di lettura della prima riga  --- Message("il valore della riga1 è : " & riga1) 
Sono esempi per capire come funziona , sta a te gestirli come meglio ti pare.

Per il resto, ti ho già detto, prova e se non riesci scrivi quà il codice che hai scritto e che non funziona che vediamo dove non va, ok?

Offline fernando

  • Gambero
  • **
  • Post: 63
    • Mostra profilo
Re: aprire un database sqlite
« Risposta #16 il: 13 Giugno 2012, 18:38:31 »

Ciao
questo è il codice :
ma non scrive il nome dell'ultimo database aperto, scrive sempre 'prova'

Dim $hConn As New Connection
Dim filescrittura As String 
 Dim hfile As File   
   filescrittura = Application.Path & "/gino.txt" 
 If filescrittura Then 
 hfile = Open filescrittura For Create 
               Print #hfile, "prova"
              $hConn.Type = "sqlite3"
   $hConn.Host = Application.Path
   $hconn.Name = & sqlname
   $hconn.Open
 Close #hfile   
 Endif   
saluti

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: aprire un database sqlite
« Risposta #17 il: 13 Giugno 2012, 19:10:21 »
scusa se non ho letto tutta la discussione e quindi il mio intervento potrebbe cadere a sproposito...

ma perchè cerchi di aprire un file sqlite in quel modo con OPEN ??

se è un file sqlite trattalo come tale e utilizza la connessione a un database.

hai letto la guida per sqlite?
http://www.gambas-it.org/wp/?wpfb_dl=123

Offline fernando

  • Gambero
  • **
  • Post: 63
    • Mostra profilo
Re: aprire un database sqlite
« Risposta #18 il: 14 Giugno 2012, 08:40:00 »

Salve
Grazie per aver preso in considerazione il mio quesito (codice), ma il problema non è, aprire o meno con 'open' il database, perchè può essere anche un mio errore momentaneo di scrittura in quest post, ma è, far scrivere il nome dell'ultimo database aperto,per farlo ricordare alla riapertura del programma. Non so se hai seguito questa 'discussione' nel corso dei giorni, mi è stato anche allegato un esempio per il 'cambio db', cioè passare da un database all' altro nello stesso programma, un esempio allegato da milio,(modificato) della rubrica che aveva postato Golia tempo fa.
Cordiali saluti

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: aprire un database sqlite
« Risposta #19 il: 14 Giugno 2012, 20:27:13 »
per quello puoi usare settings


come sai , la connessione la stabilisci cosi:


Codice: [Seleziona]
   $hConn.Type = "sqlite3"
   $hConn.Host =percorsodb
   '$hconn.Name = & sqlname 'il name non serve se è già inserito nell' host
   $hconn.Open

quindi poni di avere tutti i db salvati nella carte lla database della tua home, quindi:


Codice: [Seleziona]
   $hConn.Type = "sqlite3"
   $hConn.Host =user.home & "/database/db1"
 
   $hconn.Open

così il programma aprirà sempre il db1.

se tu il nome del db lo memorizzi in una variabile , ad esempio nomedb, per ottenere quello che vuoi dovrai salvare il nome del db qunado chiudi il programma  con:

Codice: [Seleziona]
settings["db/nome"]=nomedb
settings.save

all' avvio del programma il metodo di connessione sarà:

Codice: [Seleziona]
  nomedb=settings["db/nome"]
   $hConn.Type = "sqlite3"
   $hConn.Host =user.home & "/database/" & nomedb
 
   $hconn.Open


naturalmente il problema si pone al priomo avvio in assoluto del programma, in quanto nel file settings non è acora memorizzato alcun nome , percui dovrai inserire un controllo per verificare che un nome esista , altrimenti viene creato un db iniziale

Offline fernando

  • Gambero
  • **
  • Post: 63
    • Mostra profilo
Re: aprire un database sqlite
« Risposta #20 il: 15 Giugno 2012, 20:23:52 »
Salve
Ho aggiunto al progetto il codice che hai suggerito, ma non ottengo quello che chiedo, allego tutto il progetto,
facendo notare che il codice da me inserito si trova nel button 'salva settaggio', e l'altro che dovrebbe 'ricordare'l'ultimo db aperto in  'Public Sub Form_Open()',
puoi gentilmente correggere queste poche righe di codice ? cosa ho sbagliato o mi msfugge ?
Tengo a precisare che  questo progetto che ho  allegato, mi è stato gentilmente suggerito, da questo forum.
Grazie anticipatamente
Cordiali saluti

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: aprire un database sqlite
« Risposta #21 il: 15 Giugno 2012, 20:50:25 »
forse dovresti soffermarti più sulle basi , poi iniziare a passare a cose più complesse, dal tuo codice ,mi sembra che non hai chiaro in mente differenze tra variabili globali e locali, cmq
ti allego un programma semplice che non utilizza moduli o altro , spero che sia semplice e ti permetta di capire come funziona il tutto, il programma permette di creare nuovi db, passare da un db all' altro , modificare i valori immessi cliccando sulla casella della griglia corrispondente , eliminare record cliccando sul numero id del record (sempre nella tabella),
naturalmente salva l' ultimo db in uso che al riavvio vene utilizzato
« Ultima modifica: 16 Giugno 2012, 12:52:19 da fsurfing »

Offline fernando

  • Gambero
  • **
  • Post: 63
    • Mostra profilo
Re: [RISOLTO]aprire un database sqlite
« Risposta #22 il: 19 Giugno 2012, 18:13:43 »

Salve
Scusate se in ritardo, ma finalmente posso scrivere 'risolto', grazie all'esempio di fsurfing.Il codice spero di poterlo inserire al più presto, così altre persone del forum potranno risolvere come ho risolto io. Una buona serata a tutto il forum.
Grazie...alla prossima.