Newsgroup: it.comp.appl.access
Titolo: Access 2000 e contatori: problemi

Alcuni utilizzatori di un mio programma mi hanno segnalato che il
campo 'Contatore' che utilizzo come IdRegistrazione non rispetta la
sequenza di inserimento dei record. Ne sapete niente ?
Ciao
---------------
Guido
light...@flashnet.it

 ha scritto nel messaggio
news:3af31607...@news.flashnet.it...

Se gli utilizzatori cancellano uno o piů record con il tipo di dati
"Contatore", perdono quei valori. Se il record cancellato č l'ultimo, una
compattazione del DB riporta il contatore in ordine, altrimenti quel numero
cancellato č perso.
La soluzione č quella di modificare il tipo di dati da Contatore a Numerico
e gestire da codice la progressione dei numeri. Nel sito comune trovi
qualcosa a riguardo.
Ciao, Carlo

 Ciao, Carlo
Ho avuto problemi in multiutenza utilizzando le tecniche di progressione
manuale.
I buchi nei campi autonumber sono voluti per evitare conflitti
d'assegnazione in rete, quindi io lascerei le cose come sono.
Ciao, Simone

Ringrazio Carlo e Simone per l'interessamento, ma vado a chiarire
meglio il problema:
Insert record 		contatore = 250
insert record		contatore = 251
insert record		contatore = 229 
con contatore chiave primaria e dopo che l'utente ha eliminato record.
Quindi non sto parlando di "Buchi"  ma di sequenzialità.
Ciao.
---------------
Guido
light...@flashnet.it

 Quindi non sto parlando di "Buchi"  ma di sequenzialità.
Sicuro di non aver impostato l'incremento dell'autonumber a casuale?
Casi di contatori impazziti (duplicati) mi sono capitati solo con le mitiche
Realtek e in rete.
Ciao, Simone

Ciao, Simone
Putroppo sono sicuro, la proprietą nuovi valori č impstata a
"incremento".
Per quanto riguarda la rete, la tabella incriminata č una tabella
locale, le tabelle che alimentano le comobo della form di inserimento
sono su SQL Server colelgate via ODBC e la rete č una rete certificata
che utilizza solo schede 3Com.
Grazie comunque per la risposta e ciao.
---------------
Guido
light...@flashnet.it

 sequenza di inserimento dei record. Ne sapete niente ?
Se il problema e' la sequenza, allora non e' un problema.
Bisogna sempre tenere presente che il contatore non e' un indicatore di
sequenza, ma un identificatore certamente univoco.
Per la cronaca, le discrepanze di sequenza sono normalmente dovute al fatto
che il contatore viene creato al momento in cui si inizia a inserire il
record, e non alla fine quando lo si salva. Questo puo' dare la sensazione
che vi sia una discrepanza di sequenza.
Sib


Probabilmente non mi sono spiegato: l'applicazione lavora in 'locale'
e quindi tra inizio inserimento e fine inserimento non succede niente.
Ciao.
---------------
Guido
light...@flashnet.it

 e quindi tra inizio inserimento e fine inserimento non succede niente.
Potrebbe essere nella tabella locale ci sia un criterio d'ordinamento per un
campo xyz, che rompe la sequenza dei contatori.
Ciao, Simone

 ha scritto nel messaggio
news:td6K6.7834$B87.5...@news.infostrada.it...

Penso anche io che sia cosě.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 e quindi tra inizio inserimento e fine inserimento non succede niente.
Allora concordo con Simone.
Ad ogni modo ribadisco che il contatore non serve a tenere l'ordine dei
record, il suo compito e' quello di distinguerli, l'ordinamento si fa in
base alla data, l'ora o quello che preferisci.
Sib


E' vero  che il contatore deve essere solo un identificatore univoco
del record ma, nel mio caso, l'operatività è la seguente:
1. l'avvocato prepara un time sheet cartaceo  e lo consegna alla
segretaria
2. la segretaria inserisce i movimenti nel DB locale
3. la segretaria produce una stampa di controllo per l'avvocato
4. l'avvocato verifica i dati inseriti, appporta le necessarie
correzioni e valida l'inserimento firmando la stampa di controllo
5. i dati vengono consolidati dalla tabella locale al DB Server
In questo caso è molto comodo poter stampare i dati nello stesso
ordine in cui sono stati inseriti, ovvero nello stesso ordine del time
sheet cartaceo: il lavoro di spunta viene facilitato.
Dovrò, quindi, usare data e ora di inserimento del record per ottenere
il risultato.
Ciao.
---------------
Guido
light...@flashnet.it

 il risultato.
Però ti dirò che non mi è mai capitato in monoutenza che un contatore chiave
primaria non mantenesse l'ordine d'inserimento.
Davvero strano.
Ciao, Simone

 sheet cartaceo: il lavoro di spunta viene facilitato.
Qualcosa mi sfugge.
che inetndi per DB server?
che intendi per "consolidati"?
L'inghippo potrebbe essere qui. Poiche' non e' affatto normale (pur
confermando tutto quello che ho detto) che il contatore presenti delle
inversioni.
Sib



Il DB Server è un server MS SQL server; per 'consolidati' intendo dire
che i dati vengono trasferiti dalla tabella locale a SQL Server.
Ciao.
---------------
Guido
light...@flashnet.it

 che i dati vengono trasferiti dalla tabella locale a SQL Server.
Vuoi dire che hai una tabella Access sul tuo file mdb i cui record vengono
poi trasferiti su SQL Server?
C'e' un motivo particolare per usare SQL Server? Ossia:
Hai decine di utenti?
Hai milioni e milioni di record?
Sono dati Mostruosamente riservati? (tipo testimonianze di pentiti o simili)
Se hai risposto no alle tre domande sopra non ti serviva SQL Server.
Comunque il contatore e' in Access?
Lo passi insieme agli altri dati quando trasferisci il record su SQL?
Quando il cliente ti parla dell'ordine di inserimento, si riferisce
all'ordine con cui vengono caricati su Access o a quello con cui vengono
travasati su SQL una volta approvati?
Sib

travasati su SQL una volta approvati?
in Access
Ciao
---------------
Guido
light...@flashnet.it

 in Access
Ti sei accorto di avere riportato il mio messaggio 2 volte?
Assodato quanto rispondi (complimenti per la sintesi), in pratica mi stai
dicendo che, a prescindere dal travaso dei dati in SQL, il contatore di
access fa un po' avanti e indietro.
Ora, dato che mi avevi detto che il tuo cliente lavora in monoutenza (anche
se ora hai detto il contrario) ci sono due possibili risposte:
1)    Hai impostato il contatore ad incremento casuale
2)    Il tuo cliente si sbaglia (o spiega male il suo problema), ad es: non
e' che per caso vorrebbero che il contatore seguisse l'ordine della data che
viene caricata nella tabella (e non l'ordine con cui il documento viene
effettivamente caricato)?
Sib
--
----------------------------------------------------
la mia home:
http://digilander.iol.it/syb
----------------------------------------------------
il sito comune di it.comp.database.access:
http://www.sitocomune.com
----------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

effettivamente caricato)?
No, il cliente vuole che il contatore segua esattamente l'ordine in
cui sono stati inseriti i dati.
Ciao.
---------------
Guido
light...@flashnet.it

 cui sono stati inseriti i dati.
Partiamo da un presupposto:
Se un contatore e' impostato come crescente non proporra' mai un numero
inferiore all'ultimo dato inserito.
Partendo da questa premessa assolutamente ineluttabile, non resta che capire
esattamente cosa intende dire il tuo cliente.
Tu hai detto che gli utenti lavorano in locale e poi caricano il record sul
db sql.
Spero che il cliente abbia chiaro che l'ordine vale solo in locale, quindi
ogni utente ha una propria serie di codici crescenti incoerenti con quelli
degli altri utenti.
L'ordine con cui compariranno poi i record su SQL e' tutta un'altra cosa.
Sib

Sib
l'utente l'ha ben chiaro ed è proprio quello che vuole: infatti il
mantenimento dell'ordine di inserimento gli serve per permettere il
lavoro di input e verifica che è organizzato in questo modo:
1. il professionista compila manualmente il time sheet (una riga per
ogni attività elementare da registrare)
2. la segretaria inserisce i dati (che vengono memorizzati in una
tabella locale) nello stesso ordine del time sheet cartaceo
3. la segretaria stampa un report di controllo dei dati inseriti
ordinato sul campo contatore e lo sottopone al controllo del
professionista
4. il professionista si aspetta di avere i 2 supporti cartacei nello
stesso ordine in modo da poter effettuare facilmente il lavoro di
spunta; in altre parole, alla prima riga del cartaceo manuale deve
corrispondere la prima del report, alla seconda del cartaceo la
seconda del manuale e così via
So bene che non sembra possibile che il contatore impostato come
progressivo non rispetti tale impostazione ma è successo.
Tornando alle mie preoccupazioni, ho segnalato al newsgroup l'anomalia
e gestirò il problema ordinando il report su data e ora di inserimento
del singolo record ma sono lontano dall'aver scoperto il motivo di
questo comportamento anomalo.
Ciao
---------------
Guido
light...@flashnet.it

 questo comportamento anomalo.
E' evidente che non e' possibile fare ulteriori ipotesi o anche comprendere
l'eventuale inconveniente senza vedere il db su cui la segretaria lavora.
Se risultasse effettivamente un comportamento anomalo del contatore sarebbe
la prima volta che ne sento parlare in 7 anni.
Purtroppo ti devo confessare che non posso liberarmi del dubbio che vi siano
delle cause non dipendenti dalla funzionalita' del contatore.
Ciao


 questo comportamento anomalo.
E' evidente che non e' possibile fare ulteriori ipotesi o anche comprendere
l'eventuale inconveniente senza vedere il db su cui la segretaria lavora.
Se risultasse effettivamente un comportamento anomalo del contatore sarebbe
la prima volta che ne sento parlare in 7 anni.
Purtroppo ti devo confessare che non posso liberarmi del dubbio che vi siano
delle cause non dipendenti dalla funzionalita' del contatore.
Ciao
Sib
