-
Scott Klement - RPG-Zugriff auf SQL-Server
Guten Tag zusammen!
Vor einiger Zeit habe ich von Scott Klement eine Beschreibung gefunden, wie man von RPG aus auf einen SQL-Server zugreifen kann. Die Quellen habe ich für meine Anforderungen angepasst (nur den RPG-Teil!) und es funktioniert einwandfrei.... wenn der benötigte Server mal gerade da ist....
Spaß beiseite: Es geht darum, dass zwar im Programm abgefragt wird, ob denn die Verbindung erfolgreich aufgebaut werden konnte, aber trotzdem erscheint eine sehr "unansehliche" Fehlermaske. Diese möchte ich nun gerne loswerden, schaffe es aber nicht.
Kann mir hier jemand helfen?
Diese "seltsame" Anzeige wollte ich im Anhang dieses Beitrags beifügen. Allerdings bekomme ich immer die Meldung, dass das Hochladen fehlgeschlagen ist für die angegebene JPG-Datei.
Vielen Dank, Gruß, JIM
-
In welcher Sprache ist Scott's Zugriff ?
Hast du mal einen Link zur Quelle ?
-
Hallo Fuerchau,
ja, Entschuldigung. Das hatte ich ganz vergessen.
Hier zum Beispiel:
http://www.pentontech.com/IBMContent...RpgAndJdbc.zip
Ich dachte, dass bei der Erwähnung Scott Klements jeder gleich weiß, was ich meine...
-
Hallo!
Das wird die Java-Fehlerconsole sein.
Ich habe das bereits erfolgreich mit einer Oracle-DB und jetzt auch mit SQL-Server umgesetzt.
Es wird für den Zugriff auf die JDBC-Connection zugegriffen. Dazu werden Service-Programme verwendet.
Man kann aber in dem RPG auf Fehlercodes abfragen.
Es gibt da einen Funktionsaufruf JDBC_ConnProp und der liefert bei verbunden 6 zurück, sonst 0 (bei Oracle).
Ich denke beim SQL-Server ist es ähnlich. Da fragen wir nur auf *NULL ab.
Gruß,
Günter
-
Hallo Günter,
JAVA-Fehlerconsole... hmmm, das klingt gut, so sieht das Ding auch aus...
Das Problem ist nur, dass der Fehler in dem Serviceprogramm auftritt und ein Nullwert als Returnwert zurückkommt. Das kann ich dann in meinem RPG-Programm auch abfragen, dass das Programm dann beendet wird, aber die (naja, nennen wir sie weiterhin) JAVA-Fehlerconsole kommt trotzdem, bleibt ein paar Sekunden stehen und dann endet das Ganze normal. Nur die Benutzer fallen vom Stuhl wenn dieses Window erscheint und fangen hektisch an mit F3 oder anderem die Anzeige verschwinden zu lassen und im Extremfall --- wird rechts oben einfach die Session geschlossen. Darum wollte ich diese Anzeige gerne loswerden.
Trotzdem danke für Deine Antwort!
JIM
-
Hallo Günter,
da bin ich nochmal. Jetzt habe ich mir das mal im Debug angeschaut. Wenn die connection steht, ist der von Dir angesprochene Funktionswert 12. Aber (tut mir leid, aber ich bin ein dinosaurierartiges Relikt der reinen AS400-Programmierung vergangener Tage) WIE bitte kann ich den Wert abfragen? Das klappt weder alphanumerisch noch numerisch. Fragen über Fragen...
Wäre für einen Hinweis echt dankbar.
JIM
-
Hallo Jim!
Ich gehe mal davon aus, auch wenn du ein Dino bist
daß du in ILE-RPG programmierst.
Also hier ein paar Code-Schnipsel:
conn = JDBC_ConnProp( 'oracle.jdbc.OracleDriver'
: %trim( DB_Conn_Info )
: prop );
JDBC_freeProp( prop ) ;
und dann für den Fehlerfall:
If conn = *NULL
....
bzw. wenn Verb. steht:
If conn <> *NULL
lesen, schreiben, etc.
mehr machen wir auch nicht.
Müßte mal probieren, ob die Java-Konsole kommt, wenn ich keine Verb. habe.
Unsere Programme laufen aber auch nicht interaktiv sondern im Batch. Vielleicht bringt es was, den Zugriff in ein eigenes Programm auszulagern.
Naja, will nicht zu weit ausholen,
Gruß,
Günter
-
Hallo Günter,
danke für die schnelle Antwort --- aber genau so sieht mein (ILE-RPG !!!) Code auch aus! Und trotzdem kommt die JAVA-Konsole.
Sollte die Lösung wirklich darin liegen, dass ich diese Aktion im Batch mache? Das werde ich morgen gleich mal testen.
Dino-Grüße,
JIM
-
Um die Javaconsole auszuschalten musst du diese beim Starten der JVM umleiten.
Ggf. hilft hier ein
OVRDBF FILE(STDOUT) TOFILE(QPRINT)
OVRDBF FILE(STDERR) TOFILE(QPRINT)
Wenn das nicht hilft, da ja Java in einem eigenen Job gestartet wird musst du Ausgabeumleitungen einbauen.
Da ich Java nicht in RPG direkt starte sondern mit der QSH geht das in der Form:
QSH CMD('java ... >/dev/null 2>/dev/null')
Ggf. geht das auch irgendwie aus RPG.
-
Guten Morgen Fuerchau!
Super Tipp! Es scheint zu funktionieren mit den beiden OVRDBF-Befehlen. Da ja pro Job nur eine JVM gestartet werden kann, würde ja genügen, diese beiden Befehle einmal, z.B. gleich im Startprogramm, abzusetzen.
Das sieht echt gut aus. Vielen Dank Dir Fuerchau und auch an Günter!
Schönen Tag, Gruß,
JIM
-
Hallo zusammen!
ES FUNKTIONIERT - ich bin begeistert.
Den Ansatz mit dem Startprogramm musste ich verwerfen, da fast jeder User ein eigenens hat.
Aber ich rufe nun aus dem RPG-Programm, in dem der SQL-Server-Zugriff erfolgt, einfach am Anfang ein CL auf, in dem die beiden Commands
OVRDBF FILE(STDOUT) TOFILE(QPRINT) OVRSCOPE(*JOB)
OVRDBF FILE(STDERR) TOFILE(QPRINT) OVRSCOPE(*JOB)
ausgeführt werden. Selbst wenn die Überbschreibung schon existiert ist es dank MONMSG kein Problem.
Tritt nun ein Fehler auf, z.B. keine Verbindung zum Server möglich, so wird in der QPRINT ein Spool erzeugt, der die entsprechenden, kryptischen Fehlermeldungen enthält. That's it.
@Günter: Rufe ich das Programm OHNE die OVRDBF-Commands im BATCH auf --- passiert genau das Gleiche wie mit den OVRDBF. Dann erstellt das System (wohl mangels Alternative) auch diese Spoolfile! Das war also schon der richtige Ansatz.
Danke nochmal. Vielleicht kann sich der "Dino" mal revanchieren???
JIM
-
Es geht ja noch "einfacher":
D CMD PR EXTPGM('QCMDEXC')
D COMMAND 200A CONST
D LEN 15P 5 CONST
:
:
:
C CALLP CMD('OVRDBF FILE(STDOUT) TOFILE(' +
C 'QPRINT) OVRSCOPE(*JOB)': 200)
C CALLP CMD('OVRDBF FILE(STDERR) TOFILE(' +
C 'QPRINT) OVRSCOPE(*JOB)': 200)
Das freut mich jetzt so, dass das funktioniert, dass ich garnicht mehr von dem Thema ablassen kann.
Für Euch ist die obige Info vielleicht ein alter Hut?
Für mich "Dino" sind das neue Erkenntnisse. Aber vielleicht hat ja mal ein anderer Dino auch das Problem...
Gruß, JIM
Similar Threads
-
By steven_r in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 17-09-07, 20:51
-
By tschroeder in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 04-05-05, 09:21
-
By godfragger in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 13-05-04, 15:24
-
By Ludger Muhmann in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-07-02, 09:49
-
By Sven Keiselt in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 30-01-01, 12:33
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