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
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Ottimizzare Utilizzo SQL nel proprio codice
sabato 29 settembre 2007 - 11.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Ghitano
Profilo
| Newbie
35
messaggi | Data Invio:
sab 29 set 2007 - 11:03
Un problema concettuale importante,
quando aprire una connessione al database nel programma e quando chiuderla?
es: nel mio gestionale il programma sta aperto nella schermata di vendita per ore e ore
apro la connessione in form_load e la chiudo quando esco dal form?
mentre in Anagrafica di magazzino potrei aprirla e chiuderla solo quando serve per craere e salvare l'articolo
qualcuno mi aveva suggerito di aprire la connessione al database all'avvio del programma per chiuderlo solo alla chiusura dell'intero programma, ma il mio vecchio gestionale dopo queste modifiche (consideriamo comunque che girava con Access) cominciava a dare problemi (a volte non venivano salvate tutte le operazioni di vendita credo per problemi di time out nella scrittura).
in vendita potrei utilizzare un dataset e salvare le modifiche alla fine
ma il programma lavora anche in rete con più postazioni
e dunque i dati debbono essere aggiornati a ogni transazione di vendita.
Suggerimenti...?
Ghitano BitBoys
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 29 set 2007 - 11:14
Ciao,
in .NET ci sono due modalità di operare con i database: connessa e disconnessa.
Io normalmente utilizzo i DataSet attraverso i quali viene sostanzialmente creata una copia lato client del datatable, e la connessione del database avviene solo per eseguire il FILL della tabella e per effettuare l'UPDATE. Poi sarai tu a decidere ogni quanto eseguire l'UPDATE in base alle tue esigenze.
Comunque non sono assolutamente daccordo con la soluzione di tenere sempre aperta la connessione fino alla chiusura dell'applicativo. Il Dataset ti dà maggiori performance a livello di accesso ai dati e interagisce perfettamente con tutti gli oggetti e controlli di Visual Studio.
Se ti può essere utili, nel mio blog (trovi il link qui sotto), trovi una classe bella e pronta per la gestione degli accessi ai database sia in modalità connessa che disconnessa.
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
Ghitano
Profilo
| Newbie
35
messaggi | Data Invio:
sab 29 set 2007 - 11:40
Daccordo, ma ti faccio l'esempio del mio gestionale
dove ci sono due postazioni di cassa che lavorano contemporaneamente e una postazione in ufficio dove l'amministratore controlla il magazzino e inserisce e modifica articoli, ordini e, carica fatture
con i dataset devo comunque aprire un dataset quando inizio la transazione di vendita per chiuderlo quando premo il tasto scontrino, è un continuo apri e chiudi
altrimenti c'è il rischio che tre postazioni intervengano nella modifica delle quantità dello stesso articolo e il risultato sia un disastro.
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 29 set 2007 - 14:34
Non vedo il problema nel continuo apri/chiudi!
http://blogs.dotnethell.it/alebadalin
Ghitano
Profilo
| Newbie
35
messaggi | Data Invio:
sab 29 set 2007 - 15:47
Non credi che produca un deperimento di prestazioni?
Ghitano BitBoys
SSUPERPIPPO
Profilo
| Guru
1.095
messaggi | Data Invio:
sab 29 set 2007 - 15:56
Se l'apertura e chiusura è veramente così frequente allora devi per forza lavorare in modalità connessa.
Ti colleghi all'apertura del form e ti scolleghi alla chiusura dello stesso.
Non che personalmente mi piaccia molto... inoltre perdi i vantaggi del DataSet...
La decisione è tutta tua...
Ciao
Alessandro
http://blogs.dotnethell.it/alebadalin
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 !