Newsgroup: it.comp.lang.visual-basic
Titolo: Richiesta consiglio su gestione concorrente delle informazioni

Ciao a tutti.
Sto sviluppando un applicativo che lavora su database Access e ha la
funzione di registro protocollo all'interno della mia azienda, consentendo
la catalogazione dei documenti in entrata e in uscita.
Nella fase di catalogazione, l'applicativo "occuperà" dei codici protocollo
provvisori, generati automaticamente come codici successivi alle precedenti
registrazioni effettuate. Questi codici provvisori non saranno effettivi
finchè la catalogazione non verrà portata a termine con la conferma.
Se l'operazione viene annullata, i codici provvisori verranno "liberati" per
altre operazioni di catalogazione.
Il consiglio che vi chiedo riguarda proprio la gestione dei codici
provvisori ed effettivi. Il problema non nasce sull'applicazione standalone,
ma ovviamente sull'applicazione client/server. Vi possono essere più utenti
che richiedono contemporaneamente la registrazione di un documento. In tal
caso, l'applicativo genererà più codici protocollo provvisori. Ad esempio:
            Utente A.   Catalogazione documento con codice protocollo
provvisorio: 0000125/2003
            Utente B.   Catalogazione documento con codice protocollo
provvisorio: 0000126/2003
            Utente C.   Catalogazione documento con codice protocollo
provvisorio: 0000127/2003
Se l'utente B conferma la sua catalogazione prima dell'utente A, il
documento si dovrà tenere il codice protocollo provvisoriamente generato o
gli verrà assegnato il codice "occupato" dall'utente A. Ci si ritrova nella
stessa situazione anche nel caso in cui l'utente A annulli la sua operazione
e gli utenti B e C devono procedere con la regitrazione.
Secondo voi, qual è la strada migliore per affrontare la questione? Cosa mi
consigliereste per memorizzare le informazioni provvisorie? Un file di
testo, una tabella o...servizi lato server? In quest'ultimo caso sarei nel
panico più completo, lo devo amettere!
Inoltre, per quanto riguarda Access, vi sono delle limitazioni sul numero di
record registrabili e sulla gestione di tabelle piuttosto corpose? Questa
domanda nasce perchè l'applicativo dovrà catalogare con il tempo migliaia e
migliaia di documenti.
Ringrazio anticipatamente chi mi dedicherà del tempo per risolvere al meglio
il problema. Sono graditi anche dei link a siti che affrontano bene il
problema.
Saluti,
Roberto

 ha scritto nel messaggio
news:bgq796$69f$1...@fata.cs.interbusiness.it...

E' indispensabile il codice provvisorio ?
giuseppeD

IDROSAT wrote:
[cut]
Il punto non è un problema di informatica, ma di logica.
Se ti occorre assolutamente che l'operatore, durante la catalogazione, veda
il numero che sarà assegnato al documento, ma abbia ancora la possibilità di
annullare l'operazione, non c'è alcun modo di mantenere una numerazione
rigidamente cronologica.
Ed è abbastanza chiaro:
Utente A inizia la catalogazione con numero provvisorio 123
Utente B inizia la catalogazione con numero provvisorio 124
Utente B conferma la catalogazione e il numero definitivo è 124
Utente A annulla l'operazione: il numero 123 è libero.
A questo punto hai due strade: assegnare 123 al successivo documento (ma in
questo modo non è più sequenziale), oppure marcare il documento 123 come
'Catalogazione Annullata', e quindi escluderlo dalla reportistica, ecc...
Se invece non è fondamentale che l'operatore VEDA il numero durante
l'operazione, ma è sufficiente che gli venga comunicato alla fine, il
problema non si pone, perchè quando l'utente B conferma, riceve il numero
123 e tutto funziona.
Ciao
Alberto

Ciao a tutti.
Sto sviluppando un applicativo che lavora su database Access e ha la
funzione di registro protocollo all'interno della mia azienda, consentendo
la catalogazione dei documenti in entrata e in uscita.
Nella fase di catalogazione, l'applicativo "occuperà" dei codici protocollo
provvisori, generati automaticamente come codici successivi alle precedenti
registrazioni effettuate. Questi codici provvisori non saranno effettivi
finchè la catalogazione non verrà portata a termine con la conferma.
Se l'operazione viene annullata, i codici provvisori verranno "liberati" per
altre operazioni di catalogazione.
Il consiglio che vi chiedo riguarda proprio la gestione dei codici
provvisori ed effettivi. Il problema non nasce sull'applicazione standalone,
ma ovviamente sull'applicazione client/server. Vi possono essere più utenti
che richiedono contemporaneamente la registrazione di un documento. In tal
caso, l'applicativo genererà più codici protocollo provvisori. Ad esempio:
            Utente A.   Catalogazione documento con codice protocollo
provvisorio: 0000125/2003
            Utente B.   Catalogazione documento con codice protocollo
provvisorio: 0000126/2003
            Utente C.   Catalogazione documento con codice protocollo
provvisorio: 0000127/2003
Se l'utente B conferma la sua catalogazione prima dell'utente A, il


 ha scritto nel messaggio
news:Gk2Ya.23609$an6.8...@news1.tin.it...


 protocollo.
Presumo è dare un provvisorio che simuli un definitivo e l'utente ha
l'impressione che lavori in modo standard, se ho capito
Non mi piace ma non viene in mente di meglio.
Due tabelle, una per i provvisori, la seconda per i definitivi. Uguali
Penso che gli annullamenti siano minimi, quindi la gestione non difficile.
giuseppeD

Effettivamente questa è stata la prima idea che mi è venuta e che, tra
l'altro, ho anche già implementato. Ma nemmeno a me piace...per questo
cercavo consigli su come affrontare nel modo migliore il problema.
Per quanto riguarda le richieste relative ad Access, sapresti dirmi
qualcosa?
Ciao e grazie!
by Roberto

 qualcosa?
http://www.sitocomune.com/
giuseppeD

Una possibile soluzione potrebbe essere l'inserimento di un nuovo
campo (tipo "n°provvisorio") nel quale al momento della creazione del
documento viene inserito il numero di protocollo provvisorio ottenuto
così:
1_trovare il numero di protocollo massimo tra gli effettivi
2_trovare il numero di protocollo massimo tra i prvvisori nei record
che non hanno ancora un valore per il campo "effettivo" (cioè tra i
documenti da confermare)
3_confrontare i due valori e prendere il maggiore dei due ed
incrementarlo di 1.
Facendo così se ci sono protocolli provvisori il nuovo protocollo
provvisorio sarà il maggiore di questi +1, altrimenti prende l'ultimo
effettivo, lo incrementa edi 1 e lo registra come provvisorio.
Al momento della registrazione bisogna cercare il numero di protocollo
"effettivo" maggiore, incrementarlo di 1 ed immettere questo valore
come protocollo effettivo.
Naturalmente se viene registrato prima il protocollo provvisorio 124
come effettivo 123, il provvisorio 123 al momento della registrazione
diventerà effettivo 124, così come potrebbe diventarlo il 125 o 126...
Spero diessere etato abbastanza chiaro e di non essermi perso per la
strada.
Ciao Ciao

L'idea però non era quella di creare un nuovo record al momento della
richiesta di inserimento di un nuovo documento, ma solo al momento della
conferma. La tua soluzione, invece, prevede che il codice provvisorio venga
salvato nel campo di un record già esistente in archivio, e quindi creato
prima che l'effettiva conferma di catalogazione venga effettuata.
Grazie infinite comunque,
Roberto