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.
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
Merci de vos réponses