[NEWSboard IBMi Forum]
  1. #1
    hs is offline [professional_User]
    Registriert seit
    Jun 2001
    Beiträge
    364

    Post Kann ich über Visual Basic ein CL starten?

    Kann ich über Visual Basic mit Hilfe des Client Access ODBC - Treibers ein CL auf der AS400 absetzen?

    Wenn ja, mit Kontrolle, wann dieses beendet ist?

    Wenn nein, welche Möglichkit habe ich dann über VB?


    Danke
    Hs

  2. #2
    Registriert seit
    Apr 2002
    Beiträge
    792

    Post

    Hi, du kannst die Contols von CA/400 verwenden (CWBCTRL.OXC). Hier ein Beispielcode für die Verwendung des RemoteCommand-Objektes.

    Option Explicit

    Private Sub Form_Load()
    cwbRemoteCommandButton1.SystemName = "S44G1888"
    cwbRemoteCommandButton1.CommandString = "CALL SAWI/MESSAGE"
    End Sub

    Private Sub Command1_Click()
    Dim Result&
    cwbRemoteCommandButton1.DoClick
    Result = cwbRemoteCommandButton1.GetErrorMessageCount
    If Result = 0 Then Exit Sub
    'Sonst hier ErrHandle
    End Sub

    Damit kannst du auf jeden Fall ein CL oder was auch immer auf der AS/400 ausführen. Result ist erst 0 wenn der Job beendet ist. Der Job wird unter dem Benutzer QUSER gestartet.

    mfg

    Sascha

  3. #3
    Registriert seit
    Dec 2000
    Beiträge
    79

    Post

    Hallo,
    direkt über ODBC kannst du einen 'Procedure' Call verwenden:

    CALL QSYS/QCMDEXC ('CALL MYLIB/MYPGM PARM(XX)', X'000000002500000')

    Der zweite Parameter ist die hexadezimale Dartstellung eines Packed(15,5) und enthält die Länge des Kommandostrings.
    Die Ausführung blockt solange bis der CALL beendet ist. Exceptions aus dem aufgerufenen Programm werden als SQL-Fehler zurückgemeldet.

    Thomas

  4. #4
    hs is offline [professional_User]
    Registriert seit
    Jun 2001
    Beiträge
    364

    Post

    Hallo,

    erstmal Danke für eure Antworten.
    Ich hatte es zwischenzeitlich mit Hilfe des RMTCMD-Befehls gelöst:

    X = Shell("rmtcmd call meinelib/meincl 'P'", vbMaximizedFocus)

    Allerdings ist dies nicht sonderlich elegant, da erstens eine DOS-Box geöffnet wird und zweitens habe ich in VB keine Möglichkeit, das Ende des CL zu erkennen.

    Leider komme ich mit euren Beispielen nicht ganz klar:

    @JonnyRico: Ich habe Client Access 3.1.3 (kein Express!) installiert. Auf meinem Rechner gibt es keine CWBCTRL.OXC.

    @horschma
    Hast Du vieleicht einen Beispielcode, in dem dieser CALL verwendet wird?

    Vielen Dank
    HS

  5. #5
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    @Horschma

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
    CALL QSYS/QCMDEXC ('CALL MYLIB/MYPGM PARM(XX)', X'000000002500000')

    Der zweite Parameter ist die hexadezimale Dartstellung eines Packed(15,5)
    [/quote]

    fast, x'000000002500000F' ist richtig

    Regel:
    • die Anzahl der Stellen ist immer ungerade
    • das 2.Halbbyte des letzten Bytes enthält das Vorzeichen ( F = + )


    die Maschine stellt sich da unheimlich pingelig an

    Gruß
    Rolf

  6. #6
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    sorry ich hatte mich verschrieben. Die Datei heißt natürlich "CWBCTRL.OCX" und befindet sich in "C:\Programme\IBM\Client Access\Shared".

    mfg

    Sascha

Similar Threads

  1. AS400 Userliste in Visual Basic
    By Der_Unwissende in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 08-09-06, 10:10
  2. Problem beim Datenbankzugriff mit Visual Basic
    By schojo in forum NEWSboard Programmierung
    Antworten: 11
    Letzter Beitrag: 26-04-05, 14:53
  3. Zugriff OLE DB AS400/DB2 und Visual Basic
    By HPKahn in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-02-05, 09:23
  4. Mit Visual Basic alle Register eines Excel Files herausfinden
    By thoughtless in forum NEWSboard Windows
    Antworten: 0
    Letzter Beitrag: 10-06-04, 10:23
  5. Notes Mail-Client aus RPG oder CL öffnen / starten
    By karin-vogelmann in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 08-06-01, 19:22

Berechtigungen

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