-
Exec SQL INSERT INTO und Array?
Schönen guten Abend Zusammen,
ich habe ein Problem wo Hilfe gebrauchen kann, bitte beachtet das ich mich im ersten Ausbildungsjahr befinde und nicht alles perfekt ist.
Bei der Umwandlung bekomme ich die Fehlermeldung:
SQL5011 30 57 Position 49 Bereich der Host-Struktur FNAME nicht
definiert oder nicht verwendbar.
Code:
D Main PR Extpgm('CHKLFSSRC')
D Pbibo 10A
D Pfile 10A
D Pdate 6 0
D Main PI
D Pbibo 10A
D Pfile 10A
D Pdate 6 0
/* ************************************************************************
d system pr 10I 0 EXTPROC('system')
d * value OPTIONS(*STRING)
d cpfmsg s 7A IMPORT('_EXCP_MSGID')
/* ************************************************************************
D FName 100A Dim(512)
/* ***************Programm Vaiablen****************************************
D FSRC 20A
D Name 10A
D Count S 6 0
d i 4S 0 Inz
/* ************************************************************************
C/exec sql
C+ set option DatFmt = *iso, Commit = *none, CloSqlCsr = *endmod
C/end-exec
/FREE
FSRC = Pbibo + '/' + Pfile;
System('CRTPF FILE(QTEMP/LISTOUT) RCDLEN(80)');
System('DSPFD FILE(' + FSRC + ') TYPE(*MBRLIST) +
OUTPUT(*OUTFILE) OUTFILE(QTEMP/LISTIN');
EXEC SQL Declare MyCs Cursor FOR
SELECT MLNAME FROM
QTEMP/LISTIN
where DEC(MLCHGD) <= :Pdate;
Exec SQL Open MyCs;
Exec SQL FETCH MyCs FOR 512 ROWS INTO :FName;
Count = SQLER3;
Exec SQL Close MyCs;
FOR i=1 by 1 to 512;
clear Name;
Name = FName(i);
Exec SQL INSERT INTO QTEMP/LIST (LIST) VALUES(:Name);
EndFor;
*InLr=*On;
/END-FREE
-
Hallo,
das Feld FName ist in deinem Code
vieleicht mehrfach definiert.
Deshalb weiß der Compiler nicht was gültig ist.
gruß
Michael
-
SQL kann keine Feldgruppen/Arrays verarbeiten, sondern nur Array-Datenstrukturen.
Du musst Dein Ausgabe-Feld wie folgt definieren:
Code:
D MyOutDS DS Dim(512) Qualified
D FName 100A
Die einzelnen Unterfelder/Elemente musst Du dann wie folgt ansprechen:
Code:
/Free
MyOutDS(Index).FName = '123';
If MyOutDS(Index).FName = 'AAAAA';
Birgitta
-
Oh, sorry
ich hatte nur die Meldung beachtet.
Birgitta hat natürlich recht
-
Danke für den Tipp habe ich nun umgesetzt aber der Fehler ist geblieben, hier aktuelle Code: D Main PR Extpgm('CHKLFSSRC') D P - Pastebin.com
Und die Fehlermeldung:
SQL0312 30 65 Position 59 Variable OUTPUT nicht definiert oder nicht
verwendbar.
Vielleicht noch als Info MLNAME ist ein Char Feld mit der Länge 10.
-
... so wie Du es deklariert hast, ist ouutput Teil der DS und damit des arrays, muss also qualifiziert und mit Index verwendet werden.
D*B
-
Super danke hab es einfach übersehen, die kleinen Fehler sind wirklich die schlimmsten.
Similar Threads
-
By Robi in forum NEWSboard Programmierung
Antworten: 23
Letzter Beitrag: 17-01-13, 15:31
-
By schatte in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 02-02-12, 12:54
-
By Robi in forum IBM i Hauptforum
Antworten: 20
Letzter Beitrag: 16-03-09, 10:32
-
By woki in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 31-10-06, 10:21
-
By AS400-Anfänger in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 27-06-06, 13:18
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