[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2005
    Beiträge
    47
    Hallo,

    ich habe eine Connection zu As400:

    privatestatic System.Data.OleDb.OleDbConnection conn;

    Hier ist aber die Rede von ADODB. Ist das einen Library, die ich extra einbinden muss?

    Grüße Oli

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Ob du OleDB, ADODB, ODBC oder die Nativ IBM.DB2 Klassen verwendest ist fürs erste mal egal. Arbeiten kannst du mit verschiedene.
    Damit du die OleDB-Klasse verwenden kannst, musst du die "Microsoft ActiveX Data Objects ... Library" hinzufügen (COM).
    Wichtig ist nur, dass du den korrekten Connection-String angiebst.
    AS/400 (IBM iSeries) Connection String Samples - ConnectionStrings.com

    OleDB ist aber meiner Meinung nach nicht die beste Wahl. Ich verwende die ODBC-Klasse.

  3. #3
    Registriert seit
    Feb 2005
    Beiträge
    47
    Dann sollte das so funktionieren:

    conn.Execute(
    "CALL QCMDEXC ('" + command + "', " + command.Length + ", 'IGC'" + ")", out recAff, 0);

    ??

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    command.length musst du allerdings als Zahl mit 10 Vorkomma und 5 Nachkomma formatieren.
    In VB geht das mit

    Format(command.length, "0000000000.00000")

    Der 3. Parameter ist nicht erforderlich und nur für DBCS (IGC) gültig.
    Enthält dein Command Hochkomma, dann sind diese vorher zu verdoppeln.
    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
    Feb 2005
    Beiträge
    47
    Hi,

    hab den 3.Paramter rausgeschmissen.
    Jetzt funktioniert es.

    Allerdings auch mit command.Length ohne Formatierung...

    Oder ist das nur Zufall und es kann irgendwann zu Problemen führen?

    Grüße Oli

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Müsste eigentlich Zufall sein da der 2. Parameter ja dec(15, 5) sein muss.
    Je nach Release wird aber ein Call auf QCMDEXC speziell erkannt.
    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
    Feb 2005
    Beiträge
    47
    Hi,

    wenn ich die Länge des Commands aber mit "0000000000.00000" formatiere und das Command ist länger, führt das dann nicht zu Problemen?

    Oder was ist mit dieser Länge sonst gemeint?

    Grüße Oli

  8. #8
    Registriert seit
    Feb 2005
    Beiträge
    47
    Hi,

    conn.Execute(
    "CALL QCMDEXC ('" + command + "', '" + String.Format("{0:000000000000000.00000}",command.Length) + "')", out recAff, 0);

    bringt jetzt folgende Fehlermeldung:

    CPF0006: Im Befehl ist ein Fehler aufgetreten.
    Ursache . . . . : Falls bei einem Teil des Befehls eine falsche Länge weitergegeben wurde, werden andere Nachrichten ausgegeben, weil der falsche Teil des Befehls analysiert wird. Fehlerbeseitigung: Die zuvor im Jobprotokoll aufgelisteten Nachrichten überprüfen. Die Fehler korrigieren und anschließend den Befehl wiederholen.

    Woran kann das liegen? Die Formatierung sollte doch ok sein, oder?

    Grüße Oli

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Lass dir mal den kompletten String als Text anzeigen, was da wirklich übergeben wird.
    "CALL QCMDEXC ('" + command + "', '" + String.Format("{0:000000000000000.00000}",command.Length) + "')"

  10. #10
    Registriert seit
    Nov 2003
    Beiträge
    2.403
    Die Längenangabe muß insgesamt genau 15 Stellen lang sein, 10 Stellen vor und 5 Stellen nach dem Komma. Und sie muß in gepackter Form übergeben werden. Siehe Beschreibung.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Das mit dem gepackt kannst du getrost vergessen, das erledigt SQL für dich automatisch.
    Allerdings hast du ein paar zu viele Nullen: 10 vor dem Punkt, 5 nach dem Punkt.

    Ach ja und wichtig:
    Die Längenangabe selber wird nicht in Hochkomma gepackt !!!
    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

Berechtigungen

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