Bonjour,
J'ai un problème dans un programme que je suis en train de réaliser.
J'utilise Microsoft Jet 4.0 (dernière mise à jour) pour la base de donnée. Le problème est que je suis limité par les 2048 tableId possibles.
Ma base de donnée est composée de tables contenant jusqu'à une centaine de tuples, le problème est qu'une fois que l'on fait des reqûetes un peu plus compliqués, on parcourt trop de tuples et donc on atteint les 2048 tableID.
J'utilise ma base de donnée en mode connecté, c'est à dire que je l'ouvre en debut de programme et la ferme en fin de programme. Dans mon code j'utilise des DataReaders et je prend bien soin d'utiliser leur méthode "close" en fin de requête.
Ma question est la suivante, est ce que je suis obligé pour éviter cela d'ouvrir et de fermer ma connection a la base de donnée avant chaque requête pour être sûr de ne pas arriver à la limite du nombre de tableId, où y-a-t-il quelque chose dans mon code qui soit incorrect (voir en dessous)
voila une méthode typique d'accès a la base de donnée.
Merci de vos réponses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Public Sub getListeNationalite(ByRef Liste As List(Of clsNationalite)) Dim dr As OleDbDataReader Dim Sql As String Try com = New OleDbCommand() com.Connection = con Sql = "Select * From Nationalite ORDER BY Nationalite_Nom_Diminutif" com.CommandText = Sql dr = com.ExecuteReader() If (dr.HasRows) Then While (dr.Read) Dim uneNationalite As clsNationalite uneNationalite = New clsNationalite(dr.GetString(0), dr.GetString(1), dr.GetString(2)) Liste.Add(uneNationalite) End While Else AffError("Aucune nationalite trouvé!") End If dr.Dispose() com.Dispose() Catch ex As Exception AffErrorBD("Erreur getlistelieux!", ex) End Try End Sub
Partager