-
Hallo,
in der Variablen steht folgendes:
CALL QSYS.QCMDEXC('STRQMQRY QMQRY(TRUMPFH/TTRWLSVST1) OUTPUT(*OUTFILE) OUTFILE(TRUMPFH/TTRWLSVST1) ALWQRYDFN(*YES) SETVAR((VAR1 100724))', 0000000117,00000)
1:1 den Befehl auf AS400 ausgeführt mit folgenden Fehlern:
Zeichen ',' nach Zeichenfolge ''STRQMQRY ' ist ungültig.
Ich habe das Kommo entfernt, dann:
CALL QSYS.QCMDEXC('STRQMQRY QMQRY(TRUMPFH/TTRWLSVST1) OUTPUT(*OUTFILE)
OUTFILE(TRUMPFH/TTRWLSVST1) ALWQRYDFN(*YES) SETVAR((VAR1 100724))' 0000000
117,00000)
Schlüsselwort QSYS.QCMDE für diesen Befehl ungültig.
Ich habe QSYS. entfernt, dann:
CALL QCMDEXC('STRQMQRY QMQRY(TRUMPFH/TTRWLSVST1) OUTPUT(*OUTFILE)
OUTFILE(TRUMPFH/TTRWLSVST1) ALWQRYDFN(*YES) SETVAR((VAR1 100724))' 0000000117,0
0000)
Schlüsselwort QCMDEXC für diesen Befehl ungültig
Fehler in Befehl CALL gefunden.
Ich werde wahnsinnig...
Gruss
Tobias
-
Übe dich in Geduld junger Padawan 
Diesen Befehl kannst du so nur im STRSQL ausführen, da es sich um eine SQL-Syntax handelt:
Code:
CALL QSYS.QCMDEXC('STRQMQRY QMQRY(TRUMPFH/TTRWLSVST1) OUTPUT(*OUTFILE) OUTFILE(TRUMPFH/TTRWLSVST1) ALWQRYDFN(*YES) SETVAR((VAR1 100724))', 0000000117,00000)
Probiere es dort nocheinmal.
Wenn du es auf der Command-Line ausfürhen willst muss das ganze so aufgebaut sein:
Code:
===> CALL PGM(QSYS/QCMDEXC) PARM('SNDMSG MSG(TEST) TOUSR(PRAN)' 0000000028.00000)
-
Ggf. ist die Dezimalpunkt-Einstellung der Verbindungsfolge nicht korrekt.
Formatiere die Längeneingabe mal mit einem Punkt: replace(format(...), ",", ".").
Wenn du den Inhalt des auszuführenden SQL's auf der AS/400 ausprobieren willst, dann rufe STRSQL auf, ändere per F13->Auswahl 1 die Namenskonvention auf *SQL.
Wenn nicht, musst du den call QSYS.QCMDEXC auf call QSYS/QCMDEXC anpassen.
-
Hallo,
erster Erfolg:
folgender Befehl auf der AS400 funktioniert jetzt:
CALL PGM(QSYS/QCMDEXC) PARM('STRQMQRY QMQRY(TRUMPFH/TTRWLSVST1) OUTPUT(*OUTFILE) OUTFILE(TRUMPFH/TTRWLSVST1) ALWQRYDFN(*YES) SETVAR((VAR1 100724))' 0000000117.00000)
aber,
der Befehl über ADO bringt einen Fehler:
CallCmd2 = "CALL PGM(QSYS/QCMDEXC) PARM('" & CallCmd & "', " & Replace(Format(Len(CallCmd), "0000000000.00000"), ",", ".") & ")"
[IBM][iSeries Access ODBC-Treiber][DB2 UDB]SQL0104 - Token QSYS ungültig. Gültige Token: :.
auch die Korrektur auf:
...PGM(QSYS.QCMDEXC)...
bringt den selben Fehler
Was kann ich da machen?
Danke
Gruss
Tobias
-
So, nach einigem probieren habe ich den Grund gefunden:
STRQMQRY läßt sich nicht aus einer SQL-Procedure aufrufen.
Begründung:
Beim Starten des QMQRY versucht dieser, eine eigene Verbindung zur DB mittels Connect herzustellen.
Da aber bereits durch den ODBC-Zugriff eine Verbindung besteht, wird dieser Connect mit SQL-Fehler 0752 abgewiesen:
Nachrichten-ID . . . . : SQL0752 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 28.07.10 Sendezeit . . . . . . : 11:32:58
Nachricht . . . : Verbindung kann nicht geändert werden. Ursachencode 4.
Ursache . . . . : Verbindung kann nicht hergestellt werden, da sich der
Anwendungsprozeß in einem Status befindet, in dem keine Verbindungen
zulässig sind. Der Ursachencode ist 4. Ursachencodes und ihre Bedeutung:
1 -- SQL befindet sich nicht in einem Status, in dem Verbindungen zulässig
sind. Dieser Status wird für SQL nach einer COMMIT- oder ROLLBACK-Anweisung
aktiviert. Der Status wird für SQL verlassen, wenn eine andere SQL-Anweisung
als COMMIT, ROLLBACK oder CONNECT ausgeführt wird.
2 -- Es stehen Änderungen an oder es sind offene Dateien unter
COMMIT-Steuerung im aktuellen Server vorhanden und die in der Anforderung
CONNECT angegebene relationale Datenbank (RDB) ist nicht der aktuelle
Server.
3 -- Es wird eine Anforderung zum Erstellen eines SQL-Pakets verarbeitet
und das Programm befindet sich nicht an einer COMMIT-Grenze.
4 -- Verbindung ist durch einen anderen Aufruf des interaktiven SQL
gesperrt, oder interaktives SQL und DB2 UDB für iSeries haben
unterschiedlichen Stand.
5 -- Verbindung kann wegen Einschränkungen für ferne Verbindungen und
wegen der COMMIT-Definition auf Jobebene nicht geändert werden.
6 -- Verbindung kann wegen einer Anweisung SET TRANSACTION nicht zu einem
fernen System hergestellt werden.
7 -- Verbindung kann nicht mit Verbindungsverwaltungsmethode *RUW geändert
werden, da eine vorherige Verbindung geschützt ist.
8 -- CONNECT RESET kann keine lokale Verbindung zu RDB *N starten, da die
RDB für die ASP-Gruppe des Thread *N ist.
Ich habe auch schon mal in deinem anderen Beitrag gefragt, warum du den in dem Query enthaltenen SQL nicht direct selber ausführst und mit dem Recordset dann arbeitest.
-
Hallo,
erster Erfolg:
folgender Befehl auf der AS400 funktioniert jetzt:
CALL PGM(QSYS/QCMDEXC) PARM('STRQMQRY QMQRY(TRUMPFH/TTRWLSVST1) OUTPUT(*OUTFILE) OUTFILE(TRUMPFH/TTRWLSVST1) ALWQRYDFN(*YES) SETVAR((VAR1 100724))' 0000000117.00000)
aber,
der Befehl über ADO bringt einen Fehler:
CallCmd2 = "CALL PGM(QSYS/QCMDEXC) PARM('" & CallCmd & "', " & Replace(Format(Len(CallCmd), "0000000000.00000"), ",", ".") & ")"
[IBM][iSeries Access ODBC-Treiber][DB2 UDB]SQL0104 - Token QSYS ungültig. Gültige Token: :.
auch die Korrektur auf:
...PGM(QSYS.QCMDEXC)...
bringt den selben Fehler
Was kann ich da machen?
Danke
Gruss
Tobias
Similar Threads
-
By Asti in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 26-10-06, 09:39
-
By Asti in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 29-08-06, 13:24
-
By TARASIK in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 27-06-06, 13:32
-
By cseitz in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 20-06-06, 14:40
-
By woki in forum NEWSboard Java
Antworten: 3
Letzter Beitrag: 06-06-06, 15:57
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