-
SQL-Fehler 0312
Hallo !
Diesen Fehler bekomme ich beim Übersetzen eines simplen SQLRPGLE.
Offensichtlich ist dieser Fehler ja ein dehnbarer Begriff. Hat dennoch jemand
das Problem auch schon gehabt ?
-
Dann würde ich doch mal das simple Programm posten......
Weil Glaskugel und so ist doof
-
will ich gerne tun !
************************************************** ************************
H**** Name - MCPPGDHIST ****
H**** Function - Tägliche Bereinigung MCPPF2YJ / MCPPF5YJ ****
H**** Author - AM (BMN) am 03.08.2016 ****
H**** Copyright - AM (BMN) 2016 ****
H**** letzte Änd. - ****
H**** Release - 3.1 ****
************************************************** *************************
H CCSID(*GRAPH : *SRC) CCSID(*UCS2 : 1200)
H CCSID(*CHAR : *JOBRUN)
************************************************** *************************
**‚ E r s t e l l u n g s o p t i o n e n
************************************************** *************************
**GEN* BeginCreateOptions(SQLRPGLE)
**GEN* BeginCompileOptions
**GEN* SRTSEQ(*JOBRUN) LANGID(*JOBRUN) COMMIT(*NONE)
**GEN* EndCompileOptions
**GEN* BeginBindOptions
**GEN* EndBindOptions
**GEN* EndCreateOptions
************************************************** *************************
**‚ H - Specs ... Allgemeine Headerbestimmungen
************************************************** *************************
H/Copy ROTSFMODLE,ROTMDCPYR1
************************************************** *************************
**‚ F - Specs ... Dateibestimmungen
************************************************** *************************
************************************************** *************************
**‚ D - Specs ... Globale Deklarationen
************************************************** *************************
**‚Globale Importe
**================
D/COPY ROTSFMODLE,ROTMD$DTIO
D/COPY ROTSFMODLE,ROTMDSYSDS
D/COPY ROTSFMODLE,ROTMD$0003
D/COPY ROTSFMODLE,ROTMD$TIME
D/COPY ROTSFMODLE,ROTMD$$UFA unit feedback area
D/COPY ROTSFMODLE,ROTMD$$SFA SDS
D/COPY ROTSFMODLE,ROTMD$0022 Standard arrays
D/COPY ROTSFMODLE,ROTRHDLMSG
************************************************** *************************
**‚Interne Konstanten
**===================
************************************************** *************************
**‚Interne Strukturen
**==================
************************************************** *************************
**‚Arbeitsvariablen
**=================
D LoeschDatum 6 0
************************************************** *************************
**‚Redefinitionen für Nachrichten
**===============================
************************************************** *************************
**‚Interne Prozeduren
**===================
************************************************** *************************
D InitPgm PR N ExtProc('InitPgm')
D DoPgm PR ExtProc('DoPgm')
D LDatum Like(LoeschDatum)
************************************************** *************************
**‚ H a u p t r o u t i n e - Mainline **
************************************************** *************************
**
/Free
If InitPgm();
Exsr $Rttim;
Exsr $DatRue;
DoPgm(LoeschDatum);
EndIf;
*InLR = *On;
Return;
/End-Free
C************************************************* ************************
**‚ Subroutinen **
C************************************************* ************************
C*/COPY ROTSFMODLE,ROTMDSYSCN
C/COPY ROTSFMODLE,ROTMDDTD11
C/COPY ROTSFMODLE,ROTMDDTD12
C/COPY ROTSFMODLE,ROTMDERROR error handling rout
C/COPY ROTSFMODLE,ROTMDRTTIM time preparation
C/COPY ROTSFMODLE,ROTMDUSRAT user attach
C************************************************* ************************
C*04* $DATRUE - Vom Tagesdatum ein halbes Jahr rückrechnen ****
C************************************************* ************************
C $DATRUE BEGSR
C*
C* ein halbes Jahr zurückgehen
C*
C $006DT SUB 183 LoeschDatum
C*
C DATRUE$ ENDSR
C************************************************* ************************
**‚ DoPgm.. AHP-Datei bereinigen **
************************************************** *************************
**žFunktionsschnittstelle€ €
P DoPgm B
D DoPgm PI
D LDatum Like(LoeschDatum)
**žInterne Variablen€ €
**-------------------------------------------------------------------------
//žSätze ein halbes Jahr zurück löschen (MCPPF2YJ)
C/EXEC SQL
C+ Delete from ALEX/MCPPF2YJ where CrdtYJ < :LDatum
C/END-EXEC
//žSätze ein halbes Jahr zurück löschen (MCPPF5YJ)
C/EXEC SQL
C+ Delete from ALEX/MCPPF5YJ where CrdtYJ < :LDatum
C/END-EXEC
/Free
//žZurück zum Aufrufer:
Return;
/End-Free
**-------------------------------------------------------------------------
P DoPgm E
C************************************************* ************************
**‚ InitPgm ... Initialisierung des Programms **
************************************************** *************************
** Funktionsschnittstelle
P InitPgm B
D InitPgm PI N
** Interne Variablen
**-------------------------------------------------------------------------
/Free
//žZurück zum Aufrufer:
Return *ON;
/End-Free
**-------------------------------------------------------------------------
P InitPgm E
ANGEMECKERT wird im SQL-Delete-Statement das Feld LDatum !!!
-
Mal so aus der Glaskugel:
Variable &1 nicht definiert oder nicht verwendbar.
Dies spricht zumindest auf ein Release vor V7, denn ab V7 gibts da nur noch später einen Laufzeitfehler.
Ansonsten muss man sich jetzt halt mal um das generierte Spool kümmern. So ganz unwichtig sind die nämlich nicht.
-
Dann prüfe mal dein Spool wo und wie diese Variable definiert ist.
Im Gegensatz zu RPG, wo ich Variablen auch am Ende definieren kann, benötigt SQL diese am Anfang.
-
genau - nicht definiert und verwendbar ist die Meldung !
-
-
Dann passt der Typ der Variable LDatum nicht zum Tabellen-Feld "CrdtYJ".
Vergleiche mal die Definitionen.
-
... die Variable ist in einer Deiner vielen Copy-Strecken definiert (ansonsten würden wir sie sehen) und vermutlich ist die Copy-Strecke sogar mehrfach verschachtelt.
Im Compile-Befehl hast Du Option RPGPPOPT (RPG-Vorprozessoroptionen) mit *NONE übergeben.
Setze die Option mal auf *LVL1 oder *LVL2.
Birgitta
-
Auszug Dateibeschreibung:
PLPSYJ Positionsnr.Planauf. 4 0
MFLPYJ Planungs-KZ MCP 5
DATEYJ Tagesdatum 6 0
CRDTYJ Anlagedatum 6 0
Definition Vergleichsvariable im Programm:
D LoeschDatum 6 0
und LDatum ist mit LIKE LoeschDatum definiert
-
Hallo !
hat leider nix gebracht. Aber die Variable ist schon in der Source zu sehen.
Eine Variable heisst LoeschDatum und LDatum ist mit LIKE aus LoeschDatum entstanden.
-
Soweit ich da sehe übergibst Du das Datum als Parameter.
Versuch mal folgendens:
Definiere zusätzlich eine lokale Variable für das Datum (gerne auch über LIKE), übertrage den Parameter-Wert in diese Variable und verwende diese Variable als Host-Variable im SQL
Der Precompiler kann wahrscheinlich Variablen, die nur als Eingabs-Parameter über LIKE und Arbeistvariable definiert sind, nicht verwenden (deshalb die Fehlermeldung)
Birgitta
Similar Threads
-
By svit in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 01-03-19, 19:03
-
By oulbrich in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 23-03-15, 17:21
-
By camouflage in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 03-02-14, 09:45
-
By malzusrex in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 23-04-03, 17:15
-
By K_Tippi in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 05-12-02, 11:41
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