-
MCH1210 Empfängerwert zu klein
Folgendes Problem:
Eine 10-stellige Integer-Variable wird einer RPG-Prozedur als Parameter übergeben.
Dort wird sie so auch angezeigt:
Code:
p_meinevariable: Ganze Zahl (10,0) CONST
Im SQL-Statement der Prozedur (embedded) wird sie dann verwendet. Der SQL-Precompiler macht eine gepackte Variable mit 5 Bytes daraus:
Code:
SQL_00005 129 133P 0 p_meinevariable
Das heißt neun verfügbare Stellen, bei 10-stelligem Inhalt kracht es mit MCH1210.
Hat jemand eine Lösung?
-
Den Wert selber in eine 10-stellige P-Variable übertragen und SQL mit dieser aufrufen.
Aber beachte, dass ggf. bei der Rückübertragung der MCH kommt.
-
Zitat von Fuerchau
Den Wert selber in eine 10-stellige P-Variable übertragen und SQL mit dieser aufrufen.
Ok, so funktioniert es jetzt. Werde mir wohl angewöhnen müssen, übergebene Parameter erst einmal in lokale Variablen zu übertragen. Nicht schön, aber so funktioniert es wenigstens.
Zitat von Fuerchau
Aber beachte, dass ggf. bei der Rückübertragung der MCH kommt.
Das sollte (bei uns) kein Problem sein, da wir die Parameter zu 99 % als Konstante übergeben.
Danke für die schnelle Lösung.
-
Baldur's Lösung ist nur eine Notlösung!
Wenn die Variable definitiv als 10I 0 definiert ist, handelt es sich um einen Bug, der bereinigt werden muss. Prüfe zunächst ob alle PTFs installiert sind. Sofern Ihr auf dem aktuellen Stand seid, solltet Ihr den Fehler IBM melden.
Wenn die Variable mit Datentyp B definiert ist, solltest Du die Definition auf Datentyp I ändern und nochmals prüfen, was das embedded SQL dann macht.
Birgitta
-
Das Problem liegt hier in SQLRPG, da I-Variablen nicht unterstützt werden sondern P-Variablen generiert werden.
In SQLRPGLE verhält sich der Precompiler korrekt (V5R4):
SQL_00005 129 132I 0
-
Zitat von Fuerchau
Das Problem liegt hier in SQLRPG, da I-Variablen nicht unterstützt werden sondern P-Variablen generiert werden.
In SQLRPGLE verhält sich der Precompiler korrekt (V5R4):
SQL_00005 129 132I 0
Aber hier handelt es sich um ein SQLRPGLE. Vermutlich ist es doch ein Bug.
-
... wie ist denn nun deine Variable im PROTOTYP und Procedure Interface deklariert???
@Baldur: SQLRPG kennt kein CONST, das ist ILE
-
Stimmt, der Fehler muss an anderer Stelle liegen.
-
Zitat von BenderD
... wie ist denn nun deine Variable im PROTOTYP und Procedure Interface deklariert???
Da liegt der Hund wohl begraben.
Die Deklaration kommt aus einer Datenstruktur (Based), die als Feldreferenz dient.
Code:
D PI N
D p_meinevariable...
D LIKE(Dcl_DS.p_meinevariable)
D CONST
Verwende ich die übergebene Variable in SQL, kracht es.
Verwende ich eine lokale Variable, die auf die gleiche Datenstruktur verweist, macht er es richtig:
SQL_00005 129 132I 0
Aber warum???
Similar Threads
-
By fmu in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 06-05-09, 14:27
-
By linguin in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 31-03-09, 15:08
-
By JuergenK in forum NEWSboard Drucker
Antworten: 0
Letzter Beitrag: 25-10-07, 13:27
-
By mmaschke in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 06-04-05, 08:53
-
By Marchfeld in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 26-11-03, 10:48
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