Newsgroup: it.comp.lang.visual-basic
Titolo: ?Verificare compattazione db

Uso vb6 e DAO 3.6
Come ho spiegato in un post precedente, il tempo di attesa per compattare un 
db access, che si trova sul server, da un pc client è lunghino, quindi ho 
deciso di seguire i vostri consigli. Copio il db in locale, lo compatto e lo 
ritrasferisco sul server.
Visto i tempi di attesa per la compattazione, mi sono accorto che il mio 
cliente, non la esegue mai perchè si scoccia aspettare.
Avrei pensato quindi, di inserire nel programma una procedura che, esegue la 
compattazione mensile forzata ad ogni avvio del programma.
Mi spiego, ci sono 5 pc collegati in rete, la mattina sono tutti spenti 
eccetto il server, quando un operatore apre il programma, parte la procedura 
forzata.
A questo punto sorge il problema, perchè se un pc sta eseguendo la 
compattazione, il db è occupato e quindi gli altri operatori non potrebbero 
accedere agli archivi, quindi volevo inserire un msg per avvertire che un 
operatore sta eseguendo la compattazione e che si deve attendere il termine 
della procedura.
Spero fin qui sia tutto chiaro.
La mia domanda è questa:
Esiste un modo per verificare se è in corso una compattazione?
Grazie
Carmelo 


DIco una sciocchezza... ma se scrivi 2 righe in un VBS da far girare
lato Server schedulando un Job...?
Per il test di compattazione in corso, lo esegui lato Client..
verifichi che quando la compattazione è in corso non ti è possibile
connettersi..!
@Alex

 Esiste un modo per verificare se č in corso una compattazione?
Molto piů semplicemente scheduli una compattazione alle 4 di notte con 
un'Operazione Pianificata e vai sul sicuro.
Ovviamente il sw che effettua la compattazione deve essere residente sul 
server.
bye

 ha scritto nel messaggio 
news:46940c94$0$16039$5fc...@news.tiscali.it...

Intanto grazie
E se facessi un eseguibile senza form, solo un modulo con dentro la 
procedura di compattazione, da mettere nel server (cosi non copio gli 
archivi in locale) per poi lanciarlo dal client col comando schell potrebbe 
funzionare? Il problema č che l'eseguibile non mi rimanderebbe nessun msg 
che ha finito la procedura.
Grazie
Carmelo 

 che ha finito la procedura.
Era quello che pensavo io.
Per il problema di fine compattazione, puoi creare un file log dove vai 
a scrivere/leggere lo stato della compattazione.
In ogni caso se il server è sempre acceso puoi benissimo schedulare la 
compattazione alle 4 di notte e sei sicuro che la mattina dopo è terminata.

 terminata.
Prima però farei un bel backup del db e se il db che salta fuori dalla 
compattazione non funziona lo rimpiazzerei con il vecchio.
Sembra una cavolata ma è capitato anche questo.
Ciao 

"Telema srl (Nicola Ottomano)" 
<nicola.ottomano_TOGLIMI_@telemainternational_TOGLI_.com> ha scritto nel 
messaggio news:wLnli.52595$y05....@tornado.fastwebnet.it...

Il mio obbiettivo era quello di fare la compattazione in automatico, tipo 
ogni mese (credo sia un periodo giusto), ma anche di lasciare libertà 
all'operatore di farla quando vuole, per questo avevo pensato di lanciare 
l'eseguibile dal client col comando schell e non con un'operazione 
pianificata.
Il fatto è che non sono sicuro che, il comando schell funzioni dal client, 
visto che all'inizio avevo pensato di istallare il programma solo sul server 
e accedervi dal client con un collegamento, ma non ci sono riuscito perchè 
mi dava errore (perchè?), quindi ho istallato il programma sui client e solo 
gli archivi sul server.
Carmelo 

 Ciao
Altro che cavolata... sante parole.
Mi sono trovato piů di una volta il DB corrotto e salvato dal metodo
CompactDatabase con il nome di Default db1.mdb invece che quello che passavo
io... e chi lo trova piů...?
-- 
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.alessandrobaraldi.it
---------------------------------------------------------------------------

 io... e chi lo trova piů...?
Beh, č capitato anche di avere il db bello e compattato che tenti di aprirlo 
e access non ce la fa piů.
Come prima regola evitare la compattazione in rete: la rete potrebbe avere 
dei problemi e i dati che ci passano sono corrotti.
Il db deve essere compattato/ripristinato da un'app in locale.
Dove lavoravo si era arrivati al limite di costruire un'app nostra che 
facesse la compattazione.
Come? Facile: hai il tuo db e una copia con la sola struttura, fai un loop 
su tutte le tabelle e copi i dati da quello pieno a quello vuoto.
Ciao