Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 + ADO 2.8 - problema con db Access

Ciao a tutti
dopo anni di annoverato servizio mi si è presentato il seguente messaggio 
aprendo il database con access:
"E' stao rilevato che il database è in uno stato non coerente. N verrà 
tentato il recupero....etc. etc. cut""
Quanlcuno sa dirmi perchè succede questo? e come eventalmente posso eseguire 
via codice il recuper che farebbe l'access?
ciao e grazie a tutti. 

 eseguire via codice il recuper che farebbe l'access?
Può essere successo qualcosa durante la scrittura sul db,
come ad esempio un'interruzione di alimentazione, un'interruzione nella 
comunicazione a causa della rete, etc.
Per provare a recuperarlo via codice devi fare una compattazione e devi 
usare adox (dai riferimenti Microsoft ADO ext. 2.8 fom DDl and Security)
c'è la possibilità però che qualcosa sia andato perso.
ciao
stefano

Grazie per il suggerimento
me lo sto snocciolando ma mi sembra un po complesso.
Ho cercato esempi ma di specifico sulla compattazione no.
Mi sembra di capire che ADOX serva prevalentemente per creare o modificare 
la struttura di un database, ma ripristinarlo da errori come lo uso?
ciao e grazie ancora. 

elmariachi ha scritto:

scusami ho scritto una str... sciocchezza
http://support.microsoft.com/kb/230501/it
chiedo venia.
ciao
stefano

Ho provato, su db normali in effetti funziona correttamente, ma sul db che
mi da quel messagio viene sollevato un errore di formato database non
riconosciuto.
Però se lo apro con access lo riconosce e lo sistema.
Che posso fare?

 ha scritto nel messaggio 
news:494675b3$0$1120$4faf...@reader1.news.tin.it...

Se riesci, crea un nuovo db e importa tutti gli oggetti (escluse le tabelle 
di sistema). Se si tratta della corruzione di tabelle sys* dovresti 
risolvere. Okkio che con il nuovo db devi reimpostare tutti i riferimenti 
che avevi nel vecchio.
Ciao.
eSQueL 

Il problema è che non riesco ad aprirlo via codice, ma solo direttamente con 
access.
Quindi anche volendo creare un nuovo db non so come pescare i dati. Con ADO 
o con JRO mi dice formato di database non valido.
Sarei proprio curioso di  sapere in access come fanno.
ciao a tutti 

 ha scritto nel messaggio 
news:49475d86$0$1126$4faf...@reader1.news.tin.it...

Forse non ho capito io, oppure non mi sono spiegato bene.
- In Access crei un nuovo db;
- Nella finestra di database click dx -> importa;
- Si apre la finestra che ti permette di navigare nelle directory(s);
- Cerchi il vecchio db e ci clicchi sopra;
- Si apre una finestra che espone tutti gli oggetti presenti (presumo 
t'interessino tabelle ed eventualmente query);
- Seleziona prima le tabelle (tutte) e le importi;
- Ripeti la procedura anche per gli altri oggetti (se esistono);
- Ristabilisci i riferimenti che avevi nel vecchio db e, soprattutto, le 
relazioni fra le tabelle;
- Rinomini il nuovo db con il nome del vecchio (che provvederai ad 
eliminare);
- Accedi da codice VB al nuovo database.
Nota: un db Access è soggetto a corruzione qualora non si provveda alla 
compattazione periodica del medesimo (quindi, se non l'hai previsto è meglio 
che provvedi in tal senso).
Ciao :)
eSQueL 

 Forse non ho capito io, oppure non mi sono spiegato bene.
L'OP sta chiedendo come fare il ripristino della situazione da codice, 
non come ripristinare manualmente e poi accedere da codice.
Credo che JRO sia l'unica strada. Può essere che stia utilizzando un 
JRO non recente.
Alberto
-- 
Léo Campion: Il lavoro è l'occupazione di chi non ha nulla da fare.

 ha scritto nel messaggio 
news:mn.828a7d8ca...@hotmail.com...

Ok, in ogni caso se vuol recuperare il db in quel modo potrà farlo :)
Ciao.
eSQueL 

 Ok, in ogni caso se vuol recuperare il db in quel modo potrà farlo :)
ehm, sopra dice che con access l'ha _gia'_ aperto :)
ciao 

L'unico che vedo nella lista è JRO 2.6...ce ne sono altri?


Non voglio usare direttamente l'access non per pigrizia ma per il semplice 
motivo che altrimenti dovrei costringere chi usa la mia applicazione ad 
avere pure la licenza di access.



Ecco, puoi evitare (non in modo definitivo :P) questo curando che il db sia 
compattato di frequente (ad esempio, ogni 10 chiusure usando un contatore). 
Il mio era solo un suggerimento per uscire dall'impasse attuale :)
Ciao.
eSQueL 

> non recente.
Anche io ho il 2.6.
Eventualmente verifica di avere Jet4 SP8.
Alberto
-- 
La bellezza è opinabile, sulla bruttezza sono tutti d'accordo.

 Alberto
Non se puo essere utile in questo contesto, ma ci sarebbe pure il 
programmino MS Jetcomp.exe moto docuemtnato anche.
Non ho  provato,  ma credo si possa usare sia direttaemte sia chiamandolo 
dall'interno di vb
-- 
Greg 

Interessante, attivo subito google
grazie
