Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [VB6] Gestione errori connessione database mysql

    Come posso ricavare l'errore rilasciato in fase di connessione ad un db mysql in modo tale da poter gestire tale errore?

    Per collegarmi uso questa sintassi:

    codice:
    Set conn = New adodb.Connection
    
    xserver = "localhost"
    xdatabase = "mydb"
    xuser = "a"
    xpass = "b"
    
    
    connStr = "DRIVER={MySQL ODBC 3.51 Driver};" _
    & "SERVER=" & xserver & ";" _
    & "DATABASE=" & xdatabase & ";" _
    & "UID=" & xuser & ";" _
    & "PWD=" & xpass & ";" _
    & "OPTION=18475"
    
    conn.ConnectionString = connStr
    
    conn.Open
    Grazie
    Quando si è innamorati, si comincia sempre con l'ingannare se stessi e si finisce sempre con l'ingannare gli altri. Questo è ciò che il mondo chiama una "storia d'amore" (O. Wilde)

  2. #2
    Prova così:

    codice:
    Sub Form1_Load()
     Set conn = New adodb.Connection
    
     xserver = "localhost"
     xdatabase = "mydb"
     xuser = "a"
     xpass = "b"
    
    
     connStr = "DRIVER={MySQL ODBC 3.51 Driver};" _
             & "SERVER=" & xserver & ";" _
             & "DATABASE=" & xdatabase & ";" _
             & "UID=" & xuser & ";" _
             & "PWD=" & xpass & ";" _
             & "OPTION=18475"
    
     conn.ConnectionString = connStr
    
     On Error GoTo Errore
     conn.Open
     Exit Sub
    
    Errore:
      MsgBox("Errore: " & Err.Number & " " & Err.Description)
    End Sub

  3. #3
    grazie...ora ho un altro problema...vorrei monitorare continuamente lo stato del server mysql ovvero se questo è raggiungibile o meno..come posso fare?
    Quando si è innamorati, si comincia sempre con l'ingannare se stessi e si finisce sempre con l'ingannare gli altri. Questo è ciò che il mondo chiama una "storia d'amore" (O. Wilde)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E a cosa serve una cosa del genere?

    Tutti i programmi che usano database che ho realizzato (e che ho visto realizzare) affrontano gli errori derivanti da operazioni su db nel momento in cui si verificano. Nessuno controlla lo stato del server continuamente, soprattutto perche' niente ti puo' assicurare che, nel momento in cui controlli, vada tutto bene e un millisecondo dopo il server non sia giu' ...

  5. #5
    mi serve solo ed esclusivamente per aver sotto controllo lo stato del server, per sapere quando questo è up oppure no.
    Quando si è innamorati, si comincia sempre con l'ingannare se stessi e si finisce sempre con l'ingannare gli altri. Questo è ciò che il mondo chiama una "storia d'amore" (O. Wilde)

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ripeto ... se stai scrivendo un programma come un "Operation Manager" posso capire la necessita'. Questo potrebbe tentare la seguente serie di operazioni (a tempo)

    1) effettuare un ping sull'indirizzo del server per capire se e' raggiungibile

    2) aprire una connessione (per capire se il servizio risponde)

    3) effettuare una query, controllare i risultati e chiudere la connessione (per confermare che il motore sia efficiente)

    e non fare altro.

    Ma se stai scrivendo un programma che deve semplicemente utilizzare il dbms per gestire dati, effettuare le operazioni suddette non solo è inutile ma anche fonte di inefficienze.

  7. #7
    sto sviluppando un programma di sincronizzazione tra un db locale ed un db mysql remoto quindi devo sapere se il db remoto è up oppure no.
    A differenza di quanto specificato nel topic, sto programmando in .net utilizzando il connector di mysql per collegarmi al database e a quel che ho visto se il dbms è fermo l'applicazione non gestisce l'errore ovvero mi genera un'eccezione con i seguenti dettagli
    codice:
    System.Net.Sockets.SocketException: Socket non connesso e indirizzo non fornito durante l'invio su un socket di datagramma che utilizza una chiamata sendto. Richiesta di invio o ricezione di dati annullata
       at System.Net.Sockets.Socket.Shutdown(SocketShutdown how)
       at MySql.Data.Common.SocketStream.Read(Byte[] buffer, Int32 offset, Int32 count)
       at System.IO.BufferedStream.ReadByte()
       at MySql.Data.MySqlClient.PacketReader.ReadHeader()
       at MySql.Data.MySqlClient.PacketReader.OpenPacket()
       at MySql.Data.MySqlClient.NativeDriver.Open()
    non so come aggirare questo problema...
    Quando si è innamorati, si comincia sempre con l'ingannare se stessi e si finisce sempre con l'ingannare gli altri. Questo è ciò che il mondo chiama una "storia d'amore" (O. Wilde)

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Allora

    1) dovresti postare un nuovo messaggio indicando l'uso di .NET (VB ? C# ?) perche', in caso contrario, ti si danno indicazioni per il VB6 ...

    2) dovresti indicare subito qual e' il problema (l'exception non intercettata) e non il metodo per fare un qualcosa che si puo' rivelare poco utile (e ti ho detto prima il perche' ...)

    3) dovresti mostrare il "contesto" del problema, il codice usato per la connessione, ecc ...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.