Sì, sì :)
PUBLIC SUB Button1_Click()
'Chiusura del programma
db.Commit
db.Close
ME.Close
END
Ecco la parte di codice interessata...
'Se il record esiste, lo aggiorno
IF hInterventi.Available = TRUE
Int2File(hInterventi)
END IF
'Se il record non esiste, lo aggiungo
IF hInterventi.Available = FALSE
db.Begin
hInterventi = db.Create("Interventi")
Int2File(hInterventi)
END IF
hInterventi.Update
db.Commit
Ho notato che durante l'elaborazione viene creato un file che si chiama "NomeDelDataBase.journal" (o qualcosa del genere), e che sparisce quando chiudo il programma... Ho provato a verificare cosa capita quando faccio delle modifiche al DB, ma sul file "originale", anche dopo la commit, la modifica non si vede. Eppure se vado a richiamare lo stesso record lo vedo modificato, come se prendesse i dati da qualche parte temporanea... :o
Int2File() si limita a spostare i dati dal video al file, c'è anche File2Int, che fa l'operazione contraria. Ho fatto una coppia di funzioni per ogni file interessato. Mi pare che la funzione non ci sia molto da sbagliare, in ogni caso eccola :)
PUBLIC SUB Int2File(hData AS result)
hData!prgKey = KeyInterventi.Text
hData!dtIntervento = (dtIntervento.value)
hData!intProgetto = CodiceProgetto(cbProgetti.Text)
hData!TempoImpiegato = Val(TempoOre.text)
hData!Note = txDescrizione.Text
hData!intTrasferta = cbTrasferta.Value
hData!intTariffa = TariffaUnaTantum.Value
'Se la data di fatturazione non è indicata, ci metto la data intervento
IF IsNull(dtFatturazione.value) THEN
hData!dtFatturazione = (dtIntervento.Value)
ELSE
hData!dtFatturazione = (dtFatturazione.value)
END IF
END
Come vedi c'è veramente poca roba.
Non sapevo la cosa del rollback automatico, interessante :)