-
evt. noch eine Idee. Bin völlig ratlos.
Danke.
-
Nach dem con_open kannst du auf der AS/400 per WRKOBJLCK User *USRPRF den QZDASOINIT-Job herausfinden, mit dem du verbunden bist.
Anschließend führst du den Execute aus und hältst vor dem con_close an.
Dan schau ins Joblog.
-
Hallo Herr Fuerchau,
LIBR = "SWDTA"
DATEI = "GSAP00"
VAR1 = "CALL TRUMPFH.TTRFDC (" & LIBR & ", " & DATEI & ")"
...ist doch eigentlich korrekt.
hier der JOBLOG:
Job . . : QZDASOINIT Benutzer : QUSER Nummer . . . : 356457
Job 356457/QUSER/QZDASOINIT im Subsystem QUSRWRK in QSYS am 05.10.10 um
Druckereinheit PRT01 nicht gefunden.
Fehler im Befehl CHGJOB für Job 356457/QUSER/QZDASOINIT.
Druckereinheit PRT01 nicht gefunden.
Job erfolgreich geändert; es traten jedoch Fehler auf.
Benutzer TRUMPFH an Client 128.1.1.182 ist mit dem Server verbunden.
Druckereinheit PRT01 nicht gefunden.
Job erfolgreich geändert; es traten jedoch Fehler auf.
Token SWDTA ungültig. Gültige Token: :.
Token TRUMPFH ungültig. Gültige Token: ( INTO USING.
Token . ungültig. Gültige Token: FOR WITH FETCH ORDER UNION EXCEPT
OPTIMIZE.
Nachrichten-ID . . . . : SQL0104 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 05.10.10 Sendezeit . . . . . . : 14:20:32
Nachricht . . . : Token SWDTA ungültig. Gültige Token: :.
Ursache . . . . : Bei Token SWDTA wurde ein Syntaxfehler entdeckt. Token
SWDTA ist kein gültiges Token. : ist eine Teilliste gültiger Token. Diese
Liste geht davon aus, dass die Anweisung bis zu diesem Token korrekt ist. Es
kann eine frühere Stelle in der Anweisung fehlerhaft sein, aber bis zu
dieser Stelle scheint die Syntax gültig zu sein.
Fehlerbeseitigung: Einen der folgenden Schritte durchführen und die
Anforderung wiederholen:
- SQL-Anweisung im Bereich des Token SWDTA überprüfen. Anweisung
korrigieren. Der Fehler kann ein fehlendes Komma oder Anführungszeichen
sein, er kann in einem falsch geschriebenen Wort oder in der Anordnung der
Klauseln begründet sein.
-
Bei SQL musst du Zeichenkonstanten in einfache Hochkomma setzen und entsprechend der benötigten Länge übergeben (also 10-Stellig!).
Ansonsten erkennt SQL hier nicht einen Programm-CALL und meldet ggf. halt noch andere Fehler.
Wenn der CALL so nicht akzeptiert wird, musst du dies doch in einen QCMDEXC-Aufruf verpacken (diesen AUfruf hattest du ja schon mal).
-
...habe das jetzt so getestet, bekomme aber noch einen Fehler im Joblog:
Dim DATEI, LIBR, VAR1, VAR2 As String
DATEI = UCase(Left(txt_datei.Text & Space(10), 10))
LIBR = UCase(Left(txt_libr.Text & Space(10), 10))
Dim cnn As ADODB.Connection
Dim con_str As String
Dim CallCmd As New ADODB.Command
OnErrorResumeNext
cnn = New ADODB.Connection
VAR1 = "CALL TRUMPFH.TTRFDC(" & LIBR & ", " & DATEI & ")"
VAR2 = "CALL QSYS.QCMDEXC ('" & VAR1 & "', " & Format(Len(VAR1), "00000000000.00000") & ")"
adocon.con_open()
joblog:
Druckereinheit PRT01 nicht gefunden.
Fehler im Befehl CHGJOB für Job 366164/QUSER/QZDASOINIT.
Druckereinheit PRT01 nicht gefunden.
Job erfolgreich geändert; es traten jedoch Fehler auf.
Benutzer TRUMPFH an Client 128.1.1.182 ist mit dem Server verbunden.
Druckereinheit PRT01 nicht gefunden.
Job erfolgreich geändert; es traten jedoch Fehler auf.
Befehlslänge ungültig. --> siehe Details
Im Befehl ist ein Fehler aufgetreten.
Fehler von Auslöserprogramm oder externer Routine erkannt.
details:
Nachrichten-ID . . . . : CPD0005 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 05.10.10 Sendezeit . . . . . . : 16:09:44
Nachricht . . . : Befehlslänge ungültig.
Ursache . . . . : Im zweiten Parameter, der an QCMDEXC oder QCMDCHK gesendet
wurde, wurde eine ungültige Länge angegeben.
Fehlerbeseitigung: Befehlslänge so ändern, dass sie von 1-32702 Zeichen
reicht.
Was muß ich denn im zweiten Parameter angeben?
-
Eine "0" zu viel, ich zähle 11 statt 10.
Desweiteren ist der Call für QCMDEXC wieder in CALL TRUMPFH/TTRFDC zu ändern.
Wenn du nun doch QCMDEXC aufrufst, kannst du dir den SPACE und UCASE wieder sparen, da dies ja nun wieder vom CALL-CMD korrigiert wird .
-
...jetzt sind die Fehler zumindest schon reduziert:
Dim DATEI, LIBR, VAR1, VAR2 AsString
DATEI = txt_datei.Text
LIBR = txt_libr.Text
VAR1 = "CALL TRUMPFH/TTRFDC(" & LIBR & " " & DATEI & ")"
VAR2 = "CALL QSYS.QCMDEXC ('" & VAR1 & "', " & Format(Len(VAR1), "0000000000.00000") & ")"
adocon.con_open()
Joblog:
Nachrichten-ID . . . . : CPD0005 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 06.10.10 Sendezeit . . . . . . : 08:02:18
Nachricht . . . : Befehlslänge ungültig.
Ursache . . . . : Im zweiten Parameter, der an QCMDEXC oder QCMDCHK gesendet
wurde, wurde eine ungültige Länge angegeben.
Fehlerbeseitigung: Befehlslänge so ändern, dass sie von 1-32702 Zeichen reicht.
-
...immer wieder derselbe Fehler: Befehlslänge ungültig. Ich weiß nicht, was ich noch ändern soll...
-
Schau dir das Ergebnis von Var2 an.
Format bereitet mit dem Dezimalkomma auf, was allerdings durch SQL (Abhängig von Verbindungseinstellungen) ggf. nicht erkannt wird, so dass an Stelle von 2 Parametern 3 übergeben werden und der 2. nur Packed(10,0) ist.
Baue noch einen Replace drumherum:
replace(Format(...), ",", ".")
-
juchhu, das hat funktioniert.
Tausend Dank.
So ist der Aufruf jetzt:
VAR2 = "CALL QSYS.QCMDEXC('" & VAR1 & "', " & Replace(Format(Len(VAR1), "0000000000.00000"), ",", ".") & ")"
Danke.
Gruss
Tobias
-
... und, was kriegst du jetzt raus, was nicht schon in der QSYS2.SYSCOLUMNS drinsteht?
D*B
 Zitat von padawan
juchhu, das hat funktioniert.
Tausend Dank.
So ist der Aufruf jetzt:
VAR2 = "CALL QSYS.QCMDEXC('" & VAR1 & "', " & Replace(Format(Len(VAR1), "0000000000.00000"), ",", ".") & ")"
Danke.
Gruss
Tobias
Similar Threads
-
By Tom74 in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 22-12-07, 11:22
-
By emax in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-10-06, 11:01
-
By pwrdwnsys in forum NEWSboard Java
Antworten: 18
Letzter Beitrag: 07-09-06, 09:39
-
By flytokiwi in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 13-03-06, 11:22
-
By coolie in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 01-06-04, 20:29
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