SQL Fehlermeldung in MySQL.au3

  • Hallo,

    ich habe einen MySQL-Server den ich per ODBC Treiber an AutoIT anbinde. Am Ende möchte ich gerne mit AutoIT ein Frontend basteln. Das Problem was ich im Moment habe ist folgendes:

    Wenn nun in der MySQL.au3 ein Fehler festgestellt wird, stürzt das ganze Ding sofort ab. Hier nochmal ein Auszug aus dem Quellcode


    #include "MySQL.au3"

    $susername = "root"
    $inputpw = InputBox("Passwort", "Bitte Passwort eingeben")
    $spassword = $inputpw
    $sdatabase = "dcot"
    $sserver = "localhost"
    $sDriver = "{MySQL ODBC 5.1 Driver}"

    $sqlinstance = _mysqlconnect($susername, $spassword, $sdatabase, $sserver, $sDriver) ; Connect to SQL-Server


    Wenn ich nun ein falsches Passwort eingebe kracht das ganz einfach nur ab. Wie kann ich dort eine Fehlerabfrage erstellen, sodass ich eine msgbox generieren kann und den Absturz verhindere. Die Funktion _mysqlconnect liefert (laut doku) bei einem Fehler @error=1 aber ich kann damit nicht wirklich viel anfagen.

    Ich wäre über euere Hilfe sehr dankbar

    • Offizieller Beitrag

    Versuchs mal so (mit Limitierung auf 3-mal falsche PW-Eingabe):

    [autoit]

    #include "MySQL.au3"

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

    $susername = "root"
    $sdatabase = "dcot"
    $sserver = "localhost"
    $sDriver = "{MySQL ODBC 5.1 Driver}"
    $count = 0

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

    Do
    $count += 1
    $spassword = InputBox("Passwort", "Bitte Passwort eingeben")
    $sqlinstance = _mysqlconnect($susername, $spassword, $sdatabase, $sserver, $sDriver) ; Connect to SQL-Server
    Until Not @error Or $count = 3

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

    If $count = 3 Then
    MsgBox(0, 'Fehler', 'Das Paßwort wurde 3-mal falsch eingegeben.' & @LF & 'Das Programm wird beendet.')
    Exit
    EndIf

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

    ; der weitere Programmcode

    [/autoit]