[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Dec 2006
    Beiträge
    11

    Teildatei erstellen

    Hallo NG,
    ich möchte mit einem Windows- Programm über ADO.NET Daten an unsere Buchhaltung (SoftM DKS) übergeben. Ich nutze dafür den Oledb- Provider IBMDA400. Die Daten müssen in eine Datei mit dem Namen 'S8' geschrieben werden. In der DKS wird ein Übernahmeprogramm durchgeführt, welches die Daten aus der S8 importiert. Danach sind alle Teildateien aus S8 entfernt. Versuche ich jetzt neue Daten in die S8 zu schreiben kommt eine Meldung 'S8 in Firmenbibliothek F10 ungültig'. Bisher habe ich immer eine Batch- Datei mit folgendem Befehl vor der Datenübergabe aufrufen lassen :'RMTCMD ADDPFM FILE(F10/S8) MBR(PIORENT) /Z'. Das fand ich nicht besonders schön, hat aber funktioniert. Jetzt wollen wir unsere Windowsanwendung über Windows-Terminalserver betreiben und das RMTCMD funktioniert dort nicht. Kann ich die Teildatei auch über den Oledb- Provider anlegen (stored procedure o.ä.) oder kann ich irgendwie anders auf die AS400- Datei zugreifen oder habe ich Client Access auf dem TS falsch installiert?
    cu
    Hendrik

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Du kannst dies als vorhandenen Prozedur in SQL aufrufen:

    CALL QSYS.QCMDEXC ('MYCMD' format$(5, "0000000000.00000")

    Alternativ über eine deklarierte QCMDEXC-Prozedur (im Forum gibts entsprechende Beispiele mit CALL QCMDEXC in SQL.)
    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. #3
    Registriert seit
    Dec 2006
    Beiträge
    11

    Teildatei

    Hallo und Vielen Dank für die schnelle Antwort.
    Ich habe am Freitag noch ewig rumprobiert, aber bekomme immer wieder Fehlermeldungen.
    Ich habe mein Problem vorerst über ftp gelöst:
    - Verbindung aufbauen
    - 'quote rcmd addpfm usw.' absetzen
    - Verbindung schließen
    Das iSeries- Information-Center ist nicht besonders ergiebig bei 'QCMDEXC'.
    cu
    Hendrik

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    In folgendem Beitrag (am Ende) findest du alles:

    http://www.rlpforen.de/showthread.ph...ht=qcmdexc+sql
    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

  5. #5
    Registriert seit
    Dec 2006
    Beiträge
    11
    Hallo,
    ich habe z.B. folgende Meldungen auf der Befehlszeile (bekomme ich über den Oledb- Provider auch).
    Vorherige Befehle und Nachrichten:
    Code:
       > call qcmdexc('addpfm file(f10/s8) mbr(piorent)',0000000032.00000) 
         Zeichen ',' nach Zeichenfolge ''addpfm fi' ist ungültig.          
         Fehler in Befehl *N gefunden.                                     
       > call qcmdexc('addpfm file(f10/s8) mbr(piorent)', 0000000032.00000)
         Zeichen ',' nach Zeichenfolge ''addpfm fi' ist ungültig.          
         Fehler in Befehl *N gefunden.                                     
       > call qcmdexc('addpfm file(f10/s8) mbr(piorent)' 0000000032.00000) 
         Schlüsselwort QCMDEXC für diesen Befehl ungültig.                 
         Fehler in Befehl CALL gefunden.
    Habe ich was falsch verstanden?
    cu
    Hendrik

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.247
    Schu die den Link genau an.
    Hast du die Prozedur erstellt ?
    Erstelle dir ein Command-Objekt mit "call qtemp.qcmdexc(?, ?)" und fülle den 1. parameter mit dem Kommando und den 2. Parameter mit der Länge:

    MyCmd.CommandText = "call qtemp.qcmdexc(?, ?)"
    MyCmd(0) = "das kommando"
    myCmd(1) = len(MyCmd(0))
    MyCmd.Execute
    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

  7. #7
    Registriert seit
    Dec 2006
    Beiträge
    11
    Guten Morgen,
    Vielen Dank noch einmal. Ich habe es noch einmal versucht und es funktionierte sofort.

    Code:
        Public Sub ExecuteCommand(ByVal cmd As String)
    
            cmd = String.Format("call qsys.qcmdexc('{0}', {1})", cmd, _
            Format(Microsoft.VisualBasic.Len(cmd), _
            "0000000000\.") & "00000")
            Dim c As New OleDb.OleDbCommand(cmd, _conn)
            Debug.Print(c.CommandText)
            Try
                c.ExecuteNonQuery()
                Debug.Print("Command ausgeführt")
            Catch ex As Exception
                MsgBox("Fehler: " & ex.Message & Chr(13) & Chr(13) & _
                ex.ToString)
            End Try
    
        End Sub
    Der Tag ist gerettet.
    cu
    Hendrik

Similar Threads

  1. verschlüsseltes zip erstellen ?
    By I0N in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 09-01-09, 17:38
  2. WDSC - Teildatei gesperrt
    By Allrounder in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 06-02-08, 13:48
  3. Teildatei mit SQL anzeigen
    By Rico in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 06-07-06, 16:25
  4. Grafik-Dateien erstellen
    By KM in forum NEWSboard Java
    Antworten: 3
    Letzter Beitrag: 08-06-06, 09:09
  5. Mehrere Teildateien in eine Teildatei kopieren
    By KaFi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-05-06, 11:49

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •