-
AS400 CALL's aus Mircrosoft Access
Hallo zusammen,
bisher kenne ich aus dem Forum nur folgene Technik um ein einfaches CL aus MS-Access mittels eine Pass-Through Abfrage auf der AS400 Seite aufzurufen.
CALL QSYS.QCMDEXC ('CALL LIB_CL/SIS_CL2', 0000000019.00000)
Wie kann ich so ein AS-Programm aus Access z.B. auch mit Parameter aufrufen - der CALL wäre z.B. dieser.
CALL MOBITEST.F_VLKW_VEREINIGEN('0000AFFF1,0000BFFF2,00 00CFFF3', 'K-XY')
Danke Franz
-
Hallo Franz,
das kann so aber kein Call auf ein IBM i Programm sein.
Kann es sein das Du eine SQL Procedure aufrufen möchtest ? Das funktioniert
natürlich nur im SQL Kontext.
Gruß
Michael
-
Das Problem ist, dass du tatsächlich nicht so einfach Parameter mit angeben kannst.
Am Besten du lässt dir eine Prozedur auf der AS/400 definieren, dann kannst du die mittels Passthru-Abfrage "call MyLib.MyProc(?, ?, ...?)" ausführen.
Jedes "?" bestimmt genau einen Parameter.
Ansonsten hilft dir nur VBA.
Hier kannst du eine Funktion mit Parametern entwickeln, die den eigentlichen AS/400-CALL kapselt und dann selber per SQL durchführt.
-
Hallo Michael.
bisher wie gesagt habe ich nur kleine CL's mittls diesem Befehl in einer Access Pass Throuh-Abfrage aufgerufen - könnte auch genauso weiter laufen.
CALL QSYS.QCMDEXC ('CALL LIB_CL/SIS_CL2', 0000000019.00000)
Ja du hast recht dieses mal stellt mir ein Entwickler eines Systems auf der AS400 genau eine SQL Procedue zur Verfügung
F_VLK00001 *PGM MOBITEST CLE SQL PROCEDURE F_VLKW_VEREIN
die wie folgt aufgerufen werden könnte :
CALL MOBITEST.F_VLKW_VEREINIGEN('0000AFFF1,0000BFFF2,00 00CFFF3', 'K-XY')
Nur wie mache ich das eben aus Access heraus ?
Wenn ich wie bisher die CL's die ich von dort aufrufe (klappt seit Jahren super) so übergebe,
CALL QSYS.QCMDEXC ('CALL MOBITEST/F_VLKW_VEREINIGEN('0000AFFF1,0000BFFF2,0000CFFF3', 'K-XY 456') ', 0000000076.00000)
bekomme ich erstmals die Meldung SQL0103 - Numerische Konstante 0000AFFF1 ungültig (#103)
Das ist erstmals mein Problem.
Gruss
Franz
-
Den 2. Aufruf kannst du vergessen, da nun mal eine SQL-Prozedur kein Programm ist.
AS/400-Programmnamen sind max. 10-stellig, Prozedurnamen können 128 Stellen haben.
An deiner Stelle würde ich eine Passthru-Abfrage definieren:
CALL MOBITEST.F_VLKW_VEREINIGEN(?, ?)
Dann kannst du zur Laufzeit die Parameter der Abfrage mit deinen Werten vervollständigen (nun ohne Hochkomma) und ausführen.
Benannte Parameter (also per eckige Klammer und Name) wird nicht unterstützt.
Similar Threads
-
By KingofKning in forum NEWSboard Programmierung
Antworten: 13
Letzter Beitrag: 19-02-15, 16:42
-
By malzusrex in forum NEWSboard Programmierung
Antworten: 17
Letzter Beitrag: 15-11-13, 11:21
-
By kuetemaj in forum NEWSboard Windows
Antworten: 8
Letzter Beitrag: 11-12-08, 07:59
-
By Kirsten Steer in forum Archiv NEWSblibs
Antworten: 0
Letzter Beitrag: 17-01-03, 11:57
-
By areichelt in forum NEWSboard SAP
Antworten: 2
Letzter Beitrag: 24-02-02, 16:44
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