TEST ADODB CONNECTION

di il
7 risposte

TEST ADODB CONNECTION

Salve a tutti
in un mio gestionale leggo i dati da un db ACCESS in questo modo:

stringa = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
stringa = stringa & miadirectory & "\MIODB.mdb"
cn = New ADODB.Connection
rs = New ADODB.Recordset
'If cn.State = ConnectionState.Open Then MsgBox("APERTA")
cn.Open(stringa)
Dim dacercare As String
dacercare = "PV"
'If rs.State = ConnectionState.Open Then MsgBox("APERTA")
rs.Open("SELECT * FROM GARE_T WHERE IDEN like '" & dacercare & "'", cn, 3, 3)
Dim esistenti As Integer = rs.RecordCount
Me.TextBox11.Text = esistenti + 1
rs.Close()
cn.Close()
cn = Nothing
rs = Nothing

e funziona abbastanza bene, l'unico inconveniente che vorrei evitare è che se il db per qualsiasi motivo fosse aperto in modifica manuale o dalla connessione del programma non mi andasse in errore con conseguente blocco del programma.
Ho provato con:
If cn.State = ConnectionState.Open Then MsgBox("CONNESSIONE APERTA")
ma non funziona....
come posso fare a far si che in quel caso il programma mi dica che la connesione e' "OCCUPATA"..??
qualcuno potrebbe aiutarmi..??
Grazie infinite..!!

7 Risposte

  • Re: TEST ADODB CONNECTION

    Non mi è chiaro quale sia esattamente il tuo problema, ma innanzitutto credo che tu debba riconsiderare le classi che stai utilizzando per accedere al database e sostituire le vecchie OLE DB con le classi di ADO.NET (vedi la documentazione relativa per approfondimenti).

    Lì troverai anche esempi su come usare correttamente le classi per aprire connessioni, eseguire comandi e rilasciare le risorse quando necessario.

    Ciao!
  • Re: TEST ADODB CONNECTION

    Intanto grazie per la risposta..!!
    Hai ragione ma non posso riscrivere tutto da capo mi risulterebbe complicato, magari nel prossimo programmino userò ADO.net....
    non c'è un modo senza cambiare le OLE db..??
    GRazie ancora..!!
  • Re: TEST ADODB CONNECTION

    visualrate ha scritto:


    non c'è un modo senza cambiare le OLE db..??
    Ma il problema specifico che si presenta qual è?
    Nel tuo codice vai a creare e ad aprire la connessione, quindi come è possibile che questa sia già aperta se viene creata in quel contesto?
  • Re: TEST ADODB CONNECTION

    MI spiego meglio.....
    il DB ACCESS e' accessibile da più postazioni essendo in rete, alle volte capita che se ci sta lavorando una postazione l'altra tenta di connettersi ma trovando la connessione occupata/aperta va chiaramente in errore....
    io vorrei che in quel caso il programma mi avverta che la connessione e' "OCCUPATA".....
    Spero di essermi spiegato meglio.....
  • Re: TEST ADODB CONNECTION

    Premetto che non ho mai utilizzato Access ma mi sembra che possa gestire fino a 10 utenti concorrenti senza problemi , prova a vedere se questo può aiutarti https://docs.microsoft.com/it-it/office/troubleshoot/access/determine-who-is-logged-on-to-database
  • Re: TEST ADODB CONNECTION

    Di quale errore parli e in quale linea avviene? Cerca di essere preciso.

    Questo codice sa tanto di vb6...
  • Re: TEST ADODB CONNECTION

    Infatti il codice lo usavo iv VB6 essendo quello che sapevo utilizzare....
    comunque come soluzione al problema ho pensato di gestire eventuali errori con
    Try
    ----------------CODICE
    Catch
    -----------MESSAGGIO EVENTUALE ERRORE
    end Try

    in maniere tale che il programma segnalerà eventuali errori ma non si bloccherà.....
    che dite è la strada giusta..??
Devi accedere o registrarti per scrivere nel forum
7 risposte