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

Bases de données Delphi Discussion :

Interrompre une connexion ?


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut Interrompre une connexion ?
    bonjour à tous

    existe-t-il un moyen pour interrompre une connexion à une base ou l'activation d'un jeu de données, avec les composants BDE, ADO et dbExpress ?

    j'ai pour l'instant essayé de travailler en multi-thread. dans ces conditions, j'arrive bien à suspendre le thread qui tente d'effectuer la connexion (et qui contient donc un TDatabase, TADOConnection, TSQLConnection ou DataSets en tous genres). je parviens également à le faire repartir.

    une fois suspendu, je peux aussi le libérer (du moins l'appel à Free fonctionne). le problème est qu'une fois le thread ainsi suspendu et libéré, je ne peux plus effectuer de connexions à la base : a la connexion suivante, c'est le calme plat. comme si l'application bloquait toujours sur la connexion précédente...

    donc y a-t-il un moyen plus propre et plus efficace d'interrompre une connexion ? est-ce que je suis sur la bonne voie en voulant utiliser les thread ?

    toute aide est la bienvenue

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    pas d'idée ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Bonjour
    J'utilise les propriétés "Connected" et "KeepConnection" de l'objet TADOConnection

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    tu peux préciser ?

    (j'ai peur de m'etre mal fait comprendre : ce qui m'intéresse, c'est d'interrompre une connexion en cours de création. à ce moment là je ne suis donc pas encore connecté -> je ne peux pas envisager une "déconnexion" au sens propre du terme. ce que je veux bloquer c'est le processus même de connexion )

    (en fait, je ne veux pas me déconnecter, mais plutot ne pas me connecter )

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    Salut
    Pourquoi interrompre une connexion en cours de création ? Autant ne pas la créer ? Il y a une raison qui m'échappe et qui m'interesse car j'utilise pas mal de connexion de ce type...
    Merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    je suis en train de développer une petite application pour mesurer des vitesses de connexion, et surtout des vitesses d'ouverture de jeux de données ou d'exécution de requêtes.

    dans certaines conditions, un test peut prendre un temps beaucoup trop long (par exemple, une requête compliquée sur une grosse table) -> j'aimerais pouvoir passer au test suivant, en interrompant la tentative de connexion en cours.

    un peu comme le chargement d'une page web : si ça traine trop, on peut interrompre le chargement et passer à autre chose.

    il me faut donc un moyen de bloquer ces tentatives d'accès aux données
    (connexion à une base, ouverture d'un jeu de données ou exécution de requête)

    merci de t'intéresser à mon problème

  7. #7
    Rédacteur
    Avatar de Giovanny Temgoua
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2003
    Messages
    3 830
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 3 830
    Points : 4 006
    Points
    4 006
    Par défaut
    Avec les composants ADO, en construisant la chaîne de connexion; tu peux spécifier le timeout, c'est à dire le temps après lequel la demande de connexion sera considérée comme un échec.

    Par ailleurs, tu pourra essayer de créer un thread de connexion pour tes différentes bases. (je crois bien qu'un timeout de 0 signifie une tentative "infinie").

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 42
    Points : 19
    Points
    19
    Par défaut
    tout d'abord merci pour ta réponse

    le timeout est en effet une solution, mais :
    - ça concerne seulement les composants ADO (corrigez moi si je me trompe) et mon objectif est en partie de comparer les temps d'accès en BDE, ADO et dbExpress
    - ça ne semble pas marcher avec tous les providers ADO (en fait je n'ai pas réussi a l'utiliser, il refuse de l'intégrer a la chaine de connexion lorsque j'entre la valeur dans l'expert IDE -> quelqu'un connait le mot clé à entrer dans la chaine ?)
    - utiliser le timeout me permettrait de limiter la casse quand une connexion est trop lente (c'est toujours bon a prendre), mais l'utilisateur ne pourrait pas décider lui même d'interrompre une connexion
    - c'est valable seulement pour la connexion a la base non ? pas pour l'activation d'un dataset ? :

    merci

Discussions similaires

  1. Création d'une connexion en ligne de commande
    Par Drahu dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 10/05/2004, 15h19
  2. Réccupération du mot de passe d'une connexion
    Par zinaif dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/12/2002, 18h32
  3. [Réseau] Créer une connexion Internet
    Par Tranber dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/10/2002, 17h01
  4. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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