Salut salut.
Je m'arrache les cheveux depuis plusieurs jours sur un bug (non bloquant) à la con.
A l'ouverture d'un contrôle, je vérifie dans une base access que la table qui va être appelée pour faire un Select (et donc remplir la liste dans mon contrôle) existe bien.
Si elle n'existe pas, je la crée. Ensuite je charge la liste :
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Private Sub DoOnLoad() Try CCorrespondanceRIB.GetCorrespondanceRibTable(DossierBase.Connection, Nothing) LoadCorrespondanceRIBs() Catch ex As Exception Debug.WriteLine(ex.ToString()) MessageBox.Show("Erreur lors du chargement des correspondances : " + ex.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error) End Try End Sub Private Sub LoadCorrespondanceRIBs() GridCorrespondanceRIB1.SetCorrespondanceRIBs(DossierBase.CorrespondanceRIBs) End Sub
Et bien évidemment j'ai une exception qui me dit que la table n'existe pas...
J'ai essayé de faire le GetCorrespondanceRibTable plus tôt, mais rien n'y fait, le Load() se fait systématiquement en même temps je pige pas.
J'ai réussi à identifier que cela venait d'un accès concurrent car lorsque je débug, le temps de faire le pas à pas, je n'ai pas l'exception...
Existe-t-il un moyen de faire un lock quelconque que ce soit de la db ou du code ? Pour vraiment attendre que la table soit bien créée ?
Merci d'avance !
Partager