Newsgroup: it.comp.lang.visual-basic
Titolo: [?2]Do...Loop vs For...Next

Non ricordo a chi però tempo fà avevo asserito che :
ciclando  recordset  DAO con un ciclo For...Next al posto del Classico
Do..Loop ,si potevano avere incrementi di prestazioni  e che avrei postato
qui se trovavo la Fonte...
In Definitiva cosa ne pensate?
[Estratto dall'indirizzo 
http://polaris.umuc.edu/~lpang/305/VBtips1.doc
 ]
Title: QUICKLY LOOPING THROUGH A RECORDSET
Author: Leslie Pang
Date: Thursday, 5/13/99 3:54 PM EDT
Body:
A common database task is to loop through all the records in a recordset.
Typical code for completing such a task might
resemble the following: Do While Not rst.EOF ...task rst.MoveNext Loop
However, this structure can be slow because the
code checks for the end of the file at the beginning of each loop. You can
speed things up by eliminating this check using the
following setup: rst.MoveLast iTotal = rst.RecordCount rst.MoveFirst For
iCounter = 1 To iTotal ...task rst.MoveNext Next
iCounter Instead of checking to see if you've reached the end of the file,
the For loop simply ticks off the appropriate number of
cycles. This structure will speed up your search a great deal--as much as 30
percent.
Ciao
Alessandro
--
Morfeus®
Free Joint
:PII


che in linea di massima hai ragione, perchè eviti di controllare
ad ogni ciclo se sei arrivato ad EOF e credo che richiamare una
property del recordset sia più lento che usare delle variabili "standard"
il problema è capire quanto le prestazioni pure siano importanti
per il tuo progetto e poi devi considerare la "perdita di tempo" per
dimensionare l'indice del for
in definitiva, personalmente, preferisco usare Do...Loop
-- 
bye BlackMagic
ICQ# 85485468

 following setup: rst.MoveLast iTotal = rst.RecordCount rst.MoveFirst
Cè anche da considerare che non sempre hai disponibile la recordCount,
quindi se devi farti una SELECT  COUNT(*) non so se IMHO
hai ancora tutto quel vantaggio!
MIk

 hai ancora tutto quel vantaggio!
mmmmmhhh...perchè no?o meglio perchè devo ciclare un recordset di questo
tipo???
*Penso* che i metodi o i modelli di programmazione , vengono scelti in base
all'analisi delle problematiche del momento.
[Ot]
ho usato il presente per evitare di sbagliare anche adesso, CS....
[/Ot]
*Penso* di non voler fare un Select Count(*) e *penso* che non lo farò mai
In definitiva non *penso* nulla :)


[Morfeus®] scrisse:
(snip)
A morfè... cosa significa il tuo post?
Mik ha sollevato una corretta obiezione alla tecnica da te suggerita (il
recordcount non è disponibile per tutti i tipi di recordset), perchè gli
rispondi con frasi prive di significato logico?
Salutoni
Sergio


 CSSoft racconta in giro che

Forse perchè *pensavo* ad altro...
Mi scuso per altre eventuali cazzate....
In risposta a Mik ,non volevo minimamente , sollevare eccezzioni a quello da
lui detto, lo sò pure io che è così...
forse mi sono spiegato male , ma volevo intendere che questa tecnica ,che
poi *NON* è mia, *andrebbe* usata quando e se necessaria.
Posso usare un CStr(Null) ? No e Alloraaaaaa ;)


 perchè gli rispondi con frasi prive di significato logico?
Ma ho appena letto anch'io e non ho capito un gran chè!
Speriamo arrivi un'illuminazione....
Mik

 Posso usare un CStr(Null) ? No e Alloraaaaaa ;)
Questa non l'ho capita.....
Mik