Anmelden

View Full Version : Brauche Hilfe zu FETCH xxx USING DESCRIPTOR



Seiten : 1 [2]

Fuerchau
08-05-15, 11:48
Schau dir die Definition der SQLDA und SQLVAR in der QSYSINC (oder im Handbuch) mal an.
Irgendwo fehlen noch Reserve-Definitionen.
Das Problem:
Pointer müssen an einer 16-Byte-Grenze ausgerichtet sein!

BenderD
08-05-15, 12:09
...das macht der Compiler, falls man ihn nicht dran hindert und die Pointer in DS definiert. Im letzteren Fall heisßt das Zauberwort align

D*B

Fuerchau
08-05-15, 12:39
Bei Overlay kann er kein Align machen, das Overlay-Feld muss dann Align haben.
Trotzdem sollte die Definition passen da bei Align der übersprungene Speicher keine Initialisierung aufweist und SQL dann ggf. zur Laufzeit wieder meckert.
Die SQLDA und SQLVAR sollten lückenlos definiert sein.

Außerdem würde ich hier mit Qualiefied arbeiten und
D SQL_VAR LIKEDS(SQLVAR) DIM(SQL_NUM)
verwenden.

BenderD
08-05-15, 13:09
... die SQLDA und die SQLVARs sind so definiert, dass die Pointer aligned sind, wenn die SQLDA aligned ist, wenn man das natürlich falsch abpinselt, dann passt das nicht - und wenn das bei dem Pointer aufschlägt, ist das noch ein Glücksfall, weil das OS dann merkt, dass was faul ist, bevor da Murks zurückgeliefert wird.

D*B