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

Macros et VBA Excel Discussion :

Erreur d'execution '3146' - ODBC


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut Erreur d'execution '3146' - ODBC
    Bonjour,

    J'exécute via un code vba une requete sql.
    Le programme marche sans pb quand il n'est répété qu'un certain nombre de fois, au delà j'obtiens une erreur "Erreur d'execution '3146': ODBC -- l'appel a échoué".
    J'ai essayé un application.ODBCTimeout = 0 (100 ou meme 100000) sans succes.
    Quelqu'un pourrait m'aider?
    Merci.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Tu peux exécuter ton programme environ combien de fois avant que ça ne plante?

    Donne-nous un maximum de détails qu'on puisse te répondre assez rapidement.

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut
    J'ai fait une fonction qui execute la requete et je peux appeler appeler cette fonction environ 1000 fois avant qu'elle ne bugge et me renvoit ds le debugger. une fois que j'y suis en faisant F5, elle ne s'execute qu'environ 200 fois avant de rebugger de nouveau.

    Voici une ebauche du code de la fonction.

    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 function XXX(...) as double
     
    Dim rs As Recordset
    Dim requete As String
    Dim WrkODBCOracle As Workspace
    Dim OracleConnection   As Connection
    Dim dataqdef             As QueryDef
     
    Set WrkODBCOracle = CreateWorkspace("ODBCWorkspace", "", "", dbUseODBC)
    Set OracleConnection = WrkODBCOracle.OpenConnection ("OracleConnection",...
    requete = "..."
    Set dataqdef = OracleConnection.CreateQueryDef("Data", requete)
    Set rs = dataqdef.OpenRecordset(dbOpenDynaset)
     
    If Not rs.EOF Then
        rs.MoveLast
        nb = rs.RecordCount
        rs.MoveFirst
        result = rs.GetRows(nb)
    Else
            Exit Function
       End If
    ....
    ....
    Voila.
    Merci d'avance pour votre aide

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Je ne m'y connais pas en manipulation de BDD Oracle depuis VBA, mais à mon avis à en juger ton code s'il y a 2 points communs entre Oracle et le MySQL que je manipule en PHP, c'est l'ouverture/fermeture de la connection à la BDD et l'envoi de requête/exploitation du résultat.

    Ceci m'amène à effectuer plusieurs constats:
    -ta façon de faire appel à ta BDD est très improductive: tu ouvres sans arrêt la connection, alors qu'une seule fois en dehors de ta fonction suffirait.
    -je ne vois aucun script de fermeture de la connexion, et j'espère que ce n'est pas cela qui porte préjudice à ton application, via une quelconque saturation de mémoire.

    Bref, j'aimerais savoir si ta connexion se termine correctement avec la fermeture de ta fonction, ou si au contraire tu dois utiliser un script de fermeture quelconque.

Discussions similaires

  1. [AC-2003] Erreur d'exécution 3146, ODBC -- l'appel a échoué
    Par flet le kid dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 23/06/2017, 16h34
  2. [AC-2010] Erreur d'exécution 3146 ODBC l'appel a échoué
    Par dadamovic dans le forum Access
    Réponses: 1
    Dernier message: 19/03/2014, 11h00
  3. [AC-2007] [VBA-ADO] Erreur 3146 - ODBC -- l'appel a echoué
    Par vince_lille dans le forum VBA Access
    Réponses: 10
    Dernier message: 19/10/2009, 15h03
  4. [wxWindows] Erreur de link pour ODBC
    Par ovh dans le forum wxWidgets
    Réponses: 3
    Dernier message: 28/01/2004, 15h38
  5. [javamail] erreur d'execution
    Par bibx dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 05/12/2003, 11h04

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