kostenloser Webspace werbefrei: lima-city


Visual Basic-Unterdrückung Fehlermeldung

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    reith

    reith hat kostenlosen Webspace.

    Ich habe ein Visual Basic Programm geschrieben um automatisch, alle Stunden, Daten zu einer MySQL Datenbank zusenden. Wenn jetzt aus irgendeinen Grund (Internetverbindung unterbrochen,...) die Verbindung nicht klappt, erhalte ich folgende Meldung:

    ERROR[HY000][MySQL][ODBC 5.1 Driver]Unknown MySQL server host'.....
    ERROR[HY000][MySQL][ODBC 5.1 Driver]Unknown MySQL server host'.....

    solange ich die Meldung nicht mit OK bestätige werden keine weiteren Daten mehr gesendet.

    Dazu meine Frage: Kann man diesen Fehler unterdrücken bzw. ignorieren?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. burgi

    Co-Admin Kostenloser Webspace von burgi

    burgi hat kostenlosen Webspace.

    Du musst einfach nachschauen, in welchem Programmabschnitt das auftritt, und den Fehler entsprechend abfangen. Da wir den Befehl nicht kennen, bei dem das auftritt, kann man natürlich nicht sagen, wie das am besten sein soll. Möglicherweise gibt der Befehl einen Rückgabewert zurück, der auswertbar ist. Ansonsten musst du vermutlich die Exception abfangen.
  4. Hallo reith,

    soweit ich mich entsinnen kann, gibt der ODBC-Treiber genau dann eigene Fehlermeldungen aus, wenn er kein Handle zu einem Fenster hat, zu dem er im Fehlerfall Nachrichten versenden kann.
    Da Du aber mit VB arbeitest gehe ich davon aus, dass Du nicht direkt mit dem ODBC-Treiber arbeitest.
    Von daher wäre es nicht schlecht, wenn Du kurz den Code-Auszug zum Verbindungsaufbau posten würdest (natürlich mit verfremdeten Zugangsdaten), damit man sehen kann, welchen Objekte im Spiel sind.
  5. Autor dieses Themas

    reith

    reith hat kostenlosen Webspace.

    Ich bin leider noch ein "Brustschwimmer" in der Visual Basic Programmierung daher kann ich deine Antwort leider nicht verstehen. Das wäre mein Code zur Datenbankanbindung
    Private Sub Timer5_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer5.Tick
    
            Dim con As New Odbc.OdbcConnection
            Dim cmd As New Odbc.OdbcCommand
            Dim anzahl As Integer
    
            con.ConnectionString = "Provider=MSDASQL;" _
                & "Driver={MySQL ODBC 5.1 Driver};" _
                & "Server=xxx;UID=xx;password=xxx;" _
                & "database=wasser"
            cmd.Connection = con
            cmd.CommandText = "insert * from daten"
    
            Try
                con.Open()
                cmd.CommandText = _
                    "insert into daten" & _
                    "(Label4, Label5, Label6, Label7, TextBox1) " & _
                    "values ('" & _
                    Label4.Text & "', '" & _
                    Label5.Text & "', '" & _
                    Label6.Text & "', '" & _
                    Label7.Text & "', '" & _
                    TextBox1.Text & "')"
    
                anzahl = cmd.ExecuteNonQuery()
    
                If anzahl > 1 Then
                    MsgBox("Daten angefügt")
    
                End If
    
    
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    
            con.Close()
        End Sub


    Seht ihr einen offensichtlichen Blödsinn?
  6. Hallo reith,

    offensichtlicher Blödsinn ist da keiner drin. Aber Du kannst es ja mal mit folgendem Connection-String versuchen:
    con.ConnectionString = "Provider=MSDASQL;" _
                & "option=16;" _
                & "Driver={MySQL ODBC 5.1 Driver};" _
                & "Server=xxx;UID=xx;password=xxx;" _
                & "database=wasser"
    Die '16' ist der Wert für die Option 'FLAG_NO_PROMPT'.
    Das kannst Du auch hier nachlesen:
    http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-configuration-connection-parameters.html
    Ich hoffe mal, dass damit Ruhe ist.

    Edit: Ich habe doch Blödsinn gefunden. Die Zeile
    cmd.CommandText = "insert * from daten"
    ist falsches SQL und vollkommen überflüssig;-)

    Beitrag zuletzt geändert: 18.3.2012 21:59:21 von darkpandemic
  7. Autor dieses Themas

    reith

    reith hat kostenlosen Webspace.

    Danke für die Tipps, sie haben aber leider nicht geholfen. Ich habe jetzt versucht

    Catch ex As Exception
               ' MsgBox(ex.Message)


    die MsgBox(ex.Message) zu löschen. Das Programm steht zwar für ein paar Sekunden, aber es funtioniert. Ich fürchte, dass das nicht seher sauber ist, aber für meine Zwecke reicht es.

    Herzlichen Dank für die Denkanstösse!
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!