-
mit SQL in ein array lesen
Hallo Ihr Wissenden,
ich versuche mit SQL in eine Feldgruppe zu lesen
Code:
D wert DS DIM(99) QUALIFIED
D we 7S 0
C *ENTRY PLIST
C PARM FeWe
C PARM WERT
C/EXEC SQL
C+ SET :wert =(
C+ select xxwert from DateiA
C+ where (xxa, xxb)
C+ in(select yya, yyb from DateiB where feld=:FeWe)
C+ group by xxwert)
C/END-EXEC
Das geht nicht!
Code:
SQL0312 30 34 Position 14 Variable wert nicht definiert oder nicht
verwendbar. Reason: The host structure is a dimensioned
array.
Toll, gibt es eine alternative? Danke
Dietlinde Beck
-
Leider nur Occurs.
Die Ansprache ist dann nicht in Klammern sondern man muss per Occur(n) auf den Satz setzen.
Allerdings gibt es einen kleinen Trick.
d MyOcurDs ds occurs(nn)
d MyPtr * inz(%addr(MyOcurDS))
d MyDimDs ds dim(nn) based(MyPtr)
Falls der Compiler den Inz ablehnt, kann man den zur Laufzeit auch festlegen.
-
Hallo,
eigentlich sollte das ganz normal gehen. Probier es mal so:
Code:
D wert DS DIM(99) QUALIFIED
D we 7S 0
C *ENTRY PLIST
C PARM FeWe
C PARM WERT
Exec Sql Declare c1 Cursor for
select xxwert from DateiA
where (xxa, xxb)
in(select yya, yyb from DateiB where feld=:FeWe)
group by xxwert;
Exec Sql open c1;
Exec Sql Fetch c1 For 99 Rows Into :wert;
lg Andreas
-
Mit Cursor ja, Statisch wie vom TE gechrieben nein.
Ich persönlich arbeite auch lieber ohne Cursor...
-
Hallo Andreas, vielen Dank
es ist zwar etwas umständlicher aber es geht so.
Danke
VG
DiBe
-
Wie willst du ohne Cursor mehrere Zeilen bearbeiten;-)?
-
Wenn das mit dem Cursor geht (wie von Andreas beschrieben), geht es dann vielleicht auch mit select into? (Das würde den Cursor sparen)
Code:
Exec Sql select xxwert into :wert from DateiA
where (xxa, xxb)
in(select yya, yyb from DateiB where feld=:FeWe)
group by xxwert
fetch first 99 rows only;
(Ich habe es nicht ausprobiert)
Dieter
-
Der wesentliche Unterschied ist, dass ein "Select ... Into ..." ausschließlich maximal 1 Ergebniszeile erlaubt. Somit stellt sich das DIM-Problem da nicht.
The SELECT INTO statement produces a result table consisting of at most one row,
and assigns the values in that row to variables.
Only one row may be specified in the fetch-first-clause.
Similar Threads
-
By dholtmann in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 30-05-18, 09:28
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 12-12-17, 11:35
-
By svit in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 01-10-15, 11:54
-
By woodstock99 in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 15-01-14, 16:57
-
By tarkusch in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 25-12-13, 14:15
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks