Newsgroup: it.comp.appl.access
Titolo: Fe.....Be in rete.....errore chiave duplicata...........

Salve a tutto il News sono finite pe ferie è purtroppo si ritorna alle
vecchie cose di sempre.........
Ragazzi ho un problema che non avevo mai incontrato ho fatto un db diviso in
tabelle Be............. è maschere.......Fe il Be resta in un server mentre
il Be è installato sui varie postazioni andava tutto bene quando ad un
tratto ü successo il finimondo mi viene l'errore di duplicazione della
chiave primaria è mi sono accorto che questo succede ogni qualvolta nelle
stesso momento due persone cercano di immettere dei nuovi dati nel db, nella
stesso memnto...... non so davvero cosa fare .......qualcuno di voi si è
trovato di fronte a questo problema.?!?
Grazie come sempre dei vostri preziosi consigli.............
Arrivederci
Gianni B.

 trovato di fronte a questo problema.?!?
Di che tipo è la chiave primaria?
E soprattutto, è un valore calcolato da te o dal sistema (tipo contatore) ?
Antonio

 ha scritto nel messaggio
news:9f33b.269360$Ny5.8...@twister2.libero.it...

Ciao Antoni sei sempre puntualissimo il valore della chiave primaria è di
contatore quindi datio dal sistema.
Gianni B

 ha scritto nel messaggio
news:3f4cc5e7$1...@news.bluewin.ch...

Su un campo contatore un accesso concorrente alle tabelle non da problemi di
duplicazione, perchè il sistema ti restituisce comunque il valore +1, anche
se il record non è salvato.
Pertanto il problema deve essere su qualche altro campo settato come
chiave...
Antonio

 ha scritto nel messaggio
news:X143b.269488$Ny5.8...@twister2.libero.it...

mah non riesco a capire ...... è diciamo che ci vuole un po' di tempo per
spiegarti come ho impostato il mio db..comunque grazie provero a spulciare è
provare a far qualcosa sul consiglio che mi hai dato
Grazie. ciao
Gianni B.

 provare a far qualcosa sul consiglio che mi hai dato
Un trucco, se hai una chiave costruita da te, è quella di farlo solo al
salvataggio del record e non all'apertura della form su un nuovo record.
Così limiti la possibilità di intruppi...
Antonio


Non capisco Antonio ...puoi essere + chiaro?!..si c'è una chiave costruita
da me..........Sarebbe il numero che identifica ogni Fornitore..
Praticamente ho due tabelle impostate in questo modo:
Tbella "Entrate_Materiale":
Id_Materiale ; Fornitore; Data; Wagone_N; ecc.ecc.....
Contatore;       Id_fornitore; ecc.ecc.
 Le due tabelle sono legate tramite una relazione uno a molti ...........
tutto questo viene visualizzato in una maschera continua tramite una
query.....
Tabella fornitori:
Id_fornitore; Nome_Ditta; ecc.ecc....
Id_Fornitore campo chiave (Contatore).......
c'è soltanto una cosa che ho fatto non so se è stata l'idea migliore
..........
Quando ho costruito il form per immettere il materiale in entrante ho fatto
in modo tramite una casella combinata nella tabella fornitori collegata al
campo chiave Id_fornitore di farmi visualizzare Non  Id_fornitore ma il Nome
della ditta .......funziona benissimo perchè chi deve immettere i dati
interessa il Nome del fornitore non il Numero della ditta....forse è li il
problema.?!
Spero di essere stato chiaro...abbastanza Antonio, è dato che siamo in
argomento anche perchè è il mio primo db in rete ti chiedo un altro
domanda...........quello che tu hai detto sopra"Su un campo contatore un
accesso concorrente alle tabelle non da
problemi
 di
 duplicazione, perchè il sistema ti restituisce comunque il valore +1"
funziona anche se nello stesso momento l'accesso al db è effettuato da +
untenti?! cioè se + di una persona sta immetendo dati.?!
Scusa se sto approfitando del tuo tempo . ma credo che questo puo'
interessare anche qualche altro.......
grazie di tutto...........
Gianni B.

 untenti?! cioè se + di una persona sta immetendo dati.?!
Certo. Questo perchè basta che il record sia scritto e quindi il contatore
dia un nuovo valore, a quel punto un altro record prenderà un altro valore.
Fai la prova: apri una tabella con contatore e comincia a scrivere in un
record ma senza salvarlo, quindi apri un altra sessione del database, apri
la tabella e scrivi un nuovo record. Vedrai che i contatori hanno valore
diverso.
Antonio