Enrico Pietrobon
2008-10-15 09:56:09 UTC
Ciao a tutti.
Spero che il mio problema sia già stato affrontato.
Ho un db in Access con tutte le tabelle su un server. Le tabelle per ora
sono in formato access.
All'apertura del Applicativo (MDE) vengono collegate le tabelle tramite la
funzione
DoCmd.TransferDatabase A_ATTACH, "Microsoft Access" ecc.ecc.
Il tutto funziona egregiamente, se non che il db inizia ad accusare la
lentezza di tale collegamento.
Molte maschere con query pesanti si aprono addirittura dopo una decina di
secondi sui client.
Soluzione. Passa tutte le tabelle su MySql.
Diciamo che il passaggio è stato abbastanza indolore.
Le tabelle sono state importate senza problemi in MySql.
e poi collegate al DB con la stessa istruzione DoCmd.TransferDatabase
Le queey che prima ci mettevano 10 secondi in questo modo sono praticamente
immediate.
Ma il problema non è risolto.
Tengo a precisare che l'apertura delle tabelle sia Access (prima) che
(mySql) ora avviene tramite ADO.
Set DBL = Application.CurrentProject.Connection
S = "Select * From Impostazioni"
T1.Open S, DBL, adOpenKeyset, adLockOptimistic
1° problema
Su alcune tabelle, e non riesco a capire come e quando, ogni volta che cerco
di fare un UPDATE mi viene restituito questo errore.
"Il modulo di gestione di database Microsoft Jet ha interrotto
l'elaborazione. Un altro utente sta tentando contemporaneamente di
modificare gli stessi dati."
Ma io sono l'unico utente che sta lavorando su questa tabella
L'istruzione utilizzata è questa.
S = "Select * From Impostazioni"
T1.Open S, DBL, adOpenKeyset, adLockOptimistic
T1!TipoInvio = N1
T1.Update
T1.Close
Non riesco proprio a capire come mai.
Anche perchè su alcune tabelle non me lo fà.
Potrei rivedere tutto e non collegare le tabelle utilizzando mysql
direttamente da server
Ma in questo caso dovrei riscrivere interamente il codice, in quanto la
semplice query
"SELECT * FROM [IMPOSTAZIONI]"
dovrebbe essere sostituita con
"SELECT * FROM `IMPOSTAZIONI`"
per non parlare poi delle query con date ecc.ecc.
A complicare il tutto è che molti clienti con pochi dati, non utilizzeranno
MYsql ma continueranno ad utilizzare le tabelle Access.
Quindi quella del collegamento è la miglior soluzione per entrambi i
sistemi.
Peccato che non riesca a capire l'errore...
Grazie a tutti.
Enrico Pietrobon
Spero che il mio problema sia già stato affrontato.
Ho un db in Access con tutte le tabelle su un server. Le tabelle per ora
sono in formato access.
All'apertura del Applicativo (MDE) vengono collegate le tabelle tramite la
funzione
DoCmd.TransferDatabase A_ATTACH, "Microsoft Access" ecc.ecc.
Il tutto funziona egregiamente, se non che il db inizia ad accusare la
lentezza di tale collegamento.
Molte maschere con query pesanti si aprono addirittura dopo una decina di
secondi sui client.
Soluzione. Passa tutte le tabelle su MySql.
Diciamo che il passaggio è stato abbastanza indolore.
Le tabelle sono state importate senza problemi in MySql.
e poi collegate al DB con la stessa istruzione DoCmd.TransferDatabase
Le queey che prima ci mettevano 10 secondi in questo modo sono praticamente
immediate.
Ma il problema non è risolto.
Tengo a precisare che l'apertura delle tabelle sia Access (prima) che
(mySql) ora avviene tramite ADO.
Set DBL = Application.CurrentProject.Connection
S = "Select * From Impostazioni"
T1.Open S, DBL, adOpenKeyset, adLockOptimistic
1° problema
Su alcune tabelle, e non riesco a capire come e quando, ogni volta che cerco
di fare un UPDATE mi viene restituito questo errore.
"Il modulo di gestione di database Microsoft Jet ha interrotto
l'elaborazione. Un altro utente sta tentando contemporaneamente di
modificare gli stessi dati."
Ma io sono l'unico utente che sta lavorando su questa tabella
L'istruzione utilizzata è questa.
S = "Select * From Impostazioni"
T1.Open S, DBL, adOpenKeyset, adLockOptimistic
T1!TipoInvio = N1
T1.Update
T1.Close
Non riesco proprio a capire come mai.
Anche perchè su alcune tabelle non me lo fà.
Potrei rivedere tutto e non collegare le tabelle utilizzando mysql
direttamente da server
Ma in questo caso dovrei riscrivere interamente il codice, in quanto la
semplice query
"SELECT * FROM [IMPOSTAZIONI]"
dovrebbe essere sostituita con
"SELECT * FROM `IMPOSTAZIONI`"
per non parlare poi delle query con date ecc.ecc.
A complicare il tutto è che molti clienti con pochi dati, non utilizzeranno
MYsql ma continueranno ad utilizzare le tabelle Access.
Quindi quella del collegamento è la miglior soluzione per entrambi i
sistemi.
Peccato che non riesca a capire l'errore...
Grazie a tutti.
Enrico Pietrobon