[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2010
    Beiträge
    29
    Dim MyCmd as new ADODB.Command
    MyCmd.Commandtext = "UPDATE TMT.AUH A SET A.TEF = '" & temp1 & "' WHERE A.NL = 11 and A.SN= '" & temp2 & "'"
    set MyCmd.ActiveConnection=MyCnn

    Man beachte die "?", die ergeben dann Parameter:

    dim xRecords as long

    For n = 2 To intCol
    temp1 = Cells(n, 4)
    temp2 = Cells(n, 5)
    MyCmd.Execute, xRecords, adExecuteNoRecords
    if xRecords>0 then
    ' Update erfolgreich
    endif
    next

    Ich habe die Variablen hier eingesetzt , so macht er leider kein Update. Der Groschen ist leider noch nicht gefallen.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    MyCmd.Commandtext = "UPDATE TMT.AUH A SET A.TEF = ? WHERE A.NL = 11 and A.SN= ?"

    Parameter werden bei AS/400-Kommandos automatisch der Parameters-Auflistung eines Command's hinzugefügt (man kann das auch selber).
    Der Zugriff erfolgt über:

    Langform:
    MyCmd.Parameters(n).Value = Wert

    Kurzform:
    MyCmd(n) = Wert

    Die "?" werden von 0 beginnend durchnummeriert.
    MyCmd(0) = 1. ?
    MyCmd(1) = 2. ?
    usw.

    Deine Variablen temp1 und temp2 werden nicht mehr benötigt, siehe mein Beispiel.
    Im Debugger kannst du dir die Inhalte dann auch ansehen.
    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
    Mar 2010
    Beiträge
    29
    AHA!!!
    Habe ich bisher nicht gewusst. Aber verstanden. Danke.

    Trotzdem Fehlermeldung:
    "Laufzeifehler: SQL0363: Wert für erweiteret Anzeigevariable für Wert 2 nicht gültig...nicht innerhalb des Bereichs.... muss zwischen 0 und 7 liegen???"

    Der meint doch Parameter 2 oder?
    und der ist doch (1)!???

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    "Anzeigevariable" werden auch als NULL-Anzeiger verstanden.
    Standarmäßig sind NULL-Werte für Parameter nicht erlaubt.

    Dein Problem sind die Zuweisungen an die Parameter.
    Der Wert muss genau dem Typ und der Länge des Zielfeldes entsprechen und ist daher ggf. zu konvertieren (CInt, CDbl, CStr, usw).

    Angenommen, dein SN in der Datei AUH ist numerisch, dann weise per

    MyCmd(1) = CLng(Cells(n, 5))

    zu.
    Ich nehme mal an, dass du ggf. leere Zellen hast. In diesem Fall musst du einen Default setzen oder die Excel-Zeile ignorieren.

    Analog kannst du alle VBA-Konvertierungen verwenden um das Zielformat anzupassen.

    Bei Zeichenvariablen musst du ggf. per Left(Cell(n, m), Lg) abschneiden.

    Übrigens kann man sich im Direktfenster die Parameter, Typ und Länge auch ansehen.
    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. Java JDBC Sperre
    By Xanas in forum NEWSboard Java
    Antworten: 11
    Letzter Beitrag: 29-11-10, 12:45
  2. Antworten: 1
    Letzter Beitrag: 24-04-06, 10:37
  3. csv-Datei von AS400 nach Excel
    By jogisarge in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 21-04-06, 13:00
  4. AS400 --> Excel Time-Feld als Text umgesetzt
    By rebe in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 11-08-05, 08:15
  5. Excel Übertragung -> AS400
    By Timo Henn in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 16-02-05, 08:06

Tags for this Thread

Berechtigungen

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