Newsgroup: it.comp.lang.visual-basic
Titolo: Access 2000 impazzito ?!

Ciao a tutti, e un Grazie a tutti i membri di questo ng.
Mi chiamo Quirino, da mesi sviluppo una gestione magazzino utilizzando VB6
sp 5 - Access2000 e ADO 2.5 per l'accesso ai dati.
Il problema :
Un cliente (Windows XP pro, Pentium 1800, 516 di Ram ), vede sparire un
intera tabella (degli articoli movimentati) ogni volta o quasi, che accende
il pc.
Mi spiego meglio:
Il db in questione è formato da 4 tabelle di cui una contiene i movimenti e
un'altra contiene gli articoli del movimento.
Il giorno prima il cliente crea un movimento e inserisce in quel movimento
un certo numero di articoli (2, 3, 500 ...), salva, chiude la gestione,
rientra, tutto OK. Il giorno dopo gli articoli sono letteralmente spariti,
la tabella vuota, e permane solo il movimento creato nell'altra tabella.
Le tabelle non sono legate da relazioni ma sono filtrate a run-time, in
esecuzione dal cliente c'è sempre il Norton 2003 e un altro programmino, non
sono segnalati errori di nessun genere.
Lo stesso file mdb utilizzato da me funziona correttamente, inoltre sulle
altre gestioni non ho mai riscontrato problemi simili.
Cosa succede ? Il problema potrebbe essere nel Norton qualora scansioni
l'mdb ? O cosa ?

 creato nell'altra tabella.
Se il database č accessibile, senza errori e una compattazione non produce
una (o piů ) tabella con nome contenente "error", allora c'č qualcuno che di
diverte a sabotare i database. Augh!
Se vi serve il boia io, a modico prezzo, son qui...


Garantisco che non c'č alcuna tabella degli errori dopo la compattazione, il
cliente mi ha anche assicurato che nessuno ha accesso a quel pc !!!!!

 ha scritto nel messaggio
news:i0B7c.103936$O31.4...@news4.tin.it...

uhm, uhm.....cerca nel codice tutti i "DELETE FROM" e mettici un bel Msgbox,
oppure logga qualcosa.....
assicurati realmente che non ci siano relazioni che spazzino via record a
destra e a manca senza che tu te ne accorga.
Access non cancella nulla di suo, come ti ha detto Lupo.....
Norton non elimina record, al massimo potrebbe corromperti il database se
tenta di ripararlo, ma a me non è mai successa una cosa del genere.
good coding!!!
-- 
Alletun
"Io lo so che accadrà. La voce sussurra nei miei pensieri di Jair, Rone,
Allanon e soprattutto nelle Mortombre.
Sussurra segreti che mi sono tenuti nascosti, nella grigia oppressione
di questo giorno e nell'oscurità caliginosa di quello che mi aspetta.
Saremo distrutti. Tutti."
Brin Ohmsford - La Canzone di Shannara - T. Brooks


Molto probabilmente, il tuo sw, all'avvio o all'arresto, esegue qualche
cosa. Questo qualcosa, fa danni.
In alternativa, puň darsi che tu apra una transazione e non ne faccia mai il
commit (anche se non so quanto sia affidabile l'autorollback di Jet, che, se
esiste, viene gestito al primo accesso successivo...).
Ciao
Alberto

 accesso a quel pc !!!!!
Direi "non ci credo". Non a te, ma a quello che, anche dando per scontata la
buona fede, te lo dice. Che ne sa, con certezza?
Io non ho enorme esperienza, ma ogni volta (poche, fortunatamente davvero
poche e, bene o male, sempre giustificate da cadute di tensione o rete
ballerina) che un database Access si è scassato, compattandolo/riparandolo
si generava sempre una tabella "CompactErrors" o nome del genere. Per
ribadire, se il database è a posto per tutte le altre tabelle, assolutamente
a posto, insisto e affermo: o c'è qualche bastardo che quando non sa cosa
fare sega dati (anche a caso) o c'è qualche baco clamoroso (ma non per
questo facilmente visibile) nel software.
Ad esempio, pur sottolineando che c'è un * di troppo, sintatticamente
accettato, ma concettualmente assurdo, qual è la sostaziale differenza fra
una:
Delete * From Nome_Tabella
e una
Select * From Nome_Tabella
?
Una parola (chiave). Immagina che un software abbia un "buchetto" del genere
e ...

 Msgbox, oppure logga qualcosa.....
Giusto, anzi (visto il mio post di prima), cerca un "DELETE" e basta
(maiuscolo o minuscolo)...

 good coding!!!
Già fatto !!! Già controllato !!!
L'unico "DELETE FROM"  e' preceduto da un messaggio di conferma. La
cancellazzione di quella tabella da altre parti è legata alla cancellazione
del movimento che contiene quegli articoli.
Nessuna relazione.
Il cliente inserisce gli articoli, salva, chiude il prg, rientra ed è tutto
OK. Chiude il prg spegne il pc e al mattino rimane solo il movimento ...
E poi solo da quel cliente ?!
So che vi sembrerà strano, ma ...
NON SO PIU' CHE COSA FARE O PENSARE ! La notte sogno tabelle che si svuotano
e le facce dei clienti, un pubblico linciaggio ...

 il pc.
Non so perchè non è arrivato il mio post... lo ripeto:
---
Cioè le tabelle rimangono e i dati spariscono?
C'è qualcuno che li cancella.
Se non è il tuo prog è qualcun altro, magari tramite access.
Fai una prova: metti una password al tuo db e non dirla a nessuno!
Basta un CompactDB con password, quindi lo puoi fare anche da programma 
senza che nessuno se ne accorga.
Così nessun'altro potrà accedere al DB, e già qui si può scoprire se chi 
le cancella sei tu.
Se sei tu, scoprirai dove.
Ciao

 ?
E già... anch'io non molto tempo fa ho ranzato via la produzione di un 
mese in un'azienda perchè nella DELETE FROM tabella ho dimenticato una 
WHERE :P
Ciao

 cliente mi ha anche assicurato che nessuno ha accesso a quel pc !!!!!
Risposta standard :)
Mi dissero la stessa cosa quando qualcuno disabilitň l'immatricolazione 
dei pezzi prodotti... ci vollero 2 giorni solo per capire perchč non 
stavano piů "producendo niente"...
Ciao

 ha scritto nel messaggio
news:c3mup9$2a85uf$2...@ID-184808.news.uni-berlin.de...

Io vi Ringrazio tutti, ma torno a ribadire che tutte le cancellazioni sono
custodite da MsgBox e la query:
tdArtMov.SourceConnection.Execute "DELETE FROM movimenti_art WHERE
id_movimento =" & tdMovimenti.Recordset.Fields("id") & ";"
dove tdArtMov è un ocx Componentone surroga di ADODC.

 custodite da MsgBox
E che significa?
Anche il Del *.* ha una conferma, ma la prima volta che il mio compagno di
banco l'ha visto a scuola non ha esitato a cancellare la root del disco di
sistema ;)
Ciao
--
Math Parser : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net