[Gelöst] Setrange Ergebnis

17. Oktober 2007 08:15

Hallo

Ist es möglich mittels einer IF-Scheife das Ergebnis einer Setrange-Funktion abzufragen. Sprich ob diese Setrange Anweisung Daten beinhaltet oder nicht.

mfg
stony
Zuletzt geändert von stony am 18. Oktober 2007 08:14, insgesamt 1-mal geändert.

17. Oktober 2007 08:34

ja, anschließend ein ISEMPTY, wenn ja, dann keine Datensätze

17. Oktober 2007 08:50

Michael Schumacher hat geschrieben:ja, anschließend ein ISEMPTY, wenn ja, dann keine Datensätze


...oder ein findfirst/findlast ein false ergibt.

Hier steht man dann gleich auf dem ersten/letzten Datensatz und kann dann die Liste durcharbeiten.

Markus

17. Oktober 2007 09:02

Niemals FINDFIRST oder FINDLAST verwenden, wenn man anschließend die Datensätze durchlaufen will.
Diese beiden Befehle soll man ausschließlich dann benutzen, wenn man wirklich nur den ersten bzw. letzten Datensatz benötigt.

Wenn du anschließend die Datensätze durchlaufen willst, nutze weiterhin die altbekannten Befehle FIND('-') bzw. FIND('+')

17. Oktober 2007 12:48

Timo Lässer hat geschrieben:Niemals FINDFIRST oder FINDLAST verwenden, wenn man anschließend die Datensätze durchlaufen will.
Diese beiden Befehle soll man ausschließlich dann benutzen, wenn man wirklich nur den ersten bzw. letzten Datensatz benötigt.

Wenn du anschließend die Datensätze durchlaufen willst, nutze weiterhin die altbekannten Befehle FIND('-') bzw. FIND('+')


?
Ich dachte Find[First|Last] wäre der designierte Nachfolger zu find('-/+) - insbesondere in -zumindest bei uns- immer häufiger anzutreffenden SQL-Servern/Datenbanken.

Markus

17. Oktober 2007 13:49

Das schon, Markus,
aber eben für die Spezialanwendung nur den ersten oder letzten Satz zu holen.
Für den Schleifendurchlauf bietet sich da eher FINDSET an, solange die Datensätze nicht rückwärts durchlaufen werden sollen.
Dann hilft wirklich nur noch find(+) und Next(-1) bzw vorwärts laufen, nachdem man die Sortier-Richtung umgedreht hat.

Solange man aber nur wissen will, ob überhaupt ein Datensatz existiert um evtl den Filter zu lockern, gibt es nichts schnelleres als ISEMPTY
Hier wird nämlich nur ein "Select TOP 1 from Tablename" durchgeführt, das heißt es werden nicht wirklich Daten übertragen sondern nur die Rückmeldung 1 Datensatz betroffen oder 0 Datensätze betroffen....