Gambas-it
Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: andy60 - 09 Settembre 2010, 10:12:03
-
Conviene di più aprire e chiudere la connessione al db quando serve oppure creare una classe che apre la connessione e la chiude e tiene in memoria i recordset che servono?
-
Non è una questione di convenienza, ma di logica applicata.
Di norma, per svariati motivi, si tende a aprire il db quel tanto che basta per scrivere o leggere, e richiuderlo subito ma, se a te serve mantenenrti il rowset, allora sei obbligato a tenerlo aperto, a meno che non crei un'oggettino (un array), su cui ti copy preventivamente i dati del rowset. A quel punto puoi pure chiudere il db.
-
secondo me se si utilizza sqlite potrebbe essere anche valido aprire la connessione una sola volta , per comodità,su mysql invece direi chè d'obbligo aprirla solo per lo stretto necessario, soprattutto se il db viene utilizzato in multiutenza
-
forse aprire il db all'inizio e lasciarlo aperto è la soluzione da fare (devo modificare il codice cmq) + veloce
-
Tieni però presente che sqlite si può considerare in definitiva come un file, quindi soggetto alle operazioni di bufferaggio del sistema.
Questo per dire che, se non viene chiuso, e accade qualcosa che interrompe il programma (un errore ad esempio), ti potresti perdere gli ultimi dati.
Non sò se e come sqlite lavori, ma data la sua semplicità, e dato che non trattasi di motore un vero e proprio rdbms, potresti incorrere in problemi.
I comandi di rollback e commit non escludono questa casistica.
-
Tieni però presente che sqlite si può considerare in definitiva come un file, quindi soggetto alle operazioni di bufferaggio del sistema.
Questo per dire che, se non viene chiuso, e accade qualcosa che interrompe il programma (un errore ad esempio), ti potresti perdere gli ultimi dati.
Non sò se e come sqlite lavori, ma data la sua semplicità, e dato che non trattasi di motore un vero e proprio rdbms, potresti incorrere in problemi.
I comandi di rollback e commit non escludono questa casistica.
adesso mi spaventi.... :-\ che in ogni caso il db devo aprirlo x salvare i dati...
-
In programmazione la prudenza non é mai troppa. Effettivamente, a prescindere da quale DB usi, aprire il DB, aggiornarlo e chiuderlo subito dopo, é senza ombra di dubbio la soluzione pratica più sicura per procedere tranquillo. Meglio quindi non lasciarte spazio a brutte ed inaspettate sorprese.
Ciao.
-
Era un consiglio andy... Non è il caso di spaventarsi... E anche dovuto all'esperienza, e ad una piccola mania nell'eccedere con i controlli... :P
Comunque, un IF in più non guasta mai...