-
Wie wärs damit?
SET Meas_Head_ID = IDENTITY_VAL_LOCAL();
DECLARE C1 CURSOR WITH RETURN TO CLIENT FOR Select Meas_Head_ID MEAS_VALUE_ID FROM SYSIBM.SYSDUMMY1;
-
Oh man, danke!
Genau so etwas habe ich gesucht, dass ich eine Variable mittels Cursor im Resultset zurückliefern kann!
Hier die funktionierende Version:
Code:
/* ------------------------------------ */
/* Prozedur AddMeasHead erstellen */
/* ------------------------------------ */
CREATE OR REPLACE PROCEDURE HGWOBJ.AddMeasHead(IN iRefFileName varchar(255), IN iRefPartName varchar(255), IN iRefDate date, IN iRefTime time, IN iMesFileName varchar(255) ,IN iMesDate date, IN iMesTime time, IN iTotalState int, IN iInstance varchar(255), IN iFt0 varchar(255), IN iFt1 varchar(255), IN iFt2 varchar(255), IN iFt3 varchar(255))--, OUT Meas_Head_ID INT)
LANGUAGE SQL MODIFIES SQL DATA
DYNAMIC RESULT SETS 1
BEGIN
DECLARE Meas_Head_ID INT DEFAULT 0;
DECLARE C1 CURSOR FOR Select MEAS_HEAD_ID FROM SYSIBM.SYSDUMMY1;
-- Satz hinzufügen
INSERT INTO MEASURE1P
( fRefFileName, fPartName, fRefDate, fRefTime, fRefTimeSt, fMesFileName, fMesDate, fMesTime, fMesTimeSt,
fTotalState, fInstance, fFt0, fFt1, fFt2, fFt3
)
VALUES
(
iRefFileName, iRefPartName, iRefDate, iRefTime, TIMESTAMP(iRefDate, iRefTime), iMesFileName, iMesDate, iMesTime, TIMESTAMP(iMesDate, iMesTime), iTotalState, iInstance, iFt0, iFt1, iFt2, iFt3
);
-- Liefert zuletzt eingefügte ID der Identitätsspalte
SET Meas_Head_ID = IDENTITY_VAL_LOCAL();
OPEN C1;
SET RESULT SETS WITH RETURN TO CLIENT CURSOR C1;
END;;
Folgende Nachricht erscheint abschließend noch - ich denke eher informativ als eine Warnung:
Code:
SQL-Status: 0100C
Vendorencode: 466
Nachricht: [SQL0466] 1 Ergebnisgruppen sind aus Prozedur ADDMEASHEAD in HGWOBJ verfügbar.
Ursache . . . . : Prozedur ADDMEASHEAD in BIB wurde aufgerufen und gab eine oder mehrere Ergebnisgruppen zurück.
Fehlerbeseitigung: Keine.Anweisung wurde erfolgreich mit Warnungen ausgeführt (20 MS)
-
Der SQL-Status 0100C bzw. der SQLCODE 466 ist wine Warnung und wird grundsätzlich ausgegeben, wenn ein Result Set zurückgegeben wird.
Warum machst Du das Ganze überhaupt über Result set, wenn Du nur einen einhzigen Datensätz einfügst?
Warum gibst Du nicht einfach eine Ausgabe-Variable zurück.
Bzw. der Befehl SET RESULT SETS ist nicht notwendig. Result Sets werden allein schon durch den OPEN (ohne anschließenden CLOSE) zurückgegeben.
Birgitta
-
Ich nehme mal an deswegen:
"(über einen OUT Parameter funktioniert es nämlich, damit kommt allerdings der externe Dienstleister nicht klar)"
-
Das mit dem SQL State dachte ich mir bereits - da etwas von "Fehlerbeseitigung: Keine" erwähnt wird.
Das mit dem SET RESULT SETS wusste ich nicht 100% - hatte zwar auch festgestellt, dass ein Resultset im "SQL Prozedur ausführen" ohne den Befehl angezeigt wird aber hatte es in einigen anderen Prozeduren bereits problemlos verwendet. Aber gut zu wissen, dann lasse ich es in Zukunft weg u. arbeite nur noch mit OPEN CURSOR.
Die OUT Variable war leider nicht möglich für den externen Dienstleister, das hat aber funktioniert.
Danke für die Hilfe!
Similar Threads
-
By mk in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 10-12-14, 16:31
-
By lorenzen in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-12-02, 17:46
-
By Sven Schneider in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-09-02, 08:31
-
By lorenzen in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 27-08-02, 15:59
-
By Frank Pusch in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 13-06-01, 18:57
Tags for this Thread
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