Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263

    [VB .NET] Cancellare il file di Access zzzxxx.laccdb

    Dovendo lavorare intensivamente con Access (2007) mi capita a volte di generare un errore che mi lascia aperto il DB. In questo caso, Access lascia aperto il File .laccdb e non c'è modo di chiuderlo se non riavviando il PC. Oltre che essere un fatto decisamente noioso, non è sicuramente accettabile che un utilizzatore debba riavviare un PC per qualcosa che non dipende da lui. Vorrei quindi, se possibile, scrivere qualche riga che lo cancelli. Ho provato in questo modo, ma senza successo:

    codice:
                Dim LDB As String
    
                LDB = "C:\FileAccess.laccdb"
    
                    If File.Exists(LDB) Then
                        Kill(LDB)
                    End If
    Qualcuno conosce un trucco per cancellare questo file?
    Aggiungo che, non riuscendo neppure a cancellarlo trascinandolo nel "cestino", sarebbe già molto utile se si potesse trovare il sistema senza dover riavviare il PC.
    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,549
    io farei una procedura try..catch dove generalmente ti da errore
    e nel catch la procedura di chiusura connessione e altre cose connesse al DB.
    per il file temporaneo viene gestito in automatico da lui, quindi se gestisci la connessione va tutto da se


    al massimo potresti gestire tu i permessi scrittura al volo sul file e cancellarlo (cosa mai fatta e sconsigliata),
    ma riavviare il PC non va bene
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  3. #3
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Il codice che ho inserito è appunto dentro una Sub Try.... Catch ma l'errore viene segnalato da Access, non da VB .NET e a quel punto posso solo chiudere la segnalazione d'errore. Però il file .laccdb rimane aperto. Credo che il File .laccdb sia gestito direttamente da Access e che VB non abbia nessuna influenza su questo evento.
    Non credo sia questa la soluzione.

  4. #4
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,549
    si, ma al catch chiudi la connessione?
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  5. #5
    Utente di HTML.it L'avatar di Rickycast
    Registrato dal
    Apr 2007
    residenza
    CHIERI (TO)
    Messaggi
    263
    Il problema si presenta quando tento di aprire un file .pdf già aperto, quindi la procedura non arriva fino in fondo, ma si ferma all'errore segnalato da Access. La procedura quindi non arriva alla disconnessione e dopo la chiusura del messaggio di errore il sistema è già bloccato.

  6. #6
    Utente di HTML.it L'avatar di Kahm
    Registrato dal
    Dec 2004
    residenza
    Rome
    Messaggi
    3,549
    non avendo il codice sotto mano
    sembra un po difficile suggerirti

    cmq prova a chiudere tutti i PDF già aperti
    che poi con i file temporanei di access ha poco a che fare e non so cosa fa di preciso lui con questo
    NN vi diro mai chi sono in realta,
    tutti i miei 3D sono orfani, non insistete per farmi rispondere ai 3D aperti da me

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    Quote Originariamente inviata da Rickycast Visualizza il messaggio
    Dovendo lavorare intensivamente con Access (2007) mi capita a volte di generare un errore che mi lascia aperto il DB.
    Non hai pubblicato codice per esaminare la questione, ad ogni modo io farei uso del costrutto Try...Finally, oppure Using, per garantire che la connessione al database venga chiusa qualunque cosa succeda.

    Oltre al fatto che il file di lock rimane nella cartella, si potrebbe anche verificare una perdita di dati quando il file di database (come qualsiasi altro file) non viene chiuso correttamente, e non mi riferisco solo ai dati che sono stati scritti più recentemente.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Quote Originariamente inviata da Rickycast Visualizza il messaggio
    Dovendo lavorare intensivamente con Access (2007) mi capita a volte di generare un errore che mi lascia aperto il DB.
    Gli errori vanno gestiti, quindi devi obbligatoriamente inserire gli opportuni gestori degli errori in ogni routine.


    Quote Originariamente inviata da Rickycast Visualizza il messaggio
    Qualcuno conosce un trucco per cancellare questo file?
    Non puoi, in nessun modo.
    Quindi la soluzione è quella indicata nel punto precedente.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.