ADODB Antwort der Datenbank bekommen

  • Hi Leute!

    Kann mir da wer helfen, ich find sonst nix dazu. Ich mach ne SQL Query mittels ADODB Verbindung und schicke einen Insert Into Befehl:

    [autoit]


    $adCN = ObjCreate("ADODB.Connection")
    $adCN.Open("DRIVER={SQL Server};SERVER=(local)\test;DATABASE=test")
    $adCN.Execute("insert into A Values (12,'bla')")
    $adCN.close

    [/autoit]

    Kann man auch eine Antwort von der Datenbank (bei mir SQL Server 2008) bekommen. Sowas in der Art wie "ausgeführt" oder "Fehler mit Datentyp datetime..." oder sowas damit man auswerten kann ob es auch geklappt hat?

    Danke für eure Hilfe!

    pipo

  • Probier es mal so

    [autoit]


    $adCN = ObjCreate("ADODB.Connection")
    $adCN.Open("DRIVER={SQL Server};SERVER=(local)\test;DATABASE=test")
    $quer = $adCN.Execute("insert into A Values (12,'bla')")
    If Not $quer.EOF Then
    MsgBox(0,"Erfolg", "Erfolgreich")
    Else
    MsgBox(0,"Fehler", "Fehler")
    EndIf
    $adCN.close

    [/autoit]

    ansonsten mal mit nem Error Handler probieren:

    [autoit]

    Global $oError
    ; Initializes COM handler
    $oError = ObjEvent("AutoIt.Error", "ErrHandler")

    [/autoit][autoit][/autoit][autoit]

    Func ErrHandler()
    $HexNumber=Hex($oError.number,8)
    Msgbox(0, StringReplace( $oError.windescription, "error", "COM Error #") & $oError.Number, _
    $oError.Description & @CRLF & _
    "Source: " & @TAB & $oError.source & @CRLF & _
    "at Line #: " & $oError.ScriptLine & @TAB & _
    "Last DllError: " & @TAB & $oError.lastdllerror & @CRLF & _
    "Help File: " & @TAB & $oError.helpfile & @TAB & "Context: " & @TAB & $oError.helpcontext _
    )
    SetError(1) ; to check for after this function returns
    ;Exit
    Endfunc

    [/autoit]
  • Danke.

    Aber ich muss mich präziser ausdrücken:

    Wenn ich einen Insert into Befehl an die Datenbank schicke gibt es 3 Möglichkeiten:

    1. Ich hab mich vertippt, z.B. ich hab die Tabelle falsch geschrieben. Dann bekomme ich in Autoit einen Fehler und mein Script stoppt
    2. Ich habe alles richtig gemacht und eine Zeile wird in die Tabelle hinzugefügt
    3. Es gibt ein Problem mit dem Insert into, zum Beispiel weil es den Primary Key schon gibt den ich hinzufügen will oder weil ich ein Datum im falschen Format angegeben habe oder oder... Dann gibt es nach Autoit keine Fehlermeldung oder Nachricht, aber es wird keine neue Zeile in die Tabelle geschrieben.

    Und genau das will ich abfangen, bzw. wissen. Also eine Rückmeldung der Datenbank a la "Insert into erfolgreich" oder "Insert into nicht erfolgreich".

    Könnte es sowas für ADODB Verbindungen geben? Gibt es irgendwo ne Übersicht mit allen ADODB Befehlen? Ich hab mir bisher alles diesbezüglich nur irgendwo zusammenkopiert...