Newsgroup: it.comp.appl.access
Titolo: importazione o collegamento file txt .....un grosso problema

Salve a tutto l'NG
ho un problema che mi assilla oramai da diverso tempo e non so proprio come
fare...magari qualcuno puo' darmi una dritta.
in premessa preciso le caratteristiche del mio posto di lavoro: p4 3 ghz, 1
gb ram - win xp sp2 - access 2000.
ebbene questo è il mio problema...
ricevo mensilmente dei file in formato txt le cui dimensioni divengono
sempre ahime' piu' grandi.
si tratta di 7 file.
con apposita specifica di importazione li importo in una tabella accodando
tutti e sette i files in modo da avere un'unica tabella che contenga tutto.
tuttavia a causa delle enormi dimensioni dei files oggi questo non mi è piu'
possibile in quanto in dbase finisce per superare il limite socia di 2 gb.
ho provato anche ad accodare i files di testo in un unico file con
istruzioni del tipo input #1 ---- append#2... ottenendo cosi' un unico file
(dimensioni 2,3 gb).
a questo punto ho cercato di collegare il file txt al dbase ma access fa un
sacco di capricci.
potete suggerirmi un modo per aggirare l'ostacolo dei 2 gb di access? grazie
anticipatamente per la collaborazione.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

arirang ha scritto:

a dire il vero il raggiungimento di 2giga dovrebbe portare
immediatamente la riflessione di passare ad un sistema di database
diverso.
Oggi puoi contare su Sql Express 2005 che se non ricordo male supporta
il limite di 4giga.
E' vero anche che prima di pensare al passaggio di piattaforma occorre
valutare anche cose più banali: per esempio:
- esegui regolari compattazioni del db?
- sei sicuro della necessità della lunghezza di tutti i campi testo?
(pe. campo da 255 caratteri per il cap?) oppure dell'adeguatezza del
tipo di campo? (numerico, precisione doppia ecc ...) Ottimizzazioni in
tal senso riducono notevole spazio.
- perchè non splitti il db su più back end? hai davvero la necessità
di avere operativamente sempre a disposizione anche dati remoti?
cosi per ragionare in attesa di suggerimenti più competenti del mio
...
M

 Inviato via 
http://arianna.libero.it/usenet/
Ciao sono Michele.
Se ti può essere d'aiuto, posso suggerirti 1 sistema dalla mia umile 
posizione di appassionato Access per necessità (ma poi anche per piacere).
Tralasciando in partenza la solita libreria Scripting Runtime (Mi perdoni 
Big Massimiliano....se comunque vuoi leggere a riguardo cercala in questo 
NG, troverai qualcosa di mio), il metodo che vado a descriverti è solo per 
lettura di file testo e non richiede alcuna importazione, ma solo 
collegamento.
Il metodo di apertura in lettura per questi famigerati files, consiste nella 
creazione, nella stessa cartella dei tuoi files di testo, di un file con 
estensione ".ini".
Questo file ".ini" contiene le informazioni, e prima quella del nome del 
file testo, che il server ISAM utilizza esclusivamente per aprire il file di 
testo e contiene:
-il nome del file testo
-informazioni riguardo alla tabulazione (separatori, segni, spaziatura fissa 
ecc...)
-nomi, lunghezze e tipo dati dei campi
Una volta creato questo file, andrai a creare una tabella collegata al tuo 
file di testo, e verranno utilizzate queste informazioni per decifrare il 
file testo.
Il risultato sarà una vera e propria tabella di sola lettura dove potrai 
esercitare tutte le facoltà in tuo possesso (ricerca, query, ecc....) e il 
tutto senza importare niente.
Dovrai avere tanti file .ini quanti saranno i files di testo, ma se utilizzi 
sempre gli stessi nomi.....
Per informazioni su come creare il file .ini guarda su:
http://msdn2.microsoft.com/en-us/library/ms404679.aspx
How to: Add a Schema Definition to a Text File Data Source
Per collegarti il file al db io uso DAO, ma dovrebbe essere sufficiente un 
collegamento guidato.
Fammi sapere se riesci e come va.
Michele
joyl...@alice.it

 news:193Z203Z232Z5Y...@usenet.libero.it...
Scusa, siccome ho visto ora sull'help di msdn che con un file.ini si possono 
gestire 2 o più files testo, ritiro quello che ho detto riguardo alla 
necessità di più files .ini tanti quanti i files testo. E' comunque da 
provare, io ho solo avuto l'occasione di utilizzare tale metodo per un file 
testo..
Saluti 


