-
 Zitat von BenderD
Wenn ich da nochmal hinsehe,
da steht was von Berechtigungsfehler, da solltest du das Programm mal mit ausreichender Public Berechtigung versehen
mfg
Dieter Bender
PS: wobei ich zu dem VARPG Kram nix sagen kann, was der da treibt
Hm das kanns nicht sein...
Habe gerade via edtobjaut dem *PGM bei *PUBLIC ALL - Rechte gegeben. der Fehler ist der Gleiche und das Protokol sagt auch das gleiche.
-
Da du beim CALL keine LIB angibst, muss die LIB, in der du das Programm erstellt hast, in der Bibliotheksliste sein.
Ansonsten wird das Programm halt nicht gefunden.
-
 Zitat von Fuerchau
Da du beim CALL keine LIB angibst, muss die LIB, in der du das Programm erstellt hast, in der Bibliotheksliste sein.
Ansonsten wird das Programm halt nicht gefunden.
Das Programm liegt in meiner Curlib, diese ist auch in meiner Libl enthalten. 
Wo müsste ich die Lib noch mit angeben? Bei const?
PHP-Code:
Dtestlangua C const('testlangua') D linkage(*server)
Also jetzt 'lib/testlangua' ?
PS: Ist es möglich das 'xxxxxx/testlangua' zulange ist?
-
Schreibe Dtestlangua C const('testlangua')
TESTLANGUA in großbuchstaben und versuche es noch einmal.
Gruß
DVE
-
Nur zur Klarstellung die Konstante und nicht die Variable muss in Großbuchstaben geschrieben werden.
Gruß
DVE
-
 Zitat von DVE
Nur zur Klarstellung die Konstante und nicht die Variable muss in Großbuchstaben geschrieben werden.
Gruß
DVE
Ah vielen Dank. Die Fehlermeldung kommt nicht mehr nur bekomme ich die Variablen nicht zurück. Werde mir mal das RPG-PGM anschauen müssen...
-
Hallo,
nochmal eine Frage zum zurückgeben von Werten. Ich will in einem ILE RPG Programm einen Select ausführen und dessen Ergebnisse an VARPG zurückübergeben. Da es ja nicht nur eine Zeile sondern mehrere sein können bietet sich hier ein Array an. (Oder gibt es da eine bessere Variante/Weg?)
Die Frage ist nur wie ich das definiere. So Zb.?
Dtest pr extpgm(test)
DKeyArr DS Dim(100) qualified
D KeyFld 6S 2 Dim(1)
D KeyNam 10A Dim(1)
D KeyTxt 20A Dim(1)
Oder muss ich nur sagen:
Dtest pr extpgm(test)
DKeyArr
Wobei ich das Array darüber genau definiere.
Wie muss ich es definieren und gib es vtl noch eine andere Möglichkeit?
Danke!
Gruß Martin
-
Ein Array ist da nicht so gut, da
1. sehr große Datenmengen übergeben werden
2. die Anzahl der Sätze ja nicht bestimmbar ist.
Wenn du also ein Array mit 100 Einträgen als Return definierst werden immer 100 Einträge zurückgegeben, auch wenn vielleicht gar keine Daten vorliegen.
Besser ist da eine Satzweise Übergabe wobei das auch nicht so optimal ist.
Ich sehe, dass VARPG da wohl doch nicht so die beste Lösung ist.
Entweder brauche ich DB2/Connect für direktes SQL oder ich verwende weiter RecordLevel-Access (was wohl keine weitere Lizenz erfordert?).
-
 Zitat von Fuerchau
Ein Array ist da nicht so gut, da
1. sehr große Datenmengen übergeben werden
2. die Anzahl der Sätze ja nicht bestimmbar ist.
Wenn du also ein Array mit 100 Einträgen als Return definierst werden immer 100 Einträge zurückgegeben, auch wenn vielleicht gar keine Daten vorliegen.
Besser ist da eine Satzweise Übergabe wobei das auch nicht so optimal ist.
Ich sehe, dass VARPG da wohl doch nicht so die beste Lösung ist.
Entweder brauche ich DB2/Connect für direktes SQL oder ich verwende weiter RecordLevel-Access (was wohl keine weitere Lizenz erfordert?).
Satzweise Übergabe klingt sehr gut nur wie mache ich das? Bei einem return wird doch aus dem Programm(RPG) herausgegangen oder nicht?
Oder ist es einfach ein:
"do *hival
fetch into ...
return
enddo" ?
Martin
PS: Es muss VARPG sein. Und wie Sie vtl aus meinem anderen Thread bemerkt haben schaffe ich es nicht von VARPG mit emb. SQL auf die AS400 zu gehen bzw dort aus der Tabelle meine Daten zu lesen.
-
Dann verwende doch einfach F-Bestimmungen, VARPG erledigt das dann schon von selber.
Ansonsten gilt eigentlich folgendes:
Bei Return entscheidet *INLR über den Zustand des Programmes:
*OFF -> alle Zustände bleiben erhalten
*ON -> alles wird freigegeben, der nächste Call ist wie neu
Also kannst du durchaus Funktionsparameter wie OPEN/READ/CLOSE usw. übergeben und im Programm entsprechend reagieren.
Aber wie gesagt, verwende doch ganz einfach F-Bestimmungen und stinknormale READ/WRITE/SETLL's usw.
-
 Zitat von Fuerchau
Dann verwende doch einfach F-Bestimmungen, VARPG erledigt das dann schon von selber.
Ansonsten gilt eigentlich folgendes:
Bei Return entscheidet *INLR über den Zustand des Programmes:
*OFF -> alle Zustände bleiben erhalten
*ON -> alles wird freigegeben, der nächste Call ist wie neu
Also kannst du durchaus Funktionsparameter wie OPEN/READ/CLOSE usw. übergeben und im Programm entsprechend reagieren.
Aber wie gesagt, verwende doch ganz einfach F-Bestimmungen und stinknormale READ/WRITE/SETLL's usw.
Erstmal Danke für die Hilfe. 
Nun meiner Meinung nach ist das SQL "schöner" und wahrscheinlich auch schneller. Ich mache einen Select der über X Tabellen geht und muss mich nicht durch 10 Dateien hangeln was das Programm doch etwas unübersichtlich macht. Und mit einer Where Bedingung kann ich auch ein die Lösungsmenge beschränken ohne das das Feld ein keyfld sein muss bzw ich die ganze Datei seq. durchlesen muss und immer mit if schauen muss ob ein nicht-keyfld einen bestimmten Wert hat.(setll geht doch nur mit einer Keylist und dementsprechenden Keyfeldern oder?)
EDIT: Das Wichtigste vergessen...
Dh wenn ich am Anfang *inlr auf *off setze und einen return mache, muss ich das Programm nocheinmal aufrufen. Aber dann wird mein Select doch nochmal ausgeführt und dadurch mein Cursor wieder überschrieben und ich bekomme Satz 1 noch einmal. Oder muss ich das alles über Schaltvariablen abfangen?
Martin
-
Du hast es erkannt.
Schalter sind da allerdings ggf. nicht ausreichend sonder ein zusätzlicher Funktionsparameter für die Steuerung:
OPEN => Cursor öffnen
FETCH => Satz übergeben
CLOSE => Curso schließen
Mit Statusrückgabe ob erfolgreich (am besten gleich den SQLCOD).
Klar ist SQL schöner, wenn aber der Einsatz des Programmes später an der Laufzeitlizenz scheitert, muss man halt nach einer besseren Lösung suchen.
Similar Threads
-
By homue in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 18-07-07, 16:47
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 10-01-07, 10:58
-
By Squall in forum IBM i Hauptforum
Antworten: 82
Letzter Beitrag: 19-10-06, 15:37
-
By Squall in forum NEWSboard Programmierung
Antworten: 9
Letzter Beitrag: 10-10-06, 08:53
-
By Angela in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 22-08-06, 10:11
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