Newsgroup: it.comp.lang.visual-basic
Titolo: ADO è più lento di DAO?

Salve,
ho avuto modo di utilizzarli entrambi (ADO, DAO) sullo stesso
programma, che gira sullo stesso pc (il mio :) ), e con lo stesso
database (più o meno)...quello che mi è sembrato è che...quando ho
provato ad accedere alle mie tabelle con ADO impiegasse più tempo
rispetto a DAO...ma può essere?
Quando aprivo una connessione al database con ADO dovevevo aspettare
circa 4/5 secondi in più rispetto a DAO, e non solo, anche quando gli
chiedevo di visualizzarmi l' intero contenuto del db (è una
schifossima tabella con una trentina di record dentro composti da 6
campi) impiegava qualche secondo in più rispetto a DAO.
Solo quando rilanciavo il programma per la sconda volta, ADO diventava
un po più veloce. E' normale questa cosa? E' solo una mia impressione
(mica tanto impressione) oppure è veramente così? Se così fosse è
normale? Io sinceramente mi aspettavo il contrario, che ADO essendo
più nuovo di DAO funzionasse più velocemente...poi, già che ci sono un
altra cosa. Se io devo utilizzare un database interno al mio pc, per
eseguire qualunque operazione (aggiungere, cancellare, ordinare...) è
meglio eseguire un istruzioni sql o far gestire tutto direttamente
agli oggetti del VB? Se avessi un pc e un database separati sarei per
dividere i due, passare tutto al database e poi aspettare una
risposta, ma nel caso in cui i due sono sullo stesso pc...a me sembra
che usare l' sql mi uccide il programma...aspetto consigli.
Saluti...

Confermato da M$, ADO e' piu' lento di DAO.
Ciaotutti,
Alessandro

>Confermato da M$, ADO e' piu' lento di DAO.
Ma che ca**ata, hanno fatto una cosa, si dice più semplice da gestire,
ma...pure più semplice nel funzionamento allora. Per quale motivo ADO
ha sostituito DAO allora, se è anche più lento?

 ha sostituito DAO allora, se è anche più lento?
Perchè con ADO puoi fare MOLTE più cose in + rispetto a DAO!

che usare l' sql mi uccide il programma...aspetto consigli.
Se sono degli aggiornamenti singoli, ovvero su una tabella alla volta, io userei i metodi
dell'oggetto Recordset)
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

dell'oggetto Recordset)
Bhè si, quello che vado a fare è l' aggiornamento di un record in un
unica tabella, quindi di cose complicate non ce ne sono proprio.
Ultimamente mi stanno stressando con il modo di programmare, ad
esempio dove sono io mi hanno vietato l' utilizzo dei metodi degli
oggetti recordset, tutto l' sql deve essere gestito FUORI dal form,
tutte le azioni da fare su un db vanno passate al database in sql
affinchè sia lui a lavorare e non l' apllicazione che aspetta solo la
risposta...cose di questo genere, quindi ora ho il terrore a scrivere
in un form mioRecordset.addnew :)
Secondo te, per mantere in ogni modo un buono stile di programmazione,
è bene imporsi dei limiti?
Saluti...


Tu gli hai detto, vero, che cmq con Access la macchina che fa il lavoro e'
la stessa?
Se hanno intenzione di passare a SQL Server l'idea ha senso, altrimenti
conviene usare i metodi di ADO, anche perche' (e questa e' una cosa di cui
tener conto) le query con ADO in genere NON sono pass-thru, il che significa
che cmq c'e' un preparse a livello di ADO o di OLEDB provider che fa si' che
l'SQL che arriva al DB possa essere diverso da quello che hai scritto.
E' pur vero che usando i recordset fai lavoro doppio, prevalidando tutto e
validandolo poi di nuovo a livello di RDBMS, ma e' anche vero che hai
maggior facilita' di sviluppo e manutenzione ad un costo limitato.
Ciaotutti,
Alessandro
P.S.  Per la cronaca, mi dicono che ADO comunica con i vari DB tramite
SQL...

 rispetto a DAO...ma può essere?
Per molti DB questo è vero (ad esempio i DBF), ma per il formato Access97
(mi sembra di capire che usi questo) non dovrebbero esserci molte
differenze.
La differenza più grande è solo l'apertura del database, che ti consiglio
quindi di farla
quando lanciano il programma e di chiuderla quando escono.
Ciao
Sirjo

quindi di farla quando lanciano il programma e di chiuderla quando escono.
Vedrň di cambiare...
Saluti...

 ha scritto nel messaggio
news:3a3dce5...@news.enter.it...

ADO è ottimizzato per SQL Server, non per Access.
DAO invece è l'esatto contrario...
Cmq sia sacrificate pure qualche secondo, perchè in 
VB.NET
non c'è traccia di DAO...  a buon intenditor poche parole. :)
Byee
Zeross

 non c'č traccia di DAO...  a buon intenditor poche parole. :)
l'evoluzione della specie sembra costi la devoluzione dell'individuo...