PDA

View Full Version : Embedded SQL Null Indicator bei SELECT *



harkne
17-04-20, 10:25
Hallo zusammen,

ich bräuchte Hilfe bezüglich Null-Indicator bei SELECT *,

Normalerweise mache ich immer einen SELECT Feld, Feld, und mach dann einen FETCH NEXT INTO :Feld1 :Null1, :Feld2: :Null2

Jetzt habe ich aber einen SELECT * welche ich mit FETCH NEXT in eine Datenstrukur übertrage :DS (ca 70 Felder = die Felder der Datei aus SELECT * FROM). Einige davon können NULL sein.
Muss ich mir da dann tatsächlich jetzt eine Datenstruktur anlegen die 70 Nullfelder hat ? Oder wie muss ich das angeben.

Nachfolgend die Code-Ausschnitte


d Ds@TgTrnP e ds extname(TgTrnP)

c eval w@SQl = 'SELECT * ' +
c 'FROM TgTrnP '

c/EXEC SQL
c+ FETCH NEXT FROM CRS1SQL INTO :Ds@TgTrnP
c/END-EXEC

harkne
17-04-20, 10:37
Uhhh ich glaub jetzt habe ich es selbst gefunden. Ist zwar nicht so schön aber besser wie 70 Felder zu definieren. Ich habe ein Array gemacht mit 70 Elementen

Falls es jemand interessiert. Ich habe die Beschreibung auf der folgenden Seite gefunden https://enskill.com/embedded-sql-and-nulls/

Fuerchau
17-04-20, 10:52
Falls es dich interessiert, du kannst das Array auch in einer DS definieren und durch Überlagerung den Elementen dann einen Namen verpassen.
Das ist zwar aufwändig, aber per RDi etwas einfacher, da man sich die Feldliste ja kopieren kann.
Wichtig ist natürlich, bei Änderungen der Struktur ebenso die Definition dann anzupassen:

dcl-ds myind qualified;
nFeld1 int(5);
nFeld2 int(5);
:
NullInd int(5) dim(99) pos(1);
end-ds;