PDA

View Full Version : SQL -FRAGE



woodstock99
03-07-08, 10:44
Hallo Miteinander

ich habe eine View gebildet die aus 3 Dateien Werte zusammenbastelt.

So nun kann der User über eine Auswahlmaske die Datensätze die gelesen werden sollen einschränken.

Ich deklariere in SQLRPGLE ganz normal meinen Cursor usw. Der SQL-BEFEHL wird zusammengebastelt.
Dann fülle ich eine Subfile mit den ersten 10 Sätzen meines Cursors.
Der User kann blättern usw..


Nun hat aber der User die möglichkeit sich auf ein bestimmtes z.b ab Datum zu positionieren und es sollen die Sätze ab dem eingegebenen Datum in meiner Subfile erscheinen. Aber wenn er zurückblättert sollen die davorliegenden Sätze wieder kommen.

z.b. Zielsatz wird der 385 Satz in meinem Cursor

Gibt es irgendwie die Möglichkeit meinen Cursor zu positioneren??

z.b. Cursor vor dem Satz mit dem Datum 30.08.08
zur Verdeutlichung '2008-08-30' setll DATEIDATUM


Ziel soll sein ich möchte keinen neuen Cursor usw eröffnen..


Hoffentlich konnte ich es einigermaßen verständlich machen was ich will

Fuerchau
03-07-08, 11:33
Nunja, die Frage erübrigt sich eigentlich.

Da der User ggf. auch zurückblättern kann, musst du die Daten sowieso alle lesen, die SFL füllen und dann positionieren.

Wenn du Datensätze überliest und somit nicht in der SFL hast, kannst du auch nicht zurückblättern.

Ansonsten kannst du mit

Fetch relative n from cursor

auch positionieren.
n kann auch eine Variable sein (dec(n, 0)) und, wenn der Cursor scrollable ist auch negativ.

Allerdings gibts da keine Suchfunktion !
Die musst du da schon selber machen.

woodstock99
03-07-08, 11:53
ja das hab ich mir schon gedacht :(.
ja mit Fetch relative n from cursor
arbeite ich auch beim zurückblättern.

als muß ich halt meine komplette virtuelle tabelle durchakern bis ich den satz gefunden hab :(.


aber danke für die antwort

Fuerchau
03-07-08, 13:34
Nunja, man kann sich das Leben auch schwer machen ;)

Warum füllst du die SFL nicht einfach vorwärts bis zum gewünschten Satz (+n für die volle Seite) und überläßt das Rückwärtsblättern wieder dem System ?

Immerhin kann die SFL ja 9999 Sätze aufnehmen.