IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET & ACCESS] Erreur "impossible d'ouvrir plus de tables"


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [VB.NET & ACCESS] Erreur "impossible d'ouvrir plus de tables"
    Bonjour,


    Je suis en train de faire un programme qui doit lire des fichiers textes lignes par lignes et enregistrer chacune d'elle dans une base de données
    En gros il y a 12 000 lignes par fichiers text et 6 fichiers texts

    mon script ouvre chaque fichier
    lit ligne par ligne, recupere les données de chaque ligne dans les variables
    puis appelle une fonction qui enregistre la ligne dans 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
     
     
     Public mdBDD As OdbcConnection
     
    Public Sub BDD_GrabarUMDbrut(ByVal mois As Integer, ByVal codigoCEDI As Integer, ByVal flujo As String, ByVal almacenes As Integer, ByVal sublinea As Integer, ByVal umd As Integer)
            Dim maCommande As Odbc.OdbcCommand = mdBDD.CreateCommand
            Dim rqt As String
            rqt = "Select umd from UMDbrut where Mes=" & mois & " and CodigoCEDI=" & codigoCEDI & " and Flujo='" & flujo & "' and Almacenes=" & almacenes & " and Sublinea=" & sublinea & ";"
            maCommande.CommandText = rqt
            Dim monLecteur As OdbcDataReader = maCommande.ExecuteReader
     
            If monLecteur.HasRows() = 0 Then
                rqt = "INSERT INTO UMDbrut(Mes,CodigoCEDI,Flujo,Almacenes,Sublinea,Umd) VALUES(" & mois & "," & codigoCEDI & ",'" & flujo & "'," & almacenes & "," & sublinea & "," & umd & ");"
            Else
                monLecteur.Read()
                umd = umd + monLecteur.GetInt64(0)
                rqt = "UPDATE UMDbrut set umd=" & umd & " where Mes=" & mois & " and CodigoCEDI= " & codigoCEDI & " and Flujo='" & flujo & "' and Almacenes=" & almacenes & " and Sublinea=" & sublinea & ";"
            End If
            monLecteur.Close()
     
            maCommande.CommandText = rqt
            maCommande.ExecuteNonQuery()
     
        End Sub
    Cette procedure est donc appelé a peu pres 60 000 fois pendant une autre procedure

    mais avant elle marchait tres bien, et maintenant elle me fait une erreur :
    "impossible d'ouvrir plus de tables"

    je pensais que ca venait d'un probleme du genre chaque requete a la bse restait ouverte mais la variable macommande est a priori reinitialisé a chaque acces a cette procedure...

    d'ou vient le probleme s'il vous plait ???

  2. #2
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    je m'auto repond pour relever un peu le sujet mais aussi pour donner plus d'information

    le message d'erreur est :
    System.Data.Odbc.OdbcException: ERROR [HY001] [Microsoft][Pilote ODBC Microsoft Access] Impossible d'ouvrir plus de tables.

    a priori ca n'a pas vraiment de rapport avec le code car l'erreur arrive n'importe quand au bout d'un moment apres un bon nombre de requetes sur n'importe quel requete ... c'est completement aleatoire ...


    d'ou ca peut venir ?
    un probleme de configuration quelquepart ?

    ou comme je le disais avant : il faut refermer a chaque fois la connection a la base de donnée ?


    en fait je me connecte a la base de donnée au moment du load du formulaire principal du programme par un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mdBDD = New OdbcConnection(Connexion)
    mdBDD.Open()
    et je ferme la connection au moment de la fermeture du programme :
    Il faudrait alors que j'ouvre et ferme la connection a chaque requete ? ca fait bcp d'ouverture/fermeture de connection non ?

    sinon il y a peut etre un moyen sur chaque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim maCommande As Odbc.OdbcCommand = mdBDD.CreateCommand
    Dim rqt As String
    rqt ="blablabla"
    maCommande.ExecuteNonQuery()
    de fermer le "maCommande"

    donc voila je suis perdu

    merci pour votre aide !!!

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    troisieme post mais c'est parceque c'est plus ou moins resolu :


    j'ai mis une variable compteurRQT qui compte toutes les requetes a partir du lancement du programme

    j ai remarqué qu'en general c'est a partir de la 850eme que le programme plantait

    donc j'ai mis ca a coté des requetes qui s'utilise dans des grandes boucles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    If CompteurRQT > 800 Then
    FermerBDD()
    InitialiserBDD()
    CompteurRQT = 0
    End If
    avec ca, ca marche parfaitement

    mais bon c'est un peu moche, donc je laisse le sujet ouvert si qqun a qqchose de mieux

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Points : 441
    Points
    441
    Par défaut
    Salut,

    La solution est à cette adresse : http://support.microsoft.com/kb/116034/fr


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur: Impossible d'ouvrir plus de tables
    Par yonpo dans le forum VB.NET
    Réponses: 5
    Dernier message: 26/06/2010, 10h50
  2. Erreur Acces : Impossible d'ouvrir plus de tables
    Par Furlisht dans le forum VB.NET
    Réponses: 2
    Dernier message: 28/04/2010, 09h21
  3. [VBA-A] erreur impossible d'ouvrir plus de table
    Par the_senti dans le forum VBA Access
    Réponses: 4
    Dernier message: 19/07/2007, 10h30
  4. [ODBC] Erreur : Impossible d'ouvrir plus de tables
    Par maraly dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/03/2007, 17h13
  5. Réponses: 5
    Dernier message: 27/06/2006, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo