Newsgroup: it.comp.appl.access
Titolo: Importazione e memoria esurita

Ciao a tutti
Ho fatto derlle prove con il db ma non va troppo bene. Il problema è che
devo importare dei dati (supponiamo 500.000 righe)
Utilizzo il seguente codice per importare
 Dim x As Integer
    For x = Application.CurrentData.AllTables.Count - 1 To 0 Step -1
        If Application.CurrentData.AllTables.Item(x).NAME = NomeTabella Then
            DoCmd.DeleteObject acTable, NomeTabella
            Exit For
        End If
    Next x
    DoCmd.TransferDatabase acImport, "dBase 5.0", NomeDir, acTable,
NomeFileSenzaPath, NomeTabella, False
    DoCmd.RunSQL "ALTER TABLE tDBF ALTER COLUMN Sigla text(4);" // se ci son
solo numeri crea il campo int
    DoCmd.RunSQL "ALTER TABLE tDBF ALTER COLUMN Tempo smallint;"  //a volte
lo importa come testo e non so perchè
    DoCmd.RunSQL "ALTER TABLE tDBF ALTER COLUMN Attesa smallint;" //a volte
lo importa come testo e non so perchè
E' abbastanza veloce, 6 minuti per importare i dati ma per cambiare il tipo
di dati sta 5 minuti per arrivare a metà (lo deduco dalla barra sotto a sx)
e poi mi dice che non c'è abbastanza memoria.
Ho 256MB di ram Win 98 e Access 2000. Nessuno ha una idea di come posso fare
per questi problemi?
Grazie 10000
TT

 ha scritto nel messaggio
news:N1Bcc.114029$FJ6.4...@twister1.libero.it...

Prova ad aumentare la dimensione del file di paging...
Ciao.
-- 
Sergio MAZZA

 ha scritto nel messaggio
news:LGWcc.25821$hc5.1...@news3.tin.it...

Ciao Sergio,
Diciamo che prima avevo 128MB di ram. Ho provato ad aggiungere 128 MB ma
senza successo.
Ho messo a il file di paging con dimensione minima 1GB e massima 3GB. e mi
da lo stesso errore.Altre idee?
Grazie e ciao
TT

 ha scritto nel messaggio
news:LGWcc.25821$hc5.1...@news3.tin.it...

Ri ciao
Sono riuscito a fare una prova con un pc con 1GB di ram, amd 1700 e fa lo
stesso,
sta 1/3 del tempo ad importare ma al momento della conversione dà lo stesso
errore.
Se importo solo 6000 record tutto va bene!!!
Mahh
TT

 ha scritto nel messaggio
news:X9Zcc.113585$Kc3.3...@twister2.libero.it...

Hai provato a disabilitare l'utilizzo del file di swap?
Ciao.
P.S. Occhio che molta ram non aumenta le prestazioni, anzi, dopo una certa
quantità (se non ricordo male 512) queste degradano; sopratutto con S.O.
Win9x...
--
Sergio MAZZA

 e poi mi dice che non c'è abbastanza memoria.
la perdita di tempo mi pare logicamente corretto. Per fare la alter si 
fa un salvataggio temporaneo della tabella. Tanto per cominciare perche' 
le alter non le fai in una unica istruzione?
Per evitare le alter potresti inoltre:
1) collegare la tabella dbase
2) usare una query di aggiornamento su una tabella esitente con la 
struttura giusta
--
a.cara


Si ho provato.
Tra le varie ho modificato il reg con
[HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\Engines\Jet 3.5]
"MaxLocksPerFile"=dword:000927C0
[HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 3.x]
"MaxLocksPerFile"=dword:000927C0
[HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\Engines\Jet 4.0]
"MaxLocksPerFile"=dword:000927C0
e sembra funzionare!
Grazie a.cara e Sergio MAZZA
Visto che non mi avete risolto il problema ma l'ho fatto io, rispondetemi a
questo (ovviamente non
dovete prendermi sul serio, sto scherzando! ;-) ).
Aprendo le maschere, che sono un fottio di conteggi ecc. mi sta moltissimo,
cambio record
e passano 7 min circa per la visualizzazione. Ed è un po' seccante. Sapete
se posso velocizzare
un po il tutto?
Grazie ancora ad entrambi!
Ciao
TT

 TT
Ciao.
--
Sergio MAZZA

 ha scritto nel messaggio
news:c55khl$bb9$1...@canarie.caspur.it...

Innanzitutto grazie.
Si, ma come, coome! .... :-) .........................(è appena finito
zelig)
Adesso ho una maschera che ha 3 sottomaschere e una di queste ha
un'altra sottomaschera.
Ognuna di queste visualizza dei calcoli, min, max conteggi ecc.
Il tutto perchè si vuole avere sott'occhio tutta una serie di dati.
Ovvio che ogni volta che cambio il record della maschera
mi fa dinuovo i conteggi ecc... a parte guelli della prima sottomasch
perchè  i dati sono riferiti a tutta la tabella.
Mi era venuta l'idea, non so se buona o no, di fare via codice i
conteggi, max min .... e di inserire in variabili pubbliche in modo da
avere già tutto salvato appena finita un'import (potrei farlo solo perchè
i dati non verranno cambiati dopo l'importazione).
Sinceramente non so nè se è fattibile, sia in termini di tempo che di
scrittura codice,nè se mi conviene. Avute la risposte non saprei da
dove cominciare.
Detto ciò non penso di essere messo male col db
Ciao
TT

 TT
Come?
1 - struttura a schede;
prova ad inserire le sottomaschere in una struttura a schede; quando
l'operatore vuole vedere i calcoli, al clic, tu (si fa per dire) effettui la
sincronizzazione della sottomaschera e dei calcoli;
2 - maschere popup a richiesta;
Ciao.
-- 
Sergio MAZZA

 ha scritto nel messaggio
news:xP6ec.40758$hc5.1...@news3.tin.it...

Anche tu qui il giorno di Pasqua?
Grazie per il suggerimento.Dovrò pensarci sù quale delle soluzioni è la
migliore.
Buona pasqua!!!!!!!!!!
TT