[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    @Sven
    Wie heißts so schön: wer lesen kann ist klar im Vorteil !
    Wahrscheinlich sollte man die Fehler in 10-facher Schriftgröße mit dick Rot markeiren. Also mehr als auf die doppelte {-Klammer hinzuweisen geht wirklich nicht.
    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

  2. #2
    Registriert seit
    Jun 2004
    Beiträge
    13
    In der Eile habe ich übersehen, dass es mehrere Seiten zu diesem Thema gibt
    und dadurch auch den Beitrag von Sven nicht gelesen.
    Ich probiere es sofort aus.

    rst

  3. #3
    Registriert seit
    Jun 2004
    Beiträge
    13
    Danke Sven für den Tipp.

    Dein Antworttext.
    Zwei geschweifte Klammern rufen immer den Remote-Command Server, weile der CommandText dann von IBMDA400 als Command interpretiert wird und nicht als SQL-String !!!.

    Ich habe es mit einer geschweiften Klammer probiert.
    Es ist richtig das dann der Database Server Job QZDASOINIT angesprochen wird,
    aber wie Du schon schreibst "von IBMDA400 als Command interpretiert wird und nicht als SQL-String !!!." er wird als SQL interpretiert und bringt mir somit einen SQL Fehler.

    Der Zweite Tipp war Super...

    Mit dem ODBC Treiber kann mann das Problem Lösen.
    folgender Link gibt noch nützliche Hinweise (Listing3):
    http://www-106.ibm.com/developerworks/db2/library/techarticle/dm-0402chong2/index.html#listing2


    Beispiel Programm:
    ODBC-Treiber in Verbindung mit den ADO-Objektklassen.

    Sub Artikel_anlegen()

    Dim Sachn$, strSQL1$
    Dim Merk1 As Boolean
    Sachn = "'1234-0235'"

    Const IP = "192.1.1.xxx"
    'Const cnnstr400 = "DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=" & IP & ";DBQ=LIB1,LIB2,LIB3,LIB4"

    Dim cnn400 As ADODB.Connection
    Dim cmd400 As ADODB.Command
    Dim rst400 As ADODB.Recordset

    Merk1 = True

    On Error Resume Next

    'Open Connection
    Set cnn400 = New ADODB.Connection
    cnn400.ConnectionString = "DRIVER={Client Access ODBC Driver (32-bit)};SYSTEM=" & IP & ";DBQ=Lib1,LIB2,LIB3,LIB4"
    cnn400.Provider = "MSDASQL"
    cnn400.CursorLocation = adUseClient
    cnn400.Open , "user", "pwd"

    strSQL1 = _
    "SELECT TSACHN " & _
    "FROM LIB1.Artikelstamm " & _
    "WHERE (Artikel =" & Sachn & ") "

    'Set the command text
    Set cmd400 = New ADODB.Command
    Set cmd400.ActiveConnection = cnn400
    With cmd400
    strSQL1 = _
    "SELECT Artikel " & _
    "FROM LIB1.Artikelstamm " & _
    "WHERE (Artikel =" & Sachn & ") "
    .CommandTimeout = 100
    .CommandText = strSQL1
    .CommandType = adCmdText
    .Execute
    End With

    'Open the recordset
    Set rst400 = New ADODB.Recordset
    Set rst400.ActiveConnection = cnn400
    rst400.Open cmd400
    'Prüfen ob Artikelnummer im Teilestamm vorhanden ist.
    While Not rst400.EOF
    MsgBox "Sachnummer ist im Artikelstamm vorhanden."
    Merk1 = False
    rst400.MoveNext
    Wend

    If Merk1 = True Then
    strSQL1 = _
    "INSERT INTO LIB1.Artikelstamm (Artikel) VALUES(" & Sachn & ")"
    With cmd400
    .CommandText = strSQL1
    .CommandType = adCmdText
    .Execute
    End With
    End If
    'close the connection
    cnn400.Close
    Set cmd400 = Nothing
    Set rst400 = Nothing
    Set cnn400 = Nothing
    End Sub

    Dieses Programm läuft unter VB6.

    Der Database Server Job QZDASOINIT hat somit die gewünschten Bibliotheken
    im Zugriff..

    Bibliotheksliste anzeigen

    System: MeineAS400

    Job: QZDASOINIT Benutzer: QUSER Nummer: 165496



    Auswahl eingeben und Eingabetaste drücken.

    5=Objekte in Bibliothek anzeigen



    Aus-

    wahl Bibliothek Art Text

    QSYS SYS Systembibliothek

    QSYS2 SYS Systembibliothek für einh. Anwendungsunterstützung

    QHLPSYS SYS

    QUSRSYS SYS

    QIWS PRD

    LIB1 USR

    LIB2 USR

    LIB3 USR

    LIB4 USR

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Der IBMDA400 hat noch ein paar weitere Nachteile:

    Journalisierung wird NICHT unterstützt (warum auch immer) und, was ich in der Verbindungsfolge IMMER einstelle (inzwischen Default): COMPRESSION=1 um die Datenkomprimierung einzuschalten (von IBMDA400 nicht unterstützt).

    Bei LAN's gibt es nämlich keine Einstellmöglichkeit (wäre schön) sondern nur bei WAN's. Das Abrufen der Daten erfolgt tatsächlich schneller.
    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. Zugriff mit MSAccess auf AS400 via OLE-DB
    By matjesfilet in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 03-11-05, 16:02
  2. SQL-Befehl "DELETE" macht Probleme
    By Neptun in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-07-05, 12:54
  3. Bibliotheks-Angabe bei OLE DB Verbindung mit IBMDA400
    By Neptun in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 21-07-05, 11:39
  4. Hartcodierter OLE DB Zugriff auf AS/400-Datenbank
    By tschroeder in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-05-05, 09:21
  5. EASYCOM OLEDB
    By Suomi in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 02-03-05, 09:34

Berechtigungen

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