Newsgroup: it.comp.lang.visual-basic
Titolo: Database Access che si rovina

Ciao a tutti ho un grosso problema! 
Ho un programma in rete dove hanno accesso piu'utenti e vanno a fare
delle operazioni su un database Access 97 (in comune tra gli utenti) e
cio che succede che dopo un paio di ore che gli utenti lavorano
sull'archivio esso si rovina e va riorganizzato , a volte perdendo
dati.
Noi pensiamo che sia un problema di come apriamo i record . 
Vengono aperti con dbOpenTable e dBopenDynaset. 
Vi ringrazio per l'aiuto Luca Martini!


Basta che uno qualunque degli utenti chiuda in modo anomalo la connessione
(caduta di rete, crash del sistema, errore dell'applicativo, ecc...), che le
probabilità di danneggiamento del database sono elevate.
Oltre tutto, mi sembra di capire che tu utilizzi controlli 'bound', ossia
popolati collegandosi direttamente al db e non passando da codice (il che
permetterebbe quantomeno di usare qualche transazione).
Diciamo che, se è così, sei nella peggior situazione in cui ci si possa
trovare (quanto ad affidabilità del db).
Puoi intervenire in modi diversi:
1) aumentare l'affidabilità della rete: roba di qualità, impedire
disconnessioni a caldo, al limite schede ridondanti
2) aumentare l'affidabilità dei sistemi: debug pesante del tuo applicativo,
service pack dei sistemi
3) ridurre il danno: backup a ripetizione
4) rendere transazionale l'applicativo (ne va riscritto un bel po')
5) migrare a sistemi dbms di tipo server
Ciao
Alberto
-- 
Santo cielo, Magnum, si può sapere cos'è questo baccano?
Higgins, posso spiegarle...
Credo non sia necessario.
Zeus, Apollo, a voi...

 Vengono aperti con dbOpenTable e dBopenDynaset. 
(scusa, ti ho postato anche in privato per errore)
Concordo con Albe V°.
Noi abbiamo decine di utenti che si collegano a mdb e scrivono/leggono a 
manetta (giorno e notte) e questi problemi sono decisamente rari.
Il 90% dei casi è dovuto a caduta della rete (nei nostri risulta quasi 
sempre un errore di disco o rete subito prima del famoso Database non 
ricolosciuto).
Potrebbe anche essere qualcuno che spegne il PC o tronca il programma 
mentre questo sta scrivendo sul DB.
Mi risulta che questi problemi sono ulteriormente diminuiti convertendo 
il DB in Access2000 (che però ha portato a un problema con l'errore 3734 
che di tanto in tanto salta fuori senza nessun motivo, ma che è 
sufficiente Resumare).
Ciao

 ha
scritto:

Ciao Albe ..mi dispiace ma ho capito poco di cio' che secondo te andrebbe
fatto per risolvere il mio problema.Potresti indicarmi piu' specificatamente
quali sono le azioni da effettuare per migliorare le prestazioni della rete
e per sistemare il codice(quali sono diciamo le cose che io faccio che
portano molto rischio al mio database access?)
Un'altra cosa che non ho capito e' cosa tu intenda per controlli 'bound' .
Ti ringrazio antipatamente dell'aiuto !! :) Luca Martini
--------------------------------
Inviato via 
http://usenet.libero.it

 wrote in message
news:20467226.03052...@posting.google.com...

Imho io cambierei database e ne impiegherei uno piu' affidabile. Senza
andare a spendere un ira di dio e 1/2 per un blasonato Oracle o SQLServer XP
potresti vedere se c'e' qualcosa nell'ambito open source.
Se la cosa ti puo' interessare MySql e' completamente (o quasi) free e ne
esiste anche una versione per winzozz.
Tutto dipende da quali sono le tue necessità e quanto intendi lavorare
sull'interfaccia per rendere il db fruibile agli altri utenti.
Comunque, se tra il DB access e i client ci metti uno strato in mezzo come
ADO e lo usi bene, questi problemi evaporano come acqua sul barbecue (acceso
eh?).
A parte qualche commento sul mio discutibile senso dell'umorismo, mi
piacerebbe sapere in che modo i tuoi utenti accedono al DB: su quello
aziendale gestito (mah) da me sono mesi che non devo far altro che il backup
giornaliero. L'applicazione si appoggia ad un DB access, ma poi l'accesso e'
gestito tramite IIS 2000, ADO e ASP: i client non hanno neanche access
installato, basta IE (o netscape).
Ciau
Andrea

 hanno neanche access installato, basta IE (o netscape).
La tua è una situazione robusta.
Finchè IIS non 'muore', la sessione Jet è aperta o quantomeno chiusa
regolarmente.
Quindi, finchè non ci dovesse essere un crash del webserver, grossi problemi
non puoi averli.
Non hai client distribuiti che accedono direttamente al file mdb.
Ciao
Alberto

 Alberto
Ti ringrazio Luca Martini :)


 addnew, edit e update , cioe' le solite...
