Anmelden

View Full Version : NULL indicator in embeded SQL



holly
03-04-08, 10:49
Hallo all,

habe folgendes PGM:
0013.00 H DATEDIT(*DMY.) DECEDIT(*JOBRUN) CVTOPT(*VARCHAR)
0013.01 * ALWNULL(*USRCTL)
0014.00 H EXTBININT(*YES)
- - - - ------------- 1 Datensätze ausgeschlossen ------------------
0016.00 D CONDS E DS EXTNAME(CONTACT)
0018.00 DONFIELD S 5i 0 DIM(25)
- - - - ------------ 15 Datensätze ausgeschlossen ------------------
0036.00 C/EXEC SQL
0037.00 c+ DECLARE C1 CURSOR FOR
0038.00 c+ SELECT * FROM CONTACT
0039.00 c+ WHERE NUMBER2 = :KUNDENNR
0040.00 C+ FOR READ ONLY
0041.00 C/END-EXEC
- - - - ------------- 6 Datensätze ausgeschlossen ------------------
0048.00 C+ FETCH NEXT FROM C1 INTO :CONDS :ONFIELD
0049.00 C/END-EXEC
0050.00 C SQLCOD IFEQ *ZEROS
0051.00 C MOVE *OFF FEHLER
0052.00 C ENDIF

bekomme in Zeile 50 immer SQL-Code -000000305 also NULL INDICATOR nicht angegeben??

Please help.

Holger

Fuerchau
03-04-08, 11:19
Bist du sicher, dass der DIM der Anzahl Felder der Struktur entspricht ?

holly
03-04-08, 11:40
Hallo Fürchau,

Datei hat 27 Felder davon 17 wo NULL sein können.

Gruss Holger

holly
03-04-08, 11:43
@Baldur,
Danke für den Denkanstoss.
Habe DIM(30) genommen und es laeuft.

Gruss Holger

Fuerchau
03-04-08, 12:43
Da SQL zur Compilezeit die NULL-Eigenschaft nicht prüft, gibt es beim FETCH auf Strukturen eine 1:1-Zuordnung eines Feldes zu seinem NULL-Flag.

Das NULL-Flag hat sogar 3 Bedeutungen (nicht nur 2):

0 = Wert ist OK
-1 = NULL
-2 = Daten wurden gekürzt

-2 Kann auftreten, wenn die Ausprägung des Zielfeldes eben zu klein zur Aufnahme ist.