-
Laut Doku ist der Zeitpunkt der Erstellung der Prozedur entscheidend:
Wenn das Objekt beim Create Procedure existiert, wird das im Objekt vermerkt.
Man kann aber auch eine Procedure erstellen, bevor das Objekt vorhanden ist.
Des weiteren (beim Entwickeln ist das ja halt so), wird ja beim CRTxxxPGM das Ursprungsobjekt in die QRPLOBJ verschoben (was ja so gut wie ein löschen ist).
Die SQL-Registrierung wird aber mit verschoben und im neu erstellten Programm nicht automatisch wiederholt.
Der Verweis im SQL-Repository ist aber ein dynamischer Verweis und funktioniert auf dem Entwicklungssystem ja weiter.
Also:
Nach einem CRTxxxPGM sollte der Create Procedure auch wiederholt werden um den Eintrag im PGM-Objekt zu bekommen.
-
Hallo,
seltsam.....
Das Programm und die Stored Procedure sind in der
gleichen Bibliothek.
Hier mal ein Beispiel:
Muss man evtl noch andere Parameter angeben ?
PHP-Code:
-- SQL generieren
-- Version:
-- Generiert am: 25.06.12
-- Relationale Datenbank:
-- Standardauswahl: DB2 for i
-- ***************************************
-- Brückenprogramm call programs
--
-- ***************************************
-- DROP PROCEDURE ASMTOOL/CALLPRCPHP ;
CREATE PROCEDURE ASMTOOL/CALLPRCPHP (
OUT OUTPARM CHAR(132) ,
IN ACT CHAR(10) ,
IN DELIM CHAR(1) ,
IN PARMS CHAR(4096)
)
LANGUAGE RPGLE
SPECIFIC ASMTOOL/CALLPRCPHP
NOT DETERMINISTIC
MODIFIES SQL DATA
CALLED ON NULL INPUT
EXTERNAL NAME 'ASMTOOL/PRCPHP01R'
PARAMETER STYLE SQL ;
COMMENT ON SPECIFIC PROCEDURE ASMTOOL/CALLPRCPHP
IS 'Procedure Call Programs ' ;
Frage: Wenn ich im OpsNav eine Stored Proc. erstelle
habe ich unter Umständen keine Source.
Gruß
Michael
-
Jede SQL Routine hat auch einen Source Code auch wenn Du das Object über die Wizards im IBM i Navigator erstellst.
Den Source Code kannst Du im IBM i Navigator über "Generate SQL" / "SQL Generieren" nachträglich erstellen und sichern.
Alternativ kann man auch das API QSQGNDDL verwenden.
Birgitta
-
Für die schnelle kann man sich auch über die Systemtabellen (QSYS2/SYSROUTINES) ein paar informationen auslesen lassen.
Z.B. Anzahl der Ein/Ausgangsparameter, Externer Name, Result usw.
Aber am einfachsten ist es wie Birgitta schon sagte über den Navigator.
lg Andreas
-
Wenn du eine Funktion/Prozedur mit "external ..." erstellst, wird KEIN Objekt erstellt sondern lediglich das SQL-Repositiory (SQLFunc/SQLProcs...) gefüllt.
Wie oben beschrieben, schreibt SQL dann in das externe Programm (nicht sichtbar!) die Registrierungsinfos um im Restorefall das Repository zu füllen.
Erstellst du aber das Programm NEU, gehen diese Infos verloren.
In diesem Fall musst du halt "drop / create" wiederholen.
Similar Threads
-
By mk in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 14-08-12, 15:48
-
By olbe in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 19-08-08, 14:35
-
By HDPSTANEKE in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 21-06-07, 15:33
-
By florian in forum IBM i Hauptforum
Antworten: 10
Letzter Beitrag: 17-05-06, 17:08
-
By Jenne in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 14-06-05, 15:00
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