harkne
22-10-12, 17:48
Hallo zusammen,
Ich habe eine Datei mit Datumsfelder in denen NULL-Werte zulässig sind.
Ich habe im RPG ein SQL ausgeführt und habe mich zunächst gewundert dass ich keine Daten bekommen habe. Bis ich gelesen habe dass ich ein Array brauche welches die Null-Werte empfängt
Ich habe jetzt also folgende D-Bestimmungen
DName+++++++++++ETDsVon++++Bi/L+++IDG.Schl}sselw¦rter+++++
d W@CDICTLP E DS EXTNAME(CDICTLP) INZ
**
d Ary@NulInd s 5i 0 dim(256)
Meine SQL-Routine sieht wie folgt aus:
0806.51 **
0806.52 c/exec sql
0806.53 c+ PREPARE S1 FROM :w@SqlString
0806.54 c/end-exec
0806.55 **
0806.56 c/exec sql
0806.57 c+ DECLARE C1 CURSOR FOR S1
0806.58 c/end-exec
0806.59 **
0806.60 c/exec sql
0806.61 c+ OPEN C1
0806.62 c/end-exec
0806.63 **
0806.65 **
0806.66 c/exec sql
0806.67 c+ WHENEVER NOT FOUND GOTO Sb32SqlDlcE
0806.68 c/end-exec
0806.70 c/exec sql
0806.71 c+ FETCH NEXT FROM C1 INTO :W@CDICTLP :Ary@NulInd
0806.72 c/end-exec
Jetzt hab ich gelesen wenn ich z.B. mein Datumsfeld (13. Feld in der Datei) auf NULL abfragen möchte muss ich auf das 13. Element im Array Ary@NulInd abfragen.
Das würde ja auch bedeuten wenn sich die Datei ändert und man ein Feld vor dem Datumsfeld einfügt dass man daran denken muss und die Array-Elemente anpassen muss.
Jetzt meine Frage.
Kann man dies auch irgendwie eleganter lösen, oder bleibt mir dann nur übrig auf den tatsächlichen Wert im Feld z.B. '01-01-0001' zu prüfen ?
Vielen Dank für die Hilfe
Viele Grüße Harald
Ich habe eine Datei mit Datumsfelder in denen NULL-Werte zulässig sind.
Ich habe im RPG ein SQL ausgeführt und habe mich zunächst gewundert dass ich keine Daten bekommen habe. Bis ich gelesen habe dass ich ein Array brauche welches die Null-Werte empfängt
Ich habe jetzt also folgende D-Bestimmungen
DName+++++++++++ETDsVon++++Bi/L+++IDG.Schl}sselw¦rter+++++
d W@CDICTLP E DS EXTNAME(CDICTLP) INZ
**
d Ary@NulInd s 5i 0 dim(256)
Meine SQL-Routine sieht wie folgt aus:
0806.51 **
0806.52 c/exec sql
0806.53 c+ PREPARE S1 FROM :w@SqlString
0806.54 c/end-exec
0806.55 **
0806.56 c/exec sql
0806.57 c+ DECLARE C1 CURSOR FOR S1
0806.58 c/end-exec
0806.59 **
0806.60 c/exec sql
0806.61 c+ OPEN C1
0806.62 c/end-exec
0806.63 **
0806.65 **
0806.66 c/exec sql
0806.67 c+ WHENEVER NOT FOUND GOTO Sb32SqlDlcE
0806.68 c/end-exec
0806.70 c/exec sql
0806.71 c+ FETCH NEXT FROM C1 INTO :W@CDICTLP :Ary@NulInd
0806.72 c/end-exec
Jetzt hab ich gelesen wenn ich z.B. mein Datumsfeld (13. Feld in der Datei) auf NULL abfragen möchte muss ich auf das 13. Element im Array Ary@NulInd abfragen.
Das würde ja auch bedeuten wenn sich die Datei ändert und man ein Feld vor dem Datumsfeld einfügt dass man daran denken muss und die Array-Elemente anpassen muss.
Jetzt meine Frage.
Kann man dies auch irgendwie eleganter lösen, oder bleibt mir dann nur übrig auf den tatsächlichen Wert im Feld z.B. '01-01-0001' zu prüfen ?
Vielen Dank für die Hilfe
Viele Grüße Harald