TI ringrazio, in mattinata faro' questa prova....e ti faro' sapere, anche se
non mi è chiaro come si fa poi a collegare il file ini.
assicuro che quanto a struttura la tabella è già ridotta all'osso, il
formato dei campi è quello giusto, purtroppo è la quantità di record che è
sconfinata.
per altro questo file scaturisce da 7 file ciascuno singolarmente ampiamente
gestibile (ogni file sarà intorno a 300/350 Mb).
Ahimè sono arrivato ad accodare tutti e sette i files in quanto ho biogno di
un archivio unico...per intenderci è come se ciascun file contenesse le
informazioni di un venditore...ma vuoi in un unico file l'informazione di
tutti i venditori.
per il momento ancora grazie....
a presto



GRAZIE GRAZIE
funziona tutto....obbligato



Ciao sono Michele. Allora, funziona tutto sul serio? Ma non ho capito, 
funziona tutto...obbligato nel senso che è lento o che sei obbligato nei 
miei confronti?
Beh, se sei riuscito a far funzionare tutto complimenti, non è tanto 
immediata la comprensione di questo strumento se non hai esempi concreti 
sottomano.
Avrai pure notato che c'è un'opzione per dichiarare se la prima riga del 
file contiene o meno il nome dei campi, occhio sennò ti mangi il primo 
record....
Adesso in teoria non dovresti più avere bisogno di mega importazioni, e ti 
dovresti studiare un sistema metodico per avere rapido accesso ai dati ogni 
volta che ti fanno pervenire un nuovo archivio. Ma toglimi una curiosità: 
come si comporta Access aprendo un mega  file testo con il metodo sopra in 
termini di ricerca e di velocità?
Saluti e buona serata
Michele
joyl...@alice.it


ciao michele...obbligato nel senso che resto obbligato nei tuoi confronti e
in generale nei confronti dell'ng sul quale, ahime', non sono sempre
presente, ma credimi tutto quello che conosco di access (che per quanto poco
sia mi consente di prendermi le mie soddisfazioni) l'ho imparato seguendo
questo gruppo.
si avevo notato dell'opzione della prima riga e quanto invece alla
possibilità di usarfe uno struimento diverso da access....purtroppo non se
ne parla proprio.
la piattaforma che mi è consentita non prevede altri strumenti.
dunque stamattina ho fatto leggere al mio db un file di testo di 3,6 gb.
il collegamento con dao è immediato.
ho girato una query semplice di raggruppamento (conta e raggruppa ...forse
ha impegato 15 minuti), ma tieni presente che ci sono 45 milioni di record
probabilmente ricorrendo alle transazioni riesco a dimezzare il tempo.
ora se non ti chiedo troppo me la dai un'altra dritta?
il collegamento con dao ovviamente gira a condizione che in una gerta folder
ci sia sia il file ini (ma si deve chiamare necessariamente schema ???) che
il file txt...
se nella stessa cartella avessi anche il file mdb e poi volessi masterizzare
tutto su un dvd come vedo fare per fare in modo che il collegamento viva
anche sul dvd?
ancora grazie
Antonio
ari...@libero.it


 Inviato via 
http://arianna.libero.it/usenet/
Ciao Antonio.
Per quel che riguarda il nome del file .ini penso possa andare bene 
qualsiasi nome.
Per quel che riguarda il file mdb messo su dvd invece, dovresti provare, ma 
siccome gli mdb devono, per quel che ne so io, essere abilitati alla 
scrittura sul file stesso (per le tabelle di sistema penso, e non solo 
quelle), il supporto dvd non va bene perchè all'apertura ti apparirà un 
messaggio con scritto che il database verrà aperto in sola lettura. Prova ad 
aprire una nuova discussione per saperne qualcosa di più. una soluzione 
potrebbe essere quella di organizzare una copiatura dell'mdb su disco rigido 
prima di proseguire.
Per mantenere vivo il collegamento comunque, dovresti ad ogni apertura di 
database, impostare una funzione VBA che costruisca il percorso del file 
testo partendo dalla cartella del database. La puoi ricavare da una delle 
proprietà DAO del database stesso una volta apertolo con
set db=currentdb
Mi sembra che la proprietà "Name" contenga il percorso completo.
A proposito, mi sono dimenticato di dirti che per i tipi di campi, sono 
validi quasi tutti i tipi di access
Boolean
Byte
Integer
Long
Currency
Single
Double
Date/Time
Text
Memo
Comunque, seguendo il suggerimento di Ciroteo, se ti piace smanettare con 
VBA, ti dovresti creare una funzione che distribuisce in più mdb il 
contenuto del testo, seguendo un criterio che ti consenta di velocizzare la 
maggior parte delle ricerche (che ne so, per anno, per ID, per Ordine 
alfabetico), anche perchè una volta sotto mdb, sono disponibili gli indici, 
che una volta creati, per operazioni di sola lettura, velocizzano di molto 
le query. E' assurdo lo scorrimento di un file da 3,6GB per trovare tre 
record.....
A proposito, le transazioni servono per convalidare le modifiche su un 
database in un colpo solo, avendo la sicurezza di eseguirle tutte o nessuna. 
Associate alla gestione degli errori, sono utilissime per l'integrità dei 
dati.
Saluti
Michele