Newsgroup: it.comp.appl.access
Titolo: Aumento di dimensioni dei file mdb

Ciao a tutti, sono Marco.
Vorrei sapere se qualcuno puň darmi una spiegazione in merito all'aumento di
dimensioni dei file mdb. Mi spiego meglio: io ho un'applicazione divisa in
BE e FE.
A volte devo ricreare gli archivi partendo da alcuni file DBF. Ho scritto
una routine che fa ciň utilizzando sia istruzioni SQL DELETE e INSERT
(metodo Execute) sia aprendo Recordset e scorrendoli. Il punto č che quando
gli archivi sono stati ricreati, io mi aspetterei che solamente il BE sia
aumentato di dimensione: invece anche il FE aumenta e no di poco. Questo
succede sia agendo direttamente dal FE (DBEngine(0)(0) o CurrentDb), sia
aprendo da codice il BE ed eseguendo tutto il codice direttamente su di esso
(Execute, OpenRecordset, etc..) che come metodo č piů veloce del precedente.
E' giusto che anche il FE aumenti di dimensione? Come mai ciň avviene? E
quale č il metodo giusto per limitare questo aumento (oltre al normale
compattamento)??
Grazie a tutti anticipatamente.....

 <nenand<NO SPAM NO SPAM NO SPAM> wrote in message
LIco4.97750$C3.10...@news.infostrada.it...

Sei proprio sicuro che il tuo FE non contenga alcuna tabella?
Altrimenti, probabilemente, dipende dal fatto che apri il recordset per poi
eliminarlo, l'eliminazione che esegui e', per cosi' dire, una eliminazione
"logica" e non fisica dei dati, per completare l'eliminazione (e renderla
"fisica") devi eseguire una compattazione del db.
Consentimi una domanda: perche' aggiorni periodicamente le tabelle dai file
dbf, invece di collegarli come fonte dati esterna?
Ciao, Sib
--
------------------------------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.it/it_db_access
------------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente


Grazie per la risposta Sib.
Allora, ho trovato una risposta su un ng inglese in cui spiega (come dici
tu) che l'unica maniera per ridurre le dimensioni del db è compattarlo.
L'aumento di dimensioni del FE penso sia dovuto alle query temporanee che
Access crea quando apro i recordset con origine delle istruzioni Sql:
nonostante io li apra direttamente sul BE le query temporanee rimangono sul
FE... boh??
Per quanto riguarda i file dbf è presto detto: si tratta di 3 (malfatte)
tabelle da cui io parto per l'elaborazione finale di un tabulato di stampa
 quasi 5000 pagine formato A4) più altri report di minore importanza.
Ho deciso di non collegare le tabelle poichè così facendo non riesco a
sfruttare le potenzialità di Access. Mi spiego meglio: la routine che ho
scritto apre dal FE direttamente il database (directory) dei file dbf e
senza collegare alcuna tabella, tramite istruzioni sql e recordset,
inserisce i dati nelle tabelle del BE, che sono relazionate tra di loro e
strutturate come dio comanda. Essendo un lavoro da fare una tantum,
preferisco procedere in questa maniera in modo da poter estrarre i dati per
il report tramite qry su tabelle ottimizzate piuttosto che sui file dbf. E
la differenza in termini di velocità è sensibile.
Spero di essermi spiegato bene. Adesso avrei io una domandina. Essendo la
stampa finale molto voluminosa ed avendo a disposizione una stampante ad
aghi per tabulati avrei pensato di creare un file di testo (puittosto che un
report) e mandare in stampa questo file. Quale è il metodo migliore per fare
ciò? Il mio obiettivo
è quello di bypassare (se è fattibile) l'interfaccia report di Access e di
poter stampare direttamente il file Ascii, impostando da codice tutti i
parametri di stampa, cioè salti pagina, caratteri di controllo e numero di
colonne per pagina. Grazie...


Dovrebbe essere possibile aprire la LPT direttamente come fosse
un file tramite la OPEN e scriverci su, ma onestamente non ho mai provato.
Mi è capitato invece di scrivere su di un file e copiarlo poi
sulla porta stampante, se cerchi sull' help le istruzioni
Print#, Write#, WriteLn, Open et similari troverai parecchi esempi
al riguardo.
Fatto questo puoi copiare il file ottenuto sulla porta stampante;
 io a suo tempo ho utilizzato un .bat che eseguiva
la copia richiamandolo con una opportuna shell() , ma
ricordo post in cui si accennava alla possibilità di eseguire
direttamente la copy come parametro del 
command.com
 ....
Probabilmente con una ricerca su Deja dovresti risalire
facilmente ai post in questione.
Bye, Ste