View Full Version : SQL überträgt unvollständig
Guten Morgen zusammen.
SQL im ILE-Programm spinnt!
select * from Datei ... (brauch nahezu alle Felder)
Enthalten sind u.a. 4 Datumsfelder. Das 1. wird übertragen, die nächsten 3 fehlen. Die Compilerliste zeigt, dass die entsprechenden generierten SQL_xxxx Felder angeblich nicht verwendet werden. Code 7031.
Was soll das?:confused:
Dazu müsstest du mal ins Listing des Compilers schauen.
Ohne weitere Hinweise kann man nichts erkennen.
328 D DS OPEN
364 D SQL_00034 225 232D DATFMT(*DMY.) FABEDA
365 D SQL_00035 233 240D DATFMT(*DMY.) FALSDA
366 D SQL_00036 241 248D DATFMT(*DMY.) FAFADA
367 D SQL_00037 249 256D DATFMT(*DMY.) FAVADA
453 D SQL_00087 821 822B 0 SQLANZEIGER1
1415 C SQL_00087 IFGE 0 SQL B04
1416 C EVAL FABEDA = SQL_00034 SQL 04
1417 C END SQL E04
1418 C EVAL SQLANZEIGER1 = SQL_00087 SQL 03
*RNF7031 SQL_00035 D(8*DMY.) 365D
*RNF7031 SQL_00036 D(8*DMY.) 366D
*RNF7031 SQL_00037 D(8*DMY.) 367D
*RNF7031 00 373 Kein Verweis auf den Namen oder die Bezugszahl/den Anzeiger
vorhanden.
Da du einen "Select *" kodierst, wie sieht denn da dein Fetch aus ?
Wenn du die Felder einzeln aufführst, beachte ob nicht irgendwo Kommatas fehlen.
Mit obigen Angaben kann ich nichts anfangen.
C*EXEC SQL
C* declare FAKTURS1cursorPack cursor for
C* select * from FAKTURS1 join AUKOPF on FAABNR = AKBELE
C* where FASTAT = 5 and FALSNR = :FAKTUDUR_LSNr
C* and AKBKZ = :FAKTUDUR_BKz and AKCOU = :FAKTUDUR_Couz
C* and AKFRB = :FAKTUDUR_Funr and AKMRB = :FAKTUDUR_Musr
C* and AKSRB = :FAKTUDUR_Star and AKVAL = :FAKTUDUR_Valu
C* order by FAPACK
C*END-EXEC
C*EXEC SQL
C* OPEN FAKTURS1cursorPack
C*END-EXEC
C*EXEC SQL
C* fetch next from FAKTURS1cursorPack into :FAKTURS1sql :SqlAnzeiger1,
C* :AUKOPFsql :SqlAnzeiger2
C*END-EXEC
Das Zielfeld ist eine Datenstruktur im Aufbau des Datensatzes.
Das geht so leider nicht !
Wenn ein Fetch in eine DS erfolgen soll, so sind max. 2 Strukturen erlaubt:
fetch ... into :myds [:myanz]
Wobei der Anzeiger eine Tabelle sein muss.
Werden mehrere Felder angegeben, nimmt der SQL-Precompiler Einzelfelder an.
Da dein Select ein Join ist, musst du eine Struktur mit ALLEN Feldern angeben und eine Anzeiger-Tabelle mit der Anzahl der Felder.
Oder du musst dir die Mühe machen und alle Felder einzeln im Fetch benennen.
Vielen Dank für die Info.
Merkwürdig ist, dass meine Syntax in anderen Programmen ihren Dienst versieht.
Nachdem ich jetzt Einzelfelder definierte, klappt es tatsächlich. Es gibt viele Stolperfallen - suchen wir die nächste.
Besten Dank
Armin
Mit nur einer Struktur klappts ja auch !