PDA

View Full Version : SQLRPGLE



KingofKning
03-10-12, 09:56
Hallo *all,

ich wollte ein kleine free Rpg Programm schreiben in dem ich per SQL Datensätze bearbeiten möchte.

Ich habe in einer QRPGLESRC ein Programm vom Typ SQLRPGLE erstellt, aber leider kommt er mir immer mit blödsinnigen Fehlermeldung.

H DEBUG DECEDIT('0,') DATEDIT(*DMY.)
H DFTACTGRP(*NO)
F*------------------------------------------------------
/FREE
EXEC SQL CREATE TABLE QTEMP/FTP_OUTPUT
(FELD1 CHAR (1024) NOT NULL WITH DEFAULT '');
/END-FREE

Wenn ich das unter V5R4 im SEU editiere, steht ja alles ganz links und nicht ab Spalte 7.

Hat einer mal ein kleines Free-Rpg Programm da an dem ich mich orientieren könnte.

GG

andreaspr@aon.at
03-10-12, 10:04
Das "Exec Sql", sowie alles innerhalb des FREEs steht ab Stelle 8
Nur der Schrägstrich (/) vom Free und End-Free steht auf Stelle 7.

/Free
Exec Sql Set Option CLOSQLCSR=*ENDMOD;
return;
/End-Free

KingofKning
03-10-12, 10:43
Hast Du mal ein komplettes PRG da?

Irgend wie bekomme ich immer nur diesen Müll.

49 F*---------------------------------------------------------------
50 /FREE
======>a
5722WDS V5R4M0 060210 RN IBM ILE RPG GREGOR/TEST ADEND
Zeil.- <---------------------- Quellenbestimmungen ------------------------------><-- Be
Nummer ....1....+....2....+....3....+....4....+....5....+ ....6....+....7....+....8....+.
*RNF0257 30 a 001601 Eintrag für Formularart für Hauptprozedur ungültig oder in
falscher Reihenfolge.
51 EXEC SQL CREATE TABLE QTEMP/FTP_OUTPUT
======>a
*RNF0257 30 a 001800 Eintrag für Formularart für Hauptprozedur ungültig oder in
falscher Reihenfolge.
52 (FELD1 CHAR (1024) NOT NULL WITH DEFAULT '');
======>a
*RNF0257 30 a 001900 Eintrag für Formularart für Hauptprozedur ungültig oder in
falscher Reihenfolge.
53 /END-FREE

an irgendwas beißt der sich.

GG

andreaspr@aon.at
03-10-12, 10:50
H DEBUG DECEDIT('0,') DATEDIT(*DMY.)
H DFTACTGRP(*NO)
F*------------------------------------------------------
/FREE
EXEC SQL CREATE TABLE QTEMP/FTP_OUTPUT
(FELD1 CHAR (1024) NOT NULL WITH DEFAULT '');
return;
/END-FREE
Funktioniert bei mir einwandfrei. :confused:

KingofKning
03-10-12, 11:35
Tja mir fehlte das dämliche return!

Danke

GG

KingofKning
03-10-12, 12:10
Hallo, wie immer ergibt einr richtige Antwort direkt eine neue Frage.

Ich habe jetzt folgendes Program:

EXEC SQL CREATE TABLE QTEMP/MISFP300
(ORDB00 CHAR (10) NOT NULL WITH DEFAULT '',
HIR100 CHAR (10) NOT NULL WITH DEFAULT '',
HIR200 CHAR (10) NOT NULL WITH DEFAULT '',
HIR300 CHAR (10) NOT NULL WITH DEFAULT '',
HIR400 CHAR (10) NOT NULL WITH DEFAULT '',
HIR500 CHAR (10) NOT NULL WITH DEFAULT '',
HIR600 CHAR (10) NOT NULL WITH DEFAULT '',
OKEY00 CHAR (10) NOT NULL WITH DEFAULT '',
BEZE00 CHAR (40) NOT NULL WITH DEFAULT '');
EXEC SQL delete from QTEMP/MISFP300;
exec sql insert into qtemp/misfp300
select adsts, adfa, adfa, adfa, adfa, adfa, adfa, adfa, adknam
from xxxx/adr01pf
where adsts = 0 and adabkz = 0;

Ich möchte jetzt aber z.B. HIR300 nicht aus der adr01pf füllen sondern mit z.B dem Text "ADKNAM2".
Wie mache ich das mit diesem Select?

GG

KingofKning
03-10-12, 12:14
Tja bin selber auf die Lösung gekommen war ja auch zu einfach....