Newsgroup: it.comp.appl.access
Titolo: Perdita relazioni in db

Salve a tutti,
ho fatto un pò di ricerca e ho visto che negli ultimi mesi parecchi di voi
hanno avuto problemi con i file dei database access.
Vi racconto cosa è successo a me negli ultimi tempi.
Il database in questione è stato creato con Access 2000 ed ustao in rete
senza grossi problemi per qualche mese. E' stato poi spostato su un server
(Windows 2000 server) in cui è installato Office XP.
Da questo momento sono iniziati i problemi.
Io ho continuato ad agire sulla struttura del database, accedendo al server
tramite Servizi Terminal, mentre gli altri utenti vi accedono in rete per
l'inserimento di dati o la consultazione.
Inizialmente i problemi si sono manifestati principalmente con un calo delle
prestazioni, database molto più lento soprattutto in fase di modifiche alla
struttura.
Ultimamante il database si danneggia spesso quando si compatta e cosa ben
più grave per un paio di volte sono state eliminate le relazioni tra le
tabelle e quindi è stata eliminatà l'integrità referenziale.
Non sempre questi danneggiamenti sono accompagnati dalla tabella
MysSysCompactErrors.
Qualche giorno fa ho pensato di "rinfrescare" il database importando tutti
gli oggetti in un nuovo db per quanto riguarda l'interfaccia, e tutte le
tabelle in un nuovo db per il BE e mi sembrava di aver risolto il problema,
che si è ripresentato quasi subito.
Stammattina ho scoperto per caso che una tabella aveva perso il collegamento
con un'altra e, peggio ancora, la sua chiave (contatore) non era indicizzata
(ho trovato dei doppioni).
Sul server è installato anche MYSQL, esiste una copia del db in questione in
MySQL e vien usata tramite PHP per l'inserimento di dati online. Sempre
tramite PHP i dati vengono trasferiti poi sul db Access con aumento
considerevole delle sue dimensioni (da circa 15 a circa 100 Mb), dimensioni
che ritornano accettabili dopo il comando Compatta e ripristina.
Vi risulta qualche incompatibilità tra gli elementi citati?
Grazie mille a tutti
Tonina

 ha scritto nel messaggio
news:xFgOa.42459$HU3.1...@news2.tin.it...

Hai preso in considerazione la possibilità di lasciare a base dati in MySql
e gestire solo le form (etc. etc.) con access?
Ciao.
--
Sergio MAZZA


Sì, ci ho pensato e lo sto facendo per un  nuovo database, ma per il
database in questione non posso farlo.  perchè sarebbe troppo adattare
quanto è già stato fatto.
Hai qualche altro consiglio da darmi?
Ne approffitto per chiederti qualcosa a proposito:
ho creato appunto un nuovo database in MySQL e su un database Access ho
creato i collegamenti alle tabelle del database usando ODBC.
Mentre in locale (cioè MySql su un computer client e db access sullo stesso
PC) la lettura tramite query è abbastanza veloce, (quasi non noto la
differenza con tabelle Access) sul server in questione anche l'apertura di
una tabella di soli 4 record avviene in circa 3 secondi (non ti dico quanto
ho dovuto penare per accodare 14000 record da una tabella Access a quella
MySql utilizzando Access).
Da cosa può dipendere?
Grazie mille
Tonina

 hanno avuto problemi con i file dei database access.
Dove!?

Tutt'altro.
Io pero' non userei basi dati diverse per le operazioni on line e non, o usi
MySQL o usi Access.
Per il resto i tuoi problemi sono assolutamente anomali, vedendoli con occhi
un po' paranoico potrei pensare che quache spiritoso si mette li' a togliere
relazioni a caso.
Non sottovalutare la possibilita' che sul server sia stata messa una scheda
di rete difettosa.
Sib


Mi dispiace ma non posso darti nessun consiglio, non ho esperienze con la
"tipologia" del tuo lavoro...
Ciao.
--
Sergio MAZZA

 MySql utilizzando Access).
E questo è un altro discorso. Access c'entra poco in questo. Gli accodamenti
e le update vengono fatte con l'intermediazione di jet che, in molti casi,
traduce una query in tante query più piccole a partire dai bookmark dei
record da modificare.
Innanzitutto, se già non l'hai fatto, lavora con i driver MyODBC 3.5X. Poi
fossi in te cercherei di lavorare, per aggiornamenti ed inserimenti
massicci, con le query pass-thru, che vanno dritte al server, pesano
infinitamente meno, non affollano la rete, ecc ...
Spero di averti dato almeno qualche starting point.
Ciao, Sandro.
--------------------------------
Inviato via 
http://usenet.libero.it


Grazie lo stesso, sei stato molto gentile
Tonina

 Inviato via 
http://usenet.libero.it
Sě, grazie mille.
Ciao Tonina

 Sib
Grazie Sib, non so esattamente quale sia la causa dei problemi descritti, ma
sono arrivata anch'io alla conclusione che la causa risieda nel server
(terrò in considerazione la tua ipotesi sulla scheda di rete)
Grazie ancora a tutti
Ciao
Tonina

 connessione al database MYSQL (booh!!! ).
Per default le query pt non hanno alcuna connect string. Per questo, quando
le lanci, ti aprono la maschera di input dell'odbc manager. Se vai nella
proprietà della query (tasto desto, per intenderci) puoi far fare ad access
l'autocomposizione della stringa di connect, a partire da un dsn di sistema
preesistente.
BTW, da VBA, puoi formattare la .connect dell'oggetto querydef della query
pt, magari la imposti alla currentdb.connect ...
