| Forum: VB.NET |
Thema:
Re: Fuktioniert ..Aber viel zu langsam ..3x For... 2x IF.....Jemand eine Idee um es schneller zu machen??? |
Von:
Klaas Wedemeyer (
29.07.2004 10:10) |
Hi,
so wenig Zeilen und ich muß so lange überlegen was die machen: Ich würde sie als erstes einmal aufräumen.
Zu Deiner Frage:
Die ersten zwei Schleifen lassen sich vereinfachen
for each newRow in newdr.rows
dim rows() as datarow=Tables("Person").select("NAMESPALTE0 = " &newRow.Item(0)) ' wenn es sic um einen String handelt dann noch ' einfügen
for each dr in rows
Dann werden in der zweiten Schleife nur die benötigten Zeilen durchlaufen.
Doch was mach die zweite Schleife? id wird bei Dir nicht gesetzt, also kann ich nur raten: wenn id die ganze zeit Konstant ist dann kannst Du die Abfrage auch in das Select mit einbauen. Auf jeden Fall kann das id=dr.item(1) aus der Klammer raus.
Der zweite Teil Teil Index=dr.item(2) tritt pro schleifendurchlau nur einmal auf: ersetze die schleife un
das If durch:
Index = dr.item(2)
if Index>=1 and Index<= ds.tables("Alle").Rows.count then
newrow.item ...
Alles zusammen:
dim Id as integer = 0815
for each newRow in newdr.rows
dim rows() as datarow=Tables("Person").select("NAMESPALTE0 = " &newRow.Item(0) &" AND NAMESPALTE1 ="&id)
for each dr in rows
Index = dr.item(2)
if Index>=1 and Index<= ds.tables("Alle").Rows.count then
newRow.Item("MN" & "_" & id & "_" & Index) = dr.Item(4)endif
next
next
1 Schleife weniger, 1 weitere hat nur noch die Hälfte der Einträge zu bearbeiten, das sollte reichen. Und ich weiß immer noch nicht, was die Function macht.
Viel Glück,
Klaas
| Betreff |
Von |
Datum |
|
|
|
|
G.
Guest
|
02.08.2004 10:45 |
|
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!