[NEWSboard IBMi Forum]

Thema: DSPFFD

Hybrid View

  1. #1
    Registriert seit
    Jan 2010
    Beiträge
    83

    DSPFFD

    Hallo, betrifft V5R4

    dieses u.g. CL funktioniert, wenn ich die Parameter in der Befehlszeile eingebe:

    CALL SCHMIDT/TTRFDC (xxx yyy)


    PGM PARM(&DATEI &LIBR)
    DCL VAR(&DATEI) TYPE(*CHAR) LEN(10)
    DCL VAR(&LIBR) TYPE(*CHAR) LEN(10)
    DSPFFD FILE(&LIBR/&DATEI) OUTPUT(*OUTFILE) +
    OUTFILE(SCHMIDT/FFD)
    OVRDBF FILE(QADSPFFD) TOFILE(SCHMIDT/FFD)
    RUNQRY QRY(SCHMIDT/SCHFDTTR)
    ENDPGM

    Wenn ich das Programm über ADO starte, scheint es als ob die Parameter nicht mitgeben werden:

    Dim datei, libr, VAR1 As String
    datei = txt_datei.Text
    libr = txt_bibl.Text
    Dim cnn As ADODB.Connection
    Dim con_str As String
    Dim CallCmd As New ADODB.Command
    cnn = New ADODB.Connection
    VAR1 = "CALL SCHMIDT.SCHFDC (" & datei & ", " & libr & ")"
    adocon.con_open()
    CallCmd = New ADODB.Command
    OnErrorResumeNext
    CallCmd.CommandText = VAR1
    CallCmd.ActiveConnection = adocon.cnn
    CallCmd.Execute(adocon.cnn)
    adocon.con_close()

    Was mach ich falsch?

    Danke.
    Gruss
    Tobias

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    select * from QSYS2.syscolumns
    wäre eh besser

    D*B


    Zitat Zitat von padawan Beitrag anzeigen
    Hallo, betrifft V5R4

    dieses u.g. CL funktioniert, wenn ich die Parameter in der Befehlszeile eingebe:

    CALL SCHMIDT/TTRFDC (xxx yyy)


    PGM PARM(&DATEI &LIBR)
    DCL VAR(&DATEI) TYPE(*CHAR) LEN(10)
    DCL VAR(&LIBR) TYPE(*CHAR) LEN(10)
    DSPFFD FILE(&LIBR/&DATEI) OUTPUT(*OUTFILE) +
    OUTFILE(SCHMIDT/FFD)
    OVRDBF FILE(QADSPFFD) TOFILE(SCHMIDT/FFD)
    RUNQRY QRY(SCHMIDT/SCHFDTTR)
    ENDPGM

    Wenn ich das Programm über ADO starte, scheint es als ob die Parameter nicht mitgeben werden:

    Dim datei, libr, VAR1 As String
    datei = txt_datei.Text
    libr = txt_bibl.Text
    Dim cnn As ADODB.Connection
    Dim con_str As String
    Dim CallCmd As New ADODB.Command
    cnn = New ADODB.Connection
    VAR1 = "CALL SCHMIDT.SCHFDC (" & datei & ", " & libr & ")"
    adocon.con_open()
    CallCmd = New ADODB.Command
    OnErrorResumeNext
    CallCmd.CommandText = VAR1
    CallCmd.ActiveConnection = adocon.cnn
    CallCmd.Execute(adocon.cnn)
    adocon.con_close()

    Was mach ich falsch?

    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/

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da dein Programm 10-stellige Werte benötigt musst du auch 10-stellige Werte übergeben.

    Datei = Left(Datei & Space(10), 10)

    Der Unterschied zwischen CALL-CMD und SQL-CALL ist der, dass das CALL-CMD bei manueller Eingabe Zeichenketten, die kürzer als 32 sind auf 32 Stellen verlängert.
    Deinem CLP kann das egal sein, da eh nur Adressen übergeben werden.

    Bei SQL-Call werden Parameter genau in der angegebenen Länge übergeben.
    Wenn du aber 10 Stellen erwartest, steht halt Schrott drin.

    Zu Sicherheit solltest du die Paramter auch noch mit UCASE(Datei) in Grußbuchstaben wandeln, denn auch diese Konvertierung macht das CALL-CMD bei fehlenden Hochkommata.
    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

  4. #4
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...ich übergebe Wert in den Variablen:

    Wert libr --> SCHMIDT
    Wert datei --> GSAR00

    datei = UCase(Left(txt_datei.Text & Space(10), 10))
    libr = UCase(Left(txt_libr.Text & Space(10), 10))

    Keine Änderung.
    Das was ich in der Befehlszeile über Call erfolgreich auf der AS400 ausführe, diesen Call möchte ich über Visual Basic an die AS400 übergeben. Da ich das schon paarmal ausgeführt habe, gehe ich davon aus, daß die Parameterübergabe funktionieren sollte, aber der Teufel steckt bestimmt wieder im Detail.
    Bin ratlos.

    Gruss
    Tobias

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Auch hier gilt mal wieder:
    Welche Fehlermeldung bekommst du bei Ausführung ?
    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. #6
    Registriert seit
    Jan 2010
    Beiträge
    83
    ...komischerweise gar keine. Wie gesagt, wenn ich den Call über die AS400 absetze wird das CL ausgeführt. Beim Absetzen des Calls über ADO wird das CL auf der AS400 nicht ausgeführt - es kommt aber auch keine Fehlermeldung bei ADO.

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Dann denke ich eher, dass der CALL erfolgreich ist, aber dein CLP nichts macht.

    Baue mal in dein CLP ein DSPJOBLOG ein und ggf. einen CHGJOB LOGCLPGM(*YES).
    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

  8. #8
    Registriert seit
    Jan 2010
    Beiträge
    83
    den Joblog bekomme ich nur, wenn ich den Call-Befehl auf der AS400 ausführe. Über ADO passiert nichts. Das CLP wird nicht ausgeführt. In der Bibliotheks-Suchliste bin ich mit meiner Bibliothek auch drin. Über WRKOBJ habe ich auch die Berechtigungen des CLP geprüft - dort steht Public auf *Change und mein Benutzername auf *ALL.
    Ich weiß nicht was ich noch machen kann.

  9. #9
    Registriert seit
    Jan 2010
    Beiträge
    83
    evt. noch eine Idee. Bin völlig ratlos.
    Danke.

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    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.
    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

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
  •