Connessione a database access

lunedì 05 aprile 2010 - 09.40

kromax Profilo | Newbie

Salve, ho un'applicazione in vb.net. Fino ad ora arivo una connessione al database per accedere ai dati, modificarli ed aggiornarli in diverse parti del programma. L'applicazione è installata su una decina di pc che accedono al db con una connessione ODBC. La domanda è semplice: conviene aprire e chiudere una connessione per ogni operazione sul database o aprire la connessione nel form.load e chiuderla all'uscita?
Grazie in anticipo a tutti.

kataklisma Profilo | Senior Member

>Salve,
Ciao!

>ho un'applicazione in vb.net. Fino ad ora arivo una connessione
>al database per accedere ai dati, modificarli ed aggiornarli
>in diverse parti del programma. L'applicazione è installata su
>una decina di pc che accedono al db con una connessione ODBC.
>La domanda è semplice: conviene aprire e chiudere una connessione
>per ogni operazione sul database o aprire la connessione nel
>form.load e chiuderla all'uscita?
>Grazie in anticipo a tutti.
I database access hanno problemi che riguardano le connessioni multiple e concorrenti.
Ti conviene, a mio parere, esportare il db access su piattaforma sqlserver, in quanto la tua applicazione risulta essere distribuita su un alto numero di pc.

Utilizzando la versione express di sqlserver il passaggio è gratuito e usufruiresti di funzioni non implementate in access!
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

kromax Profilo | Newbie

Intanto grazie per la risposta.
Sto già facendo la migrazione verso SQLServer, ma nel frattempo....
Inoltre è vero come ho scritto che i pc sono un numero elevato, ma - trattandosi di un'applicazione legata ad eventi congressuali - è possibile che spesso i pc collegati siano non più di 3/4.
Inoltre la domanda non cambia: è meglio creare ed aprire una connessione da lasciare aperta e sfruttare per ogni singola transazione o aprire e chiudere la connessione per ogni transazione?
Se non sbaglio, qualunque sia la fonte dati la problematica rimane la stessa.
Grazie ancora.

kataklisma Profilo | Senior Member

>Intanto grazie per la risposta.
Di niente ;)

>Sto già facendo la migrazione verso SQLServer, ma nel frattempo....
>Inoltre è vero come ho scritto che i pc sono un numero elevato,
>ma - trattandosi di un'applicazione legata ad eventi congressuali
>- è possibile che spesso i pc collegati siano non più di 3/4.
>Inoltre la domanda non cambia: è meglio creare ed aprire una
>connessione da lasciare aperta e sfruttare per ogni singola transazione
>o aprire e chiudere la connessione per ogni transazione?
>Se non sbaglio, qualunque sia la fonte dati la problematica rimane
>la stessa.
Beh, se vogliamo proprio precisare, a questo punto non posso dirti che architetturalmente parlando una progettazione client server con esposizione di servizi (vedi wcf) sarebbe stata l'ideale, in quanto avresti gestito una, ed una sola connessione al db da parte dell'application server.

Resta il fatto che a mio parere, sarebbe meglio aprire una connessione e chiuderla a fine programma, ANCHE per una questione di pulizia del codice.
Non ci sono particolari problemi nell'aprire e chiudere la connessione ma ci sarebbe un invio di richieste al DB a mio parere inutile.

Se hai fatto questa domanda probabilmente stai pensando di riprogettare parte del data layer e ti consiglierei vivamente, visto il passaggio a SqlServer, di dare un'occhiata a LinQ!

>Grazie ancora.
Di niente, siamo qui per questo!
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/

kromax Profilo | Newbie

La mia domanda scaturisce da un comportamento anomalo che si sta verificando sempre più frequentemente. Ogni tanto (per ora posso solo constatare un comportamento casuale) si verifica un errore che mi avverte che il DB è stato aperto in modo esclusivo da un altro utente.
Non riesco a capire cosa stia succedendo, anche perché il codice di errore è molto generico (ERRORE MI0006) e le ricerche non hanno portato ad informazioni utili.
Ho deciso allora di aprire e chiudere le connessioni ogni volta che devo fare un accesso al DB e sembra, almeno per ora, che il problema sia risolto.
Devo per forza continuare ad utilizzare questa modalità di accesso mentre finisco la migrazione ad SQL.... e sono preoccupato per il funzionamento.
Ad ogni modo grazie per le informazioni.
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5