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]Connexions multiples pour un même processus.


Sujet :

Windows Forms

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut [VB.NET]Connexions multiples pour un même processus.
    Bonjour,

    Je souhaiterais savoir s'il est possible d'établir plusieurs connexions simultanément vers une même base de données à partir d'un même processus. L'intérêt est de pouvoir faire deux transactions en parallèle (sur des tables différentes biensur).

    J'utilise MySQL pour la base de données et ma classe de connexion est ODBCConnection.

    Merci d'avance ...

  2. #2
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut Re: [VB.NET]Connexions multiples pour un même processus.
    Citation Envoyé par leSeb
    à partir d'un même processus.
    c'est à dire :

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Mon application gère plusieurs transaction parallèlement.
    Par exemple :

    J'établis une connexion 1
    Je commence un transaction 1

    J'établis une connexion 2
    Je commence une transaction 2

    J'execute des requetes 1
    J'execute des requetes 2
    J'execute des requetes 1
    ...

    Je valide la transaction 2
    Je ferme la connexion 1

    J'excute des requetes 1

    J'annule la transaction 1
    Je ferme la connexion 1

  4. #4
    Débutant Avatar de amazircool
    Inscrit en
    Décembre 2005
    Messages
    497
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 497
    Points : 152
    Points
    152
    Par défaut transactions
    si je tromp pas,
    c'est Votre SGBD (my sql) qui gere les transactions non pas le longauge,

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Tout à fait ....

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Personne ne peut me répondre à ce sujet ?????

  7. #7
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    les transactions peuvent être gérées dans le code aussi.
    comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    dim transact as OleDb.OleDbTransaction
    try
     
    MyConnection.Open()
    transact = MyConnection.BeginTransaction
    'traitement des requêtes SQL
    transact.Commit()
    catch
    transact.Rollback()
    end try
    enfin c'est ce que je fais moi pour le traitement de mes requêtes SQL dans le code

  8. #8
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    rien ne t'empeche d'avoir une connection ouverte pour 2 actions differentes sur ta base de donne a partir du moment ou ces actions sed font sur la meme source de db.

    mais vaut mieux ouvrir et fermer cette meme transaction. plutot que de la laisser ouverte tout le temps.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    les transactions peuvent être gérées dans le code aussi.
    Ca je sais JauB. Même si je préfere que ce soit MySQL qui gère ma transaction (requete START TRANSACTION.


    Ce n'est pas ma question de départ .... Je souhaiterais savoir si je peux gérer deux connexions (à la même base de données) parallèlement (un peu comme si deux programmes attaquaient ma base de données) dans le même programme.

    Ma question est en fait de savoir si les deux connexions restent bien distinctes ou si ADO.NET les regoupe (puisqu'elles appartiennent au même processus et ont la même chaine de connexion) ?

    Merci de votre aide

  10. #10
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    et bien si ta connection string est exactement la meme oui il les gere comme la meme (pool). en tout cas vrai pour sql server

    maitenant si tu veux vraiment qu'elle soit distingues par ta db et bien il te suffit de differencier tes connection string meme en ajoutant un blank dans l'une par rapport a l'autre.

    ce sujet avait ete aborde d'une autre maniere il n'y a pas longtemps mais je sais plus ou .

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    OK, merci ...

    Ca ne m'arrange pas mais il va falloir que je fasse avec.

  12. #12
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    mais desoler d'insister pour koi tiens tu absolument a avoir 2 connection differentes qui se creeaient a la meme source de db???

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    mais desoler d'insister pour koi tiens tu absolument a avoir 2 connection differentes qui se creeaient a la meme source de db???
    Et bien tout simplement parce que je ne peux pas combiner en MySQL des LOCK TABLES et des START TRANSACTION sur une même connexion.

    Le problème de START TRANSACTION est qu'il ne verrouille une table que lorsque l'on modifie son contenu. Par contre le ROLLBACK permet l'annulation des modifications apportées si besoin .... Je suis donc coincé car je ne peux verrouiller durant cette transaction une autre table (n'intervenant pas dans la transaction) dont le contenu ne doit surtout pas être modifié par quelqu'un d'autres.

    C'est pourquoi j'ai pensé à utiliser deux connexions, une qui verrouille la table en question et l'autre qui effectue la transaction.

  14. #14
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    ok maitenant je comprend mieux par contre je te propose ceci je ne sais pas si cela existe pour mysql mais je sais que cela existe pour sqlserver puisque je m'en sert:

    dans tes strored procedure tu peux tres bien utilise:

    select * with lock

    verifie le keyword pour mysql WITH c'est le keyword utilise pour sqlserver.

    tu as with : lock, nolock ....

  15. #15
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Cela ne resoult pas le problème car LOCK effectue un COMMIT sur la transaction courante ...

    Merci tout de même

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Points : 291
    Points
    291
    Par défaut
    Bonne nouvelle (du moins pour moi .......)

    On peut réaliser ce que j'ai expliqué plus haut. Avoir deux connexions en parallèles pour un même programme (avec la même chaine de connexion).

    A priori, les deux connexions sont bien distinctes. Je pense que le pool n'intervient que pour la création d'une nouvelle connexion (appel du constructeur) et pour des connexions détruites .....

    Qu'en pensez-vous ?

  17. #17
    Membre éclairé Avatar de zeavan
    Architect
    Inscrit en
    Avril 2003
    Messages
    590
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Autre

    Informations professionnelles :
    Activité : Architect

    Informations forums :
    Inscription : Avril 2003
    Messages : 590
    Points : 774
    Points
    774
    Par défaut
    le pool intervient uniquement si la connection string est la meme au blank pret.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/02/2009, 15h37
  2. Formules multiples pour une même cellule
    Par nenkira dans le forum Excel
    Réponses: 2
    Dernier message: 05/04/2007, 13h29
  3. Réponses: 2
    Dernier message: 13/10/2006, 23h35
  4. Formulaires multiples pour la même table
    Par antoine46 dans le forum Access
    Réponses: 18
    Dernier message: 28/07/2006, 19h15
  5. [MySQL] submit multiples pour le même formulaire
    Par The Wretched dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/12/2005, 16h36

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