[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    27

    VB und PRG-Programm starten

    Hallo AS400-Gemeinde,

    folgendes Problem stellt sich:

    Ich möchte ein CL-Programm aus einer VB-Applikation starten.

    Dies ist ein Steuerungs-Programm aus dem weitere verschiedene CL's und RPG-Programme aufgerufen werden.

    Im Batch mit Job-Description und Bibliotheksliste läuft es einwandfrei.

    Bei Aufruf aus VB wird es zwar gestartet kann jedoch die aufzurufenden Programme nicht finden.

    ****Aufruf aus VB
    Dim cmd As New ADODB.Command
    Set cmd.ActiveConnection = dba.GetConnection

    cmd.CommandText = "{{CALL /QSYS.LIB/EDVKAHN1.LIB/GETPRJMAIN.PGM}}"
    cmd.Prepared = True
    cmd.CommandType = adCmdText

    cmd.Execute

    Set cmd = Nothing
    *****

    hier das CL
    /******************** PM-NUTZER VERARBEITEN **************/
    CHGVARVAR(&RETVAL)VALUE('0')
    CALLPGM(GETPMNTZ)PARM(&RETVAL)
    IFCOND(&RETVAL='0')THEN(DO)
    GOTOCMDLBL(ABBRUCH)
    ENDDO

    jetzt kann ich natürlich den Aufruf ändern
    in
    CALLPGM(EDVKAHN1/GETPMNTZ)

    was ja auch funktionieren würde, allerdings nur im Develpoment und Test.

    Produktiv müsste allerdings wieder alles verändert werden , da die Bibliothek eine andere ist (Flexibilität).

    Was kannn, muss ich ändern damit der VB-Aufruf funktioniert?


    Grüsse
    HP Kahn

  2. #2
    Registriert seit
    Feb 2003
    Beiträge
    119
    mach ein rtvobjd auf ein objekt das sich in beiden systemen befindet der returnwert &lib liefert dir die bibliothek (test oder Echt)

    gruß Georg

  3. #3
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Bei der ODBC-Verbindung über CA musst du die Bibliotheksliste setzen.
    In der ODBC-Konfig führst du einfach die Lib's mit Leerzeichen getrennt auf.
    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
    Mar 2006
    Beiträge
    35

    in ODBC Quelle *USRLIBL verwenden

    Hallo HPKahn,

    ich habe ein ähnliches Problem so gelöst
    ( mit CA Express von V5R2):
    - User auf iSeries anlegen mit passender JOBD, sodass die LIBL passt
    - in ODBC Quelle 'Namenskonvention' auf *SYS, 'SQL Standard Bibliothek' leer-lassen, 'Bibliotheksliste' auf *USRLIBL ( lies mal die Hilfe dazu).

    Wenn du jetzt beim ODBC Zugriff mit dem obigen User anmeldest, hat dein Zugriff die LIBL aus der JOBD. Du musst den CALL dann noch ohne Pfad angeben, damit die LIBL greift. Genauso evtl. SELECT's etc.; alles ohne LIB angeben.

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Hier hast du den kleinen Nachteil, dass du immer 2 Ebenen ändern musst, wenn sich an der Anwendung was ändert.
    Allerdings gibts auch den Vorteil, dass du je User eine andere LIBL definieren kannst.

    Namenskonventionen *SYS sind eigentlich von Nachteil, da man bei unqualifizierten SQL's nie weiß, in welcher Tabelle man landet.
    Qualifizierungen müssen dann mit "/" statt "." erfolgen.

    Um es mit Dieters Worten zu sagen:
    Sicher ist nur *SQL und explizite Steuerung durch die Clientanwendung.
    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. Programm auf anderer AS400 starten
    By codierknecht in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 04-07-06, 11:52
  2. Programm mit Subsystem starten
    By Muchi in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 24-06-05, 07:32
  3. Programm im anderen Subsystem starten
    By Pepi in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-04-05, 10:43
  4. Antworten: 7
    Letzter Beitrag: 23-07-04, 07:29

Berechtigungen

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