Setrange liefert kein Ergebnis, wie abfangen

4. April 2008 11:59

Ich habe ein SETRANGE und nachfolgend ein paar Anweisungen, nun kommt es aber vor das das SETRANGE keinen Datensatz findet und das dann der komplette Block übersprungen wird.

Wie kann ich das machen das er mir auch wenn er beim SETRANGE nichts findet die Nachverarbeitung meiner Anweisungen macht?

Sorry für die Anfängerfrage (:-



rec_STAT0000.SETRANGE(rec_STAT0000.ARTIKELNR,Rec.ARTIKELNR);
rec_STAT0000.FIND('-');


Nachverarbeitung...

4. April 2008 12:07

Code:
rec_STAT0000.SETRANGE(ARTIKELNR,Rec.ARTIKELNR);
IF rec_STAT0000.FIND('-') THEN BEGIN
END;


Wenn du das Ergebnis von FIND abfragst (hier mittels IF), dann führt dies zu keinem Laufzeitfehler.

Falls du einfach nur wissen möchtest, ob es Datensätze gibt, ohne dass du deren Inhalt benötigst, solltest du dies hier tun:

Code:
rec_STAT0000.SETRANGE(ARTIKELNR,Rec.ARTIKELNR);
IF rec_STAT0000.ISEMPTY THEN BEGIN
  // ausführen, wenn keine Datensätze gefunden
END ELSE BEGIN
  // ausführen, wenn mind. 1 Datensatz gefunden
END;


PS: Bitte verwende für Quelltexte [code ] und nicht [quote ].
Zuletzt geändert von Natalie am 4. April 2008 12:08, insgesamt 1-mal geändert.

4. April 2008 12:07

war doch wohl zu langsam


Du brauchst nur ein "IF" einbauen, dann sollte es funktionieren

Code:
 
If rec_STAT0000.FIND('-') Then ;

oder
If rec_STAT0000.FIND('-') Then Begin
    //mache irgendwas
END;


mfg Michael