A parte che ovviamente quel c:\data.mdb non č cosě, perchč altrimenti non
credo che ci siano molti utenti in rete su uno stesso db, cerco di spiegarti
il concetto.
Deve essere robusto il sistema.
Access fa cosě.
Punto.
E' una sua caratteristica.
Quando hai/avete scelto di sviluppare con Access, nei pro e nei contro
avrete considerato anche che Access ha questi punti di debolezza.
E avrete previsto una rete particolarmente robusta.
Se cosě non č, parti da lě.
Ciao
Alberto

 Non hai client distribuiti che accedono direttamente al file mdb.
Vedi il discorso "sull'incrociare i flussi" di poco fa'. Ci sono voluti due
mesi buoni di lavoro e di test per mettere a punto tutto quanto, ma adesso
posso dormire tranquillo la notte ^_____^.
Ciau
Andrea

  (cfr: Ghostbusters I)
Ok, allora posso suicidarmi.

 ha scritto

spero ben di no. (anche incrociare i brindisi e' male. uno ci guarda e si
regola, i semafori stanno li' apposta). anche a parte la cinofilia, mi stai
molto simpatico. anche se le contumelie a ms potresti variarle un po'. in
quel mondo new age, al piu' si bevono degli analcolici al bambu'
californiano, ascoltando kristin hersh... forse se li fumano, i bambu'.
d'altronde, come dire, che altro farne, di canne cosi'...
non dirlo.
toccandomi le palle, la pallina del mouse, la tastiera, la scrivania, le
chiavi, e quant'altro di utile all'uopo (ooopoful, in computerese), un db
access lo stiamo usando da anni in 4-5 e regge. un uso tranquillo,
condominiale, ma regge.
poi ovvio che domani ciaomiao. abbe'.
ciao,
a.previous :)
che in sostanza: se l'utente singolo e' un coglione, anche access ha i suoi
limiti....
e' la seconda volta in un mese -- tapino, ero convinto fosse ovvio -- che
spiego a qualcuno che -- in condizioni normali (nessuno dei miei utenti sa
che esistono i masterizzatori) -- non, dico non, puo' copiare dei file su
cd.
cioe', puo' provarci. ma sono poi affari suoi ritrovarlo sul cd
(probabilmente un cd di repubblica infilato li'...)
e uno, dopo aver fatto un doc di ca. 150 pp in word, mi ha detto che voleva
stampare solo le schede che aveva marcato col cancelletto.
ovviamente, la colpa che non si puo' e' sempre di windows / word / access /
dio / dos / printer / cuper / guardiacostiera /
quelli-che-si-mettono-in-viaggio-il-10-agosto-proprio-quando-parto-io, e
infine dell'inglese, che arrivare ad ascoltare cosa vuol dire "r.o.m." o
"database" e' lunga...

 poi ovvio che domani ciaomiao. abbe'.
Mi toccavo anch'io, all'inizio. Sono convinto, infatti, che la vera risposta
sulla bontà o meno di un prodotto, può essere valutata solo dopo averlo
impiegato presso utenti che ci lavorano sopra, senza ben sapere cosa sia. E'
andata bene. Come spesso ho scritto, l'uso che io faccio di Access (Jet, per
meglio dire) non è propriamente condominiale. Ho, ormai da 4/5 anni, su ogni
sistema operativo, applicativi che girano tutti i giorni per la gestione
aziendale, in realtà che vanno da una a 6/7 postazioni di lavoro,
contemporanee. In tutto, direi (non le seguo tutte direttamente) circa
200/300 macchine, distribuite su un centinaio di aziende, di ogni specie.
E allora, diciamolo: Access si scassa. A me è successo (nelle realtà che ho
descritto) per ben 4 volte. La breve e certamente insufficiente statistica
dice: Uno spegnimento per assenza di energia, Una rete ballerina (che
"ballava" da almeno un mese) e Un pulsante On/Off premuto col piede. Uno
effettivamente non spiegato, ma stava a Caserta e al telefono ovviamente
"nessuno a fatto niente, non è successo niente, non è colpa mia".
Credo che nessuno si potrà lamentare se la propria automobile si ferma
perchè è finito il carburante o perchè si spacca un semiasse. Nemmeno io (e
persino nemmeno l'utente), se un temporale fa saltare l'energia.
Aggiungo solo una cosa che forse poco c'entra, ma compatibile col fatto
ormai noto che non mi fido molto di nessuno, me compreso: La gestione dei
blocchi/lock la faccio io, prima di quella interna.

 "nessuno a fatto niente, non č successo niente, non č colpa mia".
No, no, devo dire, onestamente, che ha detto:
"nessuno ha fatto niente, non č successo niente, non č colpa mia".
Ma la h non č muta? :-P

 blocchi/lock la faccio io, prima di quella interna.
===========
Interessante Lupo, ma cosa intendi esattamente?
Greg

[*Tyss* : 
gre...@tin.it
] ha scritto:

http://makeashorterlink.com/?F29052203

> Interessante Lupo, ma cosa intendi esattamente?
http://makeashorterlink.com/?A2CB126A4