Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Rendere una applicazione access 2007 "multiutente"

508 views
Skip to first unread message

martino954

unread,
Apr 28, 2010, 1:49:55 AM4/28/10
to
Per rendere la mia applicazione access 2007 "multiutente" (deve
esssere utilizzata da otto posti di lavoro, contemporaneamente), io ho
separato maschere, query, reports in un database che costituisce
l'applicazione e verrà installato su ogni pc e le tabelle collegate,
in un altro databse che verrà installato su una macchina server.
I sistemi operativi sono Windows xp o vista sia sulle macchine cliente
che sul server.
La domanda:
io, in ogni maschera che introduce i dati nuovi o li aggiorna o li
cancella, nella finestra delle proprietà, alla proprietà Blocco Record
ho scelto Record modificati.
Basta questa scelta per rendere l'applicazione "realmente multiutente"
o devo scrivere delle routine che prima di registrare un record vadano
a controllarne il contenuto con quello precedente e aggiornare solo se
non ci sono state variazioni prodotte nel frattempo da altri utenti?
In questo caso ci sono degli esempi?
Grazie
martino

maurizio bruni

unread,
Apr 28, 2010, 10:48:01 AM4/28/10
to
"martino954" ha scritto:

> io, in ogni maschera che introduce i dati nuovi o li aggiorna o li
> cancella, nella finestra delle proprietà, alla proprietà Blocco Record
> ho scelto Record modificati.
> Basta questa scelta per rendere l'applicazione "realmente multiutente"
> o devo scrivere delle routine che prima di registrare un record vadano
> a controllarne il contenuto con quello precedente e aggiornare solo se
> non ci sono state variazioni prodotte nel frattempo da altri utenti?

> .
ciao
(mi riferisco ad ac2000)
nel caso di modifiche concorrenti (sullo stesso record da diversi utenti)
compariranno gli avvisi di access, del tipo "un altro utente ha modificato
questo record...che famo?" e dovrà scegliere l'utente cosa fare, se
sovrascrivere le modifiche dell'altro o rinunciare alle proprie.

Se vuoi fare meglio dovresti usare una tbl di semafori nel BE; l'utente vede
i dati in sola consultazione, ogni volta che chiede la modifica, prima di
aprirgli una form su quel record metto nella tbl di semaforo un record con
nome tbl, idrecord, nome utente, data e ora; ovviamente uscendo dalla form di
modifica elimino quel record.
Ovviamente prima di entrare in modifica del record controllo che non sia già
in modifica da un altro utente (cerco nella trbl semaforo un record con quel
nome tbl e idrecord), se sì gli dico che non può modificare (un po' come
quando cerci di aprire un doc già aperto da un altro utente).
Per sicurezza, all'uscita dalla procedura elimino tutti i semafori dell'utente
Sicuramente ci sarà un modo migliore, ma io mi trovo bene così.
ciao
maurizio

RobertoA

unread,
May 2, 2010, 11:16:34 AM5/2/10
to

"maurizio bruni" <mauriz...@discussions.microsoft.com> ha scritto nel
messaggio news:A12743B9-F08F-421F...@microsoft.com...

> "martino954" ha scritto:
>
>> io, in ogni maschera che introduce i dati nuovi o li aggiorna o li
>> cancella, nella finestra delle propriet�, alla propriet� Blocco Record

>> ho scelto Record modificati.
>> Basta questa scelta per rendere l'applicazione "realmente multiutente"
>> o devo scrivere delle routine che prima di registrare un record vadano
>> a controllarne il contenuto con quello precedente e aggiornare solo se
>> non ci sono state variazioni prodotte nel frattempo da altri utenti?
>> .
> ciao
> (mi riferisco ad ac2000)
> nel caso di modifiche concorrenti (sullo stesso record da diversi utenti)
> compariranno gli avvisi di access, del tipo "un altro utente ha modificato
> questo record...che famo?" e dovr� scegliere l'utente cosa fare, se

> sovrascrivere le modifiche dell'altro o rinunciare alle proprie.
>
> Se vuoi fare meglio dovresti usare una tbl di semafori nel BE; l'utente
> vede
> i dati in sola consultazione, ogni volta che chiede la modifica, prima di
> aprirgli una form su quel record metto nella tbl di semaforo un record con
> nome tbl, idrecord, nome utente, data e ora; ovviamente uscendo dalla form
> di
> modifica elimino quel record.
> Ovviamente prima di entrare in modifica del record controllo che non sia
> gi�

> in modifica da un altro utente (cerco nella trbl semaforo un record con
> quel
> nome tbl e idrecord), se s� gli dico che non pu� modificare (un po' come
> quando cerci di aprire un doc gi� aperto da un altro utente).

> Per sicurezza, all'uscita dalla procedura elimino tutti i semafori
> dell'utente
> Sicuramente ci sar� un modo migliore, ma io mi trovo bene cos�.

Meglio sarebbe intercettare gli errori restituiti perche' il record e'
bloccato da altra postazione
Ma la cosa fondamentale nel caso di utilizzo in multiutenza e' abbandonare
gli mdb e far tenere i dati ad un qualsiasi db server
Le schermate falle pure con Access ma i dati falli tenere a chi e' nato per
quello, vedi Sql Server, Oracle, Db2, Informix, Mysql, ecc
Io ti consiglio Firebird o Postgresql, affidabili, documentati, ampia
comunita', aggratisse


0 new messages