Progetto Prova Login 3 - di Brausi Giorgio - pubblicato il 2 ottobre 2011
Progetto Prova Login 3 è la terza versione di una mini applicazione di esempio che mostra come gestire un database MDB (access 2002-2003) in ambiente multi-utenza (LAN) utilizzando ADO 2.5.
Lo scopo di questo progetto è quello di fornire un supporto agli sviluppatori meno esperti nella progettazione di applicazioni database. (*)
In pratica è una sorta di progetto template che può essere usato come base di partenza per sviluppare le proprie applicazioni.
Il progetto può essere scaricato e modificato liberamente senza alcuna restrizione. L'autore declina ogni e qualsiasi responsabilità.
CONCORRENZA OTTIMISTICA
Nota: a causa di un banale errore, nella precedente versione le violazioni di concorrenza erano segnalate solo sotto alcune circostanze; ora le violazioni sono intercettate correttamente.
Per testare la concorrenza ottimistica (multi-utenza) eseguire i seguenti passi:
- Compilare il progetto
- Avviare 2 sessioni del programma compilato avendo cura di connettervi :
- nella prima sessione con utente1 e password1
- nella seconda sessione con utente2 e password2
- Dall'anagrafica Clienti aprire lo stesso record in entrambe le sessioni
- Modificare e salvare i dati nell'ultima sessione aperta con utente2 (la seconda)
- Ora modificare i dati e salvare nella prima sessione aperta con utente1.
- Un messaggio segnalerà che la modifica non è permessa perchè i dati sono già stati modificati dall'utente2.
Per poter modificare i dati è necessario ricaricare i dati originali dal database (pulsante Aggiorna).
Novità della versione 3.0
Rispetto alla precedente, la versione 3 include diverse novità e modifiche:
- Opzioni (frmOptions.frm)
nuovo form per la configurazione del programma.
- ClsImageControls
classe la per caricare immagini PNG e ICO a 32bit, possibilità di impostare il margine (vedi SetMargin)
- modGDIPlusResize
modulo per caricare immagini PNG e ICO a 32bit con possibilità di resize dell'immagine
, oppure di indicare la dimensione (width e height)
- clsPDFCreator
classe per generare documenti PDF
- modHighlight
modulo per evidenziare il controllo attivo con un bordo colorato, ora configurabile (vedi le Opzioni)
- modOS
modulo per ottenere informazioni sul sistema operativo.
- Immagini varie
nella cartella \images sono presenti le immagini che sono caricate a run-time
N.B. Alcune immagini sono visibili solo nel programma compilato (EXE).
- frmMain
La routine EsportaClientiInExcel() permette ora di indicare il nome del foglio da creare.
La nuova routine EsportaPDF() consente di creare l'elenco clienti in formato PDF (senza OCX/DLL esterni).
- frmLogin
- Aspetto più gradevole
- Mostra informazioni sul sistema operativo (pulsante OS Info)
- Mostra finestra in primo piano
- Mostra pulsante sulla barra applicazioni
- Possibilità di vedere la password in chiaro
- frmCliente
nella routine GetDataFromClass() è stata aggiunta la chiamata a AggiornaGrigliaAnagrafica(), così da ricaricare i dati anche nella griglia (se aperta)
- CIniManag
Nella routine FinestraLeggiPosizione() ripristina la finestra al centro, in caso di valori negativi di Left e Top.
- modDatabase
Nella routine ExportExcel() è stato aggiunto il parametro opzionale 'sNomeFoglio' per consentire di indicare il nome del foglio da creare.
Modifiche della versione 3.0
- frmGriglia
Il DataGrid non si ridimensionava correttamente in altezza. Corretto.
- clsClienti
La routine SaveData() non sempre intercettava le violazioni di concorrenza. Corretto.
(*) Per sviluppare nuove applicazioni raccomando di utilizzare .NET in quanto molto più potente e flessibile.
Ho in programma (tempo permettendo) di sviluppare una versione di Prova Login per .NET, probabilmente con la versione di Visual Studio 2011 (di prossima uscita).