Newsgroup: it.comp.lang.visual-basic
Titolo: consiglio su adodb e gestione dei recordset

Devo gestire un' enorme mole di dati (tant' e' che, a volte, ho problemi di
overflow): ho dei cicli di calcolo che memorizzano i valori di alcune
variabili che possono arrivare a 50.000 iterazioni; ho pensato di
memorizzare sul disco i risultati diciamo ogni 10.000 iterazioni.
Per far cio' ho pensato di memorizzare periodicamente i dati in recordset,
quindi in un database, e di eliminarli dalla memoria. Premetto che le
variabili da memorizzare sono contenute in array bidimensionali (una
dimensione da 50.000 elementi, quindi, verra' ridotta a 10.000).
A questo punto vi chiedo se, secondo voi, mi conviene:
1) salvare tali risultati in un unico grande recordset, quindi in un' unica
tabella, ed effettuare gli aggiornamenti del recordset ogni tanto
(riversandovi gli ultimi 10.000 risultati),
2) oppure creare di volta in volta un nuovo recordset ed una nuova tabella?
Inoltre posso velocizzare il tutto lavorarando su variabili memorizzate
direttamente su recordset?
Grazie.
                                        g.
PS: ho premuto (piu' volte) F1.

 ha scritto nel messaggio
news:Nz6K7.435$263....@news1.tin.it...

Giuro che non ho capito lo scopo:
vuoi memorizzare perchč ti interessano i risultati "parziali"
o vuoi memorizzare per saltare delle elaborazioni e rendere piů veloce il
codice?
ciao
ugo

| Giuro che non ho capito lo scopo:
| vuoi memorizzare perchč ti interessano i risultati "parziali"
| o vuoi memorizzare per saltare delle elaborazioni e rendere piů veloce il
| codice?
Be' per non appesantire l' esecuzione del codice, infatti mi e' capitato di
arrivare all' overflow (credo) per un eccessivo uso di memoria.
In ogni caso devo memorizzare in qualche modo tutti i risultati parziali.
Fino a ieri ero intenzionato a salvare il tutto in tabelle da creare di
volta in volta, ma, dopo una giornata di occhi rossi davanti alla guida, ho
scoperto che non si possono creare nuove tabelle con ado, quindi credo che
salvero' i dati in file di testo.
Ciao.
                                    g.

 salvero' i dati in file di testo.
dim myCn as new adodb.connection
mycn.connectionstring = <stringadiconnessione>
mycn.open
mycn.execute "CREATE TABLE <nometabella> (<nomecampo1> integer, <nomecampo2>
text )"
Con access 2000 funziona.
ADO puņ creare nuove tabelle con la suddetta sintassi.
In alternativa puoi usare ADOX
--
Ciao
Franco


Anche dimenticando l'uso di Adox, puoi sempre usare una
.Execute "CREATE TABLE PIPPO (CODICE VARCHAR(10), DESCRIZ VARCHAR(30))"
sulla connection Ado...

 ha scritto nel messaggio
| news:QHdK7.2234$zO1....@news2.tin.it...
| > | Giuro che non ho capito lo scopo:
| > | vuoi memorizzare perchč ti interessano i risultati "parziali"
| > | o vuoi memorizzare per saltare delle elaborazioni e rendere piů veloce
| il
| > | codice?
| >
| > Be' per non appesantire l' esecuzione del codice, infatti mi e' capitato
| di
| > arrivare all' overflow (credo) per un eccessivo uso di memoria.
| >
| > In ogni caso devo memorizzare in qualche modo tutti i risultati
parziali.
| >
|
| Sicuro che non si possa ottimizzare il codice?
| Postaci qualcosa...
Be', credo che sarebbe estremamente lungo...
| > Fino a ieri ero intenzionato a salvare il tutto in tabelle da creare di
| > volta in volta, ma, dopo una giornata di occhi rossi davanti alla guida,
| ho
| > scoperto che non si possono creare nuove tabelle con ado, quindi credo
che
| > salvero' i dati in file di testo.
| >
|
| Anche dimenticando l'uso di Adox, puoi sempre usare una
|
| .Execute "CREATE TABLE PIPPO (CODICE VARCHAR(10), DESCRIZ VARCHAR(30))"
|
| sulla connection Ado...
Grazie 1000! Sicuramente stavo cercando nella direzione sbagliata: adodb in
se' non consente di creare tabelle, ma lo permette attraverso l' uso di
istruzioni sql (che non conosco molto) che non immaginavo avesse queste
potenzialita'.
Ciao.
                                    g.
PS: so che sarebbe possibile salvare (e caricare) i dati da file di excel,
ma anche qui la guida mi aiuta con sole cinque righe di esempio; sapresti
darmi qualche dritta o link? Grazie ancora per le risposte.