Newsgroup: it.comp.lang.visual-basic
Titolo: Problema di logica

 Ciao a tuuuuch!
Quesito :
ho questo teorico problema.
Numeratore preso da una tabella (+1) in fase di inserimento di una
form-fattura.
Confermo la fattura e aggiorna la tabella numeratori.
Ma se siamo in 2 a chierdere l'inserimento ???
Esempio (in caso mi fossi spiegato male) con i numeri :
Io apro la maschera fatture e come prima cosa mi assegna il numero 3 (2
del numeratore +1) ed il tempo di inserirla quando
un secondo utente apre la maschera fatture (anche lui avrà il numero 3 xchè
io ancora
non ho confermato).
Come la gestireste? Pensando anche al fatto che io la fattura posso anche
non crearla ed uscire ...
Bye a tutti.
e GRAZIE.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Ma se siamo in 2 a chierdere l'inserimento ???
Il campo indice della tabella delle fatture impostalo con incremento 
automatico, ci penserà il server del database ad incrementarlo nel modo 
corretto e solo dopo aver salvato il record.
Se Access, il campo dichiaralo come Contatore, se SQL, il campo dichiaralo 
IDENTITY.
-- 
3st3b4n
www.seber.it
Questo post è stato scritto con bit riciclati 


La soluzione più diffusa tra i gestionali in commercio è la presente:
prendi il numero dal una SELECT MAX o meglio da una tabella dei 
progressivi documento, assegni il numero.
Prima di salvare controlli che il progressivo sia ancora valido 
altrimenti lo segnali all'utente e lo cambi.
L'utente A apre la form ed inizia ad unserire la fattura 1
L'utente B apre la form ed inizia anch'esso ad inserire la fattura 1
L'utente B salva la fattura nr 1
L'utente A salva e riceve il messaggio che il progressivo è cambiato e 
la fattura creata è diventata la numero 2
Ti consiglio vivamente di non usare un contatore su db perchè ti 
capiterà spesso di lasciare dei "buchi" per poi creare le fatture in 
seguito quindi il nr fattura deve sempre essere editabile dall'utente. 
Tu lo proponi e basta.
Ciao
pEIO

e GRAZIE.
Personalmente non avrei nessun problema.
Posto che è (almeno per me) cattiva programmazione:
- mettere come chiave unica il numero della fattura
- attribuire il numero fattura durante l'inserimento
Infatti se strutturi il tuo archivio in modo tale che la chiave
dell'archivio fatture (idFattura) NON sia il numero fattura il
problema dei numeri persi non si pone.
Il numero fattura si attribuisce solo durante la stampa definitiva.
In questo caso è opportuno gestire un contatore tramite una stored
procedure che lanciata restituisce un numero incrementando un
contatore.
L'attribuzione del numero progressivo deve essere fatto alla fine
della propria transazione o (meglio) in una transazione a parte in
ogni caso in momenti in cui la transazione va sempre a buon fine.
Esempio:
- utente conferma stampa fattura
- se stampa definitiva e numero mai attribuito si apre la transazione
del numero e si attribuisce il numero alla fattura
- si chiude la transazione
- si apre la transazione per la stampa fattura 
Il numero fattura inoltre dovrebbe essere "forzabile" da parte
dell'operatore (per recuperare eventuali salti di numerazione)
=======================================================================
Se mi vuoi scrivere togli le maiuscole
Sveltolampo 
cteniza...@hotmail.com
=======================================================================


GRAZIE MILLE .


 non crearla ed uscire ...
Beh io non lo gestirei così, nel senso che il numero della fattura
che se ho capito bene è chiave primaria, viene assegnato prima
di salvare il record non alla creazione, cioè non lo faccio come prima
cosa, ma come ultima.
    danilo