Super, vielen Dank, ich habe diesen Teil eingebaut:
PHP-Code:c+ and (:PROGD0 = ' ' or PROGPW = :PROGD0)
c+ and (:AUSFD0 = ' ' or AUSFPW = :AUSFD0)
c+ and (:IDNRD0= ' ' or IDNRPL = :IDNRD0)
c+ and (:ANGBD0 = ' ' or ANGBPL = :ANGBD0)
Allerdings habe ich noch ein Problem:
Ich arbeite mit einem SQLRPGLE- und einem VARPG-Programm.
Das Varpg steuert und zeigt die Daten in einer Subfile an, das SQLRPGLE-Programm ermittelt die Daten.
Hier arbeite ich mit einem 20.000stelligen Datenpuffer, der die relevanten Daten von einem in das andere Programm übergibt. Da große Datenmengen nicht in den Puffer passen, muß ich die Subfile von VARPG-Seite nachladen. Das obige Programm ermittelt die Daten beim ersten Aufruf. Für alle weiteren muß ich eine andere SQL-Abfrage erstellen mit verschachtelten where-Klauseln.
Beispiel 1:
ANGBD9, IDNRD9 und AUSFD9 sind gefüllt
Beispiel 2:PHP-Code:C+ Where STATPW = 'A'
C+ and ANGBPL = :ANGBD9
C+ and IDNRPL = :IDNRD9
C+ and AUSFPW = :AUSFD9
C+ and PROGPW > :PROGD9
nachladen - PROGD9 & AUSFD9 ist gefüllt.
D9-Felder sind die Felder des letzten Datensatzes, die nächsten müssen ermittelt werden.
Beipiel 3:PHP-Code:C+ Where STATPW = 'A'
C+ and ANGBPL > :ANGBD9
C+ and IDNRPL >= :IDNRD9
C+ and AUSFPW = :AUSFD9
C+ and PROGPW = :PROGD9
C+ or (STATPW = 'A'
C+ and IDNRPL > :IDNRD9
C+ and AUSFPW = :AUSFD9
C+ and PROGPW = :PROGD9)
nachladen - PROGD9 ist gefüllt.
Da ich 4 Felder zur Selektion habe müßte ich dann 16 (!!!) einzelne Where-Bedingungen schreiben.PHP-Code:C+ Where STATPW = 'A'
C+ and ANGBPL > :ANGBD9
C+ and IDNRPL >= :IDNRD9
C+ and AUSFPW >= :AUSFD9
C+ and PROGPW >= :PROGD9
C+ or (STATPW = 'A'
C+ and IDNRPL > :IDNRD9
C+ and AUSFPW >= :AUSFD9
C+ and PROGPW >= :PROGD9)
C+ or (STATPW = 'A'
C+ and AUSFPW > :AUSFD9
C+ and PROGPW >= :PROGD9)
C+ or (STATPW = 'A'
C+ and PROGPW > :PROGD9)
Hat dafür vielleicht jemand eine Lösung?
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks