Déconnection complète SQLITE

oeil - 23 janv. 2018 à 09:34
Whismeril
Messages postés
17338
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
- 24 janv. 2018 à 10:57
Bonjour,
Je des difficultés à faire exécuter :

sub ....()
............
connSqlite.close()
System.IO.File.Move(old_Chemin_de_mon_fichier_sqlite, new_Chemin_de_mon_fichier_sqlite)
.....................
end sub

car VB NET 2017 me dit que la connexion avec ma BD SQLITE n'est pas complètement fermée "Le processus ne peut accéder au fichier car il est utilisé par un autre processus"

Merci de l'aide


NB : Mon module de connexion:
Module ModuleSQLite
Public Database As String = FichierFSL
Public connSqlite As New SQLiteConnection
Public strSQL As String = ""
Public cmd = New SQLiteCommand()
Public reader As SQLiteDataReader

Public Sub OpenDataBase()
Try
connSqlite.ConnectionString = "Data Source=" & Database
connSqlite.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub
End Module

4 réponses

jpmaton
Messages postés
61
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
27 avril 2022
1
24 janv. 2018 à 10:42
EUREKA !

J'ai trouvé une solution :

              
connSqlite.Close()
GC.Collect()
GC.WaitForPendingFinalizers()
System.IO.File.Move(old_Chemin_de_mon_fichier_sqlite, new_Chemin_de_mon_fichier_sqlite)


Pour explications précices :
https://stackoverflow.com/questions/8511901/system-data-sqlite-close-not-releasing-database-file

Bonne journée à tous,

Jean-paul
1
Whismeril
Messages postés
17338
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
24 janv. 2018 à 10:57
Bonjour,
C’est bien de donner la solution, tu peux marquer le sujet résolu aussi.

Et si la prochaine, tu fais l’effort de préciser le langage dans la coloration syntaxique ce sera super, je sais j’insite mais du noir sur fond gris, c’est aussi ilissible que rien du tout...
Regarde le bout de code que j’ai posté, les commentaires sont en vert, les parenthèses et les points en rose (bon c’est pas forcément heureux, mais au moins ça ressort), les string en rouge, etc et il y a les numeros de ligne.
Je te remets le lien vers la procédure
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Il faut lire le A noter:...
0
Whismeril
Messages postés
17338
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
23 janv. 2018 à 13:07
Bonjour
je ne connais pas sqlite, mais là https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection(v=vs.110).aspx
Je vois que c'est une classe disposable, donc tu peux essayer de disposer.

sub ....() 
   '............ 
   connSqlite.close() 
   connSqlite.Dispose()
   System.IO.File.Move(old_Chemin_de_mon_fichier_sqlite, new_Chemin_de_mon_fichier_sqlite) 
   '..................... 
end sub 



Pour tes prochains messages, merci d'utiliser la coloration syntaxique en précisant le langage, c'est plus motivant à lire pour les bénévoles que nous sommes. Voir la procédure
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
jpmaton
Messages postés
61
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
27 avril 2022
1
23 janv. 2018 à 16:14
Bonsoir,

Étant dans un forum VB NET, le langage me paraissant aller de soi.
J'ai aussi essayé
dispose()
qui ne marche pas.
Merci

Jean-paul
0
Whismeril
Messages postés
17338
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
23 janv. 2018 à 18:39
le langage me paraissant aller de soi.

pour moi oui, mais pour ce que tu écris la preuve que non
  • sans langage
    dispose()
  • avec langage
    dispose()


C'est pourtant bien décrit dans la procédure.
ne marche pas.
qui veut dire:
  • ça ne change rien à ton problème?
  • maintenant ça plante à cette ligne?

0