-
Zugriff von Node.js via Stored Procedure auf i5
Hallo,
wir wollen von Node.js aus via Stored Procedure und ODBC auf ein RPGLE-Programm zugreifen um Daten zu ermitteln.
Ganz grob funktioniert das wie folgt:
Es kommt eine Anfrage von Node.js via Stored Procedure auf die i5. Dort werden die Daten ermittelt und wieder zurückgegeben.
Die Anfrage (es werden 2 Parameter übergeben) kommt korrekt an. Nach der beendigung meines Programmes kommen die Werte jedoch nicht im Zielsystem an.
Ich poste mal den Code:
=============================
var sql = `CALL PPSO.SP_KNKTON1(?,?)`
odbc.connect(dsn, (error, connection) => {
connection.query(sql, ['DE',''], function(err, result) {
if(err) {
console.log(err)
} else {
console.log(result)
}
connection.close()
})
});
=========================
es wurde auch so versucht:
=========================
async function callProcedureExample(res) {
const dsn = "DSN=NodeJS;UID=XXXX;PWD=XXXX"
try {
const connection = await odbc.connect(dsn);
const result = await connection.callProcedure(null, 'PPSO', 'SP_KNKTON1', ['DEcdeabcde', 'abcdeabcde']);
console.log(result);
} catch(err) {
console.log(err)
=========================
Beides funktioniert leider nicht!
Die Console zeigt folgendes an:
=========================
Statement: 'CALL PPSO.SP_KNKTON1(?,?)'
parameters: [ 'DE', '' ],
return: undefined,
count: 0,
columns: ]
=========================
Fakt ist, dass das ILE-Programm sauber funktioniert, der Aufruf korrekt ist (die Parameter werden übergeben), jedoch im rufenden System nichts zurückkommt.
Hat jemand eine Ahnung warum die Rückgabe nicht funktioniert? Via. PHP-Script funktioniert es einwandfrei!
-
Wenn die Funktion einen Return zurückgeben soll dann per :
call ? function(?, ?)
Der 1. Parameter ist dann der Return.
Alternativ geht aber auch einfach:
values(function(?, ?))
Dies entspricht der Kurzform "select function(?, ?) from sysibm.sysdummy". Du bekommst dann also ein Resultset zurück, dass genau 1 Satz mit dem Ergebnis enthält.
-
Eine SQL Prozedur hat keinen Rückgabewert, außer ein Result-Set einer SQL Abfrage.
Die Rückgabewerte werden über die Parameter (IN, INOUT, OUT) definiert.
Dementsprechend wären von mir mal die Fragen:
* Wie ist das RPG definiert (Parameter, Rückgabewerte falls Prozedur)
* Wie ist die SQL Prozedur definiert (IN/OUT Parameter)
* Im NodeJS müssen dann die Parameter mit einer Variable gebunden werden, sodass du dann dort die Rückgabewerte der Parameter hinein bekommst.
Anders sieht es dann bei einer SQL Funktion aus.
lg Andreas
Similar Threads
-
By Peet in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 16-04-20, 20:04
-
By KM in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 25-11-17, 10:09
-
By lorenzen in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 12-12-02, 16:46
-
By Sven Schneider in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 03-09-02, 07:31
-
By lorenzen in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 27-08-02, 14:59
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