[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2

Thema: DSPFFD

  1. #13
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...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?

  2. #14
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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 .
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #15
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...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.

  4. #16
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...immer wieder derselbe Fehler: Befehlslänge ungültig. Ich weiß nicht, was ich noch ändern soll...

  5. #17
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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(...), ",", ".")
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #18
    Registriert seit
    Jan 2010
    Beiträge
    83
    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

  7. #19
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... und, was kriegst du jetzt raus, was nicht schon in der QSYS2.SYSCOLUMNS drinsteht?

    D*B

    Zitat Zitat von padawan Beitrag anzeigen
    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
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. Informationen zu EINER Teildatei auslesen
    By Tom74 in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 22-12-07, 11:22
  2. fehlende DDS Sourcen: disassembler?
    By emax in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 06-10-06, 11:01
  3. DDS Feldname ermitteln
    By pwrdwnsys in forum NEWSboard Java
    Antworten: 18
    Letzter Beitrag: 07-09-06, 09:39
  4. Bezeichnung des Satzformates
    By flytokiwi in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 13-03-06, 11:22
  5. Cursor gezielt auf Fehlerfeld setzen ohne Indikatoren im DDS
    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
  •