Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
OleDbConnection metodo migliore per instanziare la connessione
giovedì 19 maggio 2011 - 15.08
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Access (.mdb)
whiteflash
Profilo
| Junior Member
83
messaggi | Data Invio:
gio 19 mag 2011 - 15:08
Volevo a chiedere sempre se c'è qualcuno che magari se ne intende di più di me,
se dichiarare la connection (OleDbConnection) al database è meglio farla:
1>Ogni finestra ha la sua connection dichiarata per conto suo e aperta/chiusa secondo le necessità
2>Una Connection dichiarata a livello globale, accessibile su tutto il progetto, che resta aperta affinchè l'applicazione non viene chiusa
Ho questo dubbio che mi tormenta da tempo, fino ad ora ho sempre lavorato con le connection divise (la prima soluzione)
poi ho notato che se ho 2 window con due connection aperte (una per window),
quando dalla win1, modifico i dati, e passo immediatamente alla win2 nella win2 per visualizzare i dati aggiornati deve passare un lasco di tempo,
se invece la connection è dichiarata globalmente questo non succede perchè l'istanza di connessione è la stessa.
Quello che mi domando è se dichiaro la connessione a livello globale,
c'è la possibilità che si chiuda da sola?
si può incappare in qualche problema di connessione durante l'uso del software?
---------------------------------------------
Newbie esperto VB.NET 2010 e WPF
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 19 mag 2011 - 15:14
>poi ho notato che se ho 2 window con due connection aperte (una
>per window),
>quando dalla win1, modifico i dati, e passo immediatamente alla
>win2 nella win2 per visualizzare i dati aggiornati deve passare
>un lasco di tempo,
>se invece la connection è dichiarata globalmente questo non succede
>perchè l'istanza di connessione è la stessa.
Non sono molto convinto di ciò che dici.
Sono convinto che invece il JET (.mdb) è molto scarso per questo tipo di applicazioni.
In generale OleDbConnection usa il pooling quindi il fatto che tu apri e chiudi connessioni è abbastanza ininfluenza.
http://msdn.microsoft.com/en-us/library/ms254502.aspx
Leggi il primo paragrafo dove parla di OleDb.
Praticamente il pooling fa sì che le connessioni possono essere riciclate man mano che sono chiuse.
Quindi la migliore soluzione è non una globale ma più connessioni.
Inoltre la strategia migliore è aprire una connessione e tenerla aperta per il minimo tempo necessario per poi chiuderla.
Avere una connessione aperta sempre secondo me è errato come approccio.
Ciao
David De Giacomi | <empty>
http://blogs.dotnethell.it/david/
whiteflash
Profilo
| Junior Member
83
messaggi | Data Invio:
gio 19 mag 2011 - 15:37
bene quindi come sto facendo va bene,
non sei il primo a dire che il jet mdb è scarso, ma ci sono una valanga di gestionali e programmi vari che la maggior parte come motore usa un db in access
fino ad ora non ho mai trovato un'alternativa a questo per caso tu ne conosci qualcuna?
---------------------------------------------
Newbie esperto VB.NET 2010 e WPF
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 19 mag 2011 - 15:43
>bene quindi come sto facendo va bene,
>non sei il primo a dire che il jet mdb è scarso, ma ci sono una
>valanga di gestionali e programmi vari che la maggior parte come
>motore usa un db in access
Beh, sì, non è detto che se tutti sbagliano dobbiamo sbagliare anche noi.
Dipende se sono gestionali mono-utente, multi-utente, seri o meno.
>fino ad ora non ho mai trovato un'alternativa a questo per caso
>tu ne conosci qualcuna?
In genere si può usare SQL Server Express che però devi installare sulla macchina o su un server, oppure SQL Server CE (Compact Edition) che non si installa, vedilo come un SQL Server in modalità .mdb (anche se è tutt'altra cosa perchè usa l'engine di SQL Server)
Ciao
David De Giacomi | <empty>
http://blogs.dotnethell.it/david/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !