Newsgroup: it.comp.lang.visual-basic
Titolo: [VB6+DAO] Formato di database non riconosciuto

Prima di esporre il problema, ti saluto, lettor gentile.
Inquadro il problema.
Ho un applicativo VB6 che accede tramite DAO (3.60) ad un db (Access 2000).
So che per molti questo e` gia` un problema, ma si tratta d'altro.
Prevengo subito i sostenitori di ADO, che hanno ragione tu tutto, tranne che
su un punto e me essenziale: la velocita`. La microsoft stessa dichiara che
alcune chiamate possono essere fino a 10 volte piu` lente, ed l'ho
sperimentato personalmente. Ma il punto non e` questo.
L'applicazione prevede un accesso multiutente, quindi con il db su un server
al quale accedono i vari client.
Ogni tanto (quasi giornalmente, mi dicono, e pare che il fenomeno si stia
intensificando) non si riesce piu` ad accedere al db, e viene riportato il
classico errore 'Formato di database non riconosciuto'.
La maggior parte delle volte si risolve con una CompactDatabase, altre volte
e` necessario ripristinare la copia di backup.
Questo accade in due situazioni simili, ma non e` mai accaduto in un'altro
contesto, dove e` attivo un solo client.
E'e` qui, mio lettore, che entri in scena!
E con calore invoco il tuo aiuto con questo ultimo, disperato,  grido:
"PERCHE` ACCADE ?"
AC

 "PERCHE` ACCADE ?"
il più delle volte è perchè la rete è ballerina.
--
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 "PERCHE` ACCADE ?"
In Access la gestione di tutta una serie di cose è a carico dei singoli
client.
Ad esempio, se io accedo ad Access dal mio Pc, è la mia copia di Dao/Ado/Jet
che si deve occupare di rispettare l'integrità referenziale, il locking e
l'unlocking, il commit ed il rollback, la concorrenza, e compagnia bella.
Se il mio Dao/Ado/Jet presenta dei bug, o se il mio Pc si impalla durante
qualcosa, o se cade la rete, o se manca tensione, chi si occupa di
completare le operazioni rimaste a metà, o di farne il rollback, o di
liberare lock?
Nessuno. Ecco la risposta al tuo quesito.
Morale: se vuoi evitare cose del genere, migrare da Access a Msde non è
complesso e con le opportune licenze potrebbe anche essere gratuito (al
limite, puoi migrare a MySql e sei ancora più aggratis).
Vedi tu.
ciao
Alberto

 è complesso
lo spero proprio, visto che adesso sono costretto a farlo per forza.


 lo spero proprio, visto che adesso sono costretto a farlo per forza.
E' sicuramente più complesso migrare da Dao a Ado.
Per quanto riguarda Access o Msde, i problemi potranno essere di natura
sistemistica/amministrativa (in Msde devi gestire parecchie cose che con
Access si ignorano), ma come sintassi cambiano giusto alcune cose: date,
booleani, qualche funzione Sql...
Nella stragrande maggioranza delle query/comandi sql, con poche cose si
passa da Access a Msde senza problemi.
Ciao
Alberto

 "PERCHE` ACCADE ?"
Io, antico e ormai desueto sostenitore di DAO, ma vivo, convinto e costante
detrattore di ADO, rispondo: non è colpa di ADO.
Verifica:
-Di non fare accessi con ADO e, contemporaneamente, nello stesso programma,
con DAO.
-Di avere le stesse versioni (ADO e Jet) su tutti i client + server
-Che la rete non sia instabile (anche un cavo tirato può creare problemi)...
Per quanto mi riguarda null'altro, oltre che un urlato (da stadio) "W DAO, W
Access".

 lo spero proprio, visto che adesso sono costretto a farlo per forza.
E ne abbiamo perso un altro...

 AC
io, al di là delle preferenze o degli aspetti controversi dell'eterna
diatriba DAO Versus ADO, sono quasi convinto del fatto che sia più che altro
un problema della connessione di rete.
Anni fa, il mio applicativo girava sotto Access con quasi 10 PC collegati
tutti assieme, e non ha mai dato problemi.
Presso altri clienti, bastavano 3 PC per far scricchiolare Access e far
rovinare il db un giorno sì e un giorno no.
Ripeto, lo stesso applicativo, per cui ho sempre dedotto che fosse la rete
LAN.
good coding!!!
-- 
Alletun
Sorry, ask me if you want to get my e-mail!

 si passa da Access a Msde senza problemi.
sto già incrociando le dita :-)
la parte che mi "spaventa" di più è che dovrò installare msde sul mio pc,
per fare qualche test, ma se ne è parlato in così tanti post che in un modo
o nell'altro penso che ne verrò fuori.


[Lupo] scrisse:

obtorto collo, credimi.
mi appoggio ad un db gestito da un'altra applicazione, e loro hanno deciso
di passare a msde.


 in un modo o nell'altro penso che ne verrò fuori.
Installare MSDE è banale (c'è su MS un setup autoestraente completamente
unattended, fai doppio click e trovi MSDE installato).
Farai molta più fatica a attaccarci un db clonato da quello del cliente, a
creare login e utenti, a gestire i diritti, a capire bene certe
impostazioni, la denominazione delle tabelle a più livelli, ecc...
Se non hai Sql-Server, non avrai neppure Enterprise Manager, ma per fortuna
il buon Montanari ci concede il DBAMGR (o qualcosa del genere), con cui
potrai gestirti MSDE in modalità grafica.
Se hai bisogno fatti sentire.
Ciao
Alberto

 Se hai bisogno fatti sentire.
stanne pur certo.
tieniti libero giovedì sera, tra le 21 e le 2, e tieni acceso il cellulare.
:-)


 cellulare. :-)
Tu chiama pure.
Però secondo me ti conviene farlo in giornata :-)
Ciao
Alberto

Grazie per le risposte, che non fanno che confermare quanto pensavo.
Per il momento sto facendo fare un'opera di normalizzazione del sw (la
situazione e` scandalosa, non capisco il loro stupore se le cose non
funzionano), poi si passera` ai test sull'hw.
Speriamo bene.
AC