Déconnection complète SQLITE

oeil - 23 janv. 2018 à 09:34
Whismeril Messages postés 19064 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 juin 2024 - 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 67 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 26 septembre 2023 3
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 19064 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 juin 2024 657
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 19064 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 juin 2024 657
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 67 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 26 septembre 2023 3
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 19064 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 20 juin 2024 657
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
Rejoignez-nous