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

VB 6 et antérieur Discussion :

Annulation d'une Connection Asynchrone DB


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut Annulation d'une Connection Asynchrone DB
    je ai une connection asynchrone a une db, seulement lorsque sa prend trop de temps j'aimerai annuler cette connection

    voila le code :

    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
    30
    31
    32
    33
     
    Private Function createConnection() As Boolean
        Dim cnn As ADODB.Connection
        On Error GoTo fail
        Set cnn = New ADODB.Connection
        cnn.ConnectionTimeout = TIMEOUT_CON '10 sec de time out
        Dim lngStartTime As Long
        lngStartTime = GetTickCount()
        cnn.Open m_chaineDeConnexion, , , adAsyncConnect
        '-----------'
        'Attente que la connexion soit établie
        Dim crt As Long
        While (cnn.State = adStateConnecting)
            DoEvents
            crt = GetTickCount() - lngStartTime
            If crt > TIMEOUT_CON * 1000 Then
                cnn.Close 'ou cnn.Cancel <=======================
            End If
        Wend
       '-----------'
        Set m_connection = cnn
        createConnection = True
        Exit Function
    fail:
        createConnection = False
      'Vérification des erreurs dans le cas d'une mauvaise connexion
      If cnn.Errors.Count > 0 Then
        'Affichage des erreurs
        MsgBox cnn.Errors.Item(0)
      Else
        MsgBox Err.Description
      End If
    End Function
    lorsque le time out se produit si je declance un cnn.close sa declanche l'erreur suivante : Vous ne pouvez pas faire cela sur une connection asynchrone

    lorsque je met un cnn.cancel, il reste bloquer sur la ligne pendant une 30aine de sec

    deplus le cnn.ConnectionTimeout = TIMEOUT_CON '10 sec de time out ne fonctionne absolument pas puisqu'il reste dans la boucle while 30 sec (time out par default !!) bref j'y comprend rien !

    if Anybody has a solution ...

    Apres d'autre test : si je fait un set Cnn = Nothing, meme comportement que cnn.cancel ... il s'arrete sur la ligne ... attend puis repart apres environ 30 sec

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    J'ai résolut le problème :

    ADODB gérent mal la connection vers une machine inexistante au ne répondant pas.

    Il suffit de "pingué la machine" pour voir si elle est accessible.

    et de ne pas exécuter le code de connexion dans ce cas.

    dans tous les autres cas sa passe.

    Dans le cas ou c'est utile à d'autre...

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

Discussions similaires

  1. [AJAX] Annuler une requête asynchrone server side
    Par Matthieu Bissat dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/01/2007, 20h42
  2. [Débutant] Tester une connection sur bdd
    Par lando dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/09/2003, 14h37
  3. Réponses: 5
    Dernier message: 04/04/2003, 15h02
  4. Envoyer un TPoint par une connection Socket ????
    Par jeldorak dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/11/2002, 19h41
  5. couper une connection avec un serveur corba
    Par pons dans le forum CORBA
    Réponses: 3
    Dernier message: 31/05/2002, 10h11

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