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.NET Discussion :

Bloquer un programme tant qu'un champs n'est pas a 1


Sujet :

VB.NET

  1. #1
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut Bloquer un programme tant qu'un champs n'est pas a 1
    Bonjour,

    Je souhaite faire un programme qui parcours une table d'une base de donnée et en particulier un champs, ce champs est par défault à 0 et tant qu'il n'est pas passé à 1 je souhaite attendre et bam dès qu'il passe à 1 je continue le programme. Mon problème est de savoir comment "guetter" l'arrivée du 1 dans ce champs. Avez vous une idée ?
    Pourquoi faire simple quand on peut faire .......... compliqué

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Que penses-tu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    laValeurDuChamp = RequêteQuiRécupèreLaValeur()
     
    While not laValeurDuChamp = 1
       laValeurDuChamp = RequêteQuiRécupèreLaValeur()
    End While
    ?
    Kropernic

  3. #3
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    sa me parait interressant ^^ mais très, cependant comment faire pour passer à la ligne suivante. Par exemple on tattend que le champs de la première ligne passe à 1 ...............hop il passe du coup on va à la 2ème ligne puis on attend que le champs de la 2ème ligne passe à 1 ........................hop il passe et ainsi de suite. Il faudrait une sorte d'indice !
    Pourquoi faire simple quand on peut faire .......... compliqué

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Ah ok, tu checkes ce champs sur plusieurs lignes. J'avais pas compris ça.

    Bien en fait, ce n'est pas vraiment plus compliqué.

    Tu fais une requête du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select distinct leChamp from maTable
    Après, y a plus qu'à compter le nombre de lignes récupérées. Si c'est >1, tu boucles. Si c'est =1, tu vérifies que la valeur n'est pas 0.
    Kropernic

  5. #5
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Visiblement, il y a un problème de conception : une base de données sert à stocker des ... données; pas à communiquer des infos de changement d'état entre programme (ce que je soupçonne que tu essaye de faire).

    Exprime la totalité du besoin fonctionnel, on verra peut être plus clair.

    EDIT : après avoir lu les messages postés supra (ce que je n'avais pas fait) je réitére mon analyse : gros problème de conception.
    Visiblement, tu veux utiliser la DB pour quelque chose qui n'est pas du tout son rôle.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  6. #6
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    Bon je vous explique tout,

    Côté SQL
    En faite j'ai fait une procédure PL/SQL qui parcours une table (Table X) chaque fois qu'elle arrive sur une ligne elle fait un traitement puis elle passe un champs de la ligne à 1.

    Côté Vb.NET
    En parallèle de ma procédure j'ai un programme vb qui lance la procédure (il n'est pas conçu que pour sa c'est seulement une option) et regarde le champs qui est censé passer à 1, quand il passe à 1 il incrémente une variable et ainsi de suite jusqu'à la fin du parcours de la table.

    Je pense avoir été à peu près clair, j'ai beaucoup simplifier l'application mais l'idée principale est là.

    Merci pour votre aide.

    Ps: je ne joins pas le code sa serais superflux et sa vous embrouillerai plus qu'autre chose

    Edit : s'il y a un problème de conception comment faire autrement je souhaite juste savoir ou en est mon traitement
    Pourquoi faire simple quand on peut faire .......... compliqué

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Tu confirmes donc ce que je disais. (mauvaise conception).

    On va supposer que tes traitements sont assez longs et que tu as réellement besoin du monitoring coté client de la progression du traitement dans la base (mais ce serait pas mal de préciser pourquoi ?).

    Je ne connais pas assez Oracle pour savoir ce qu'il y a de dispo dessus, mais je sais comment je ferais en SQL Server pour ce cas. Dans la proc stoc, je posterai à chaque élement traité un message dans une SSSBQ, et du coté client, j'écouterai la SSSBQ. Maintenant, voir les mécanismes Oracle équivalent.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  8. #8
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Pour ma culture... Qu'est-ce qu'une SSSBQ (ou SSBQ ?). Quand je fais une recherche dans google, je ne tombe que sur d'autres de tes messages où tu utilises cet acronyme mais jamais sur une explication ^^
    Kropernic

  9. #9
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    Sa me parait bien compliqué pour seulement voire un état d'avancement du traitement
    Pourquoi faire simple quand on peut faire .......... compliqué

  10. #10
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 242
    Points
    4 242
    Par défaut
    Ta procédure en pl/sql, elle parcours les records selon un ordre précis ?

    Si oui, tu peux aussi faire qqch du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * from maTable where leChamp = 0 order by ...
    Ta première ligne sera celle qui est en cours de traitement par ta procédure si ce que tu mets dans la clause order by trie tes records de la même manière que ta procédure.
    Kropernic

  11. #11
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par griftou Voir le message
    Pour ma culture... Qu'est-ce qu'une SSSBQ (ou SSBQ ?). Quand je fais une recherche dans google, je ne tombe que sur d'autres de tes messages où tu utilises cet acronyme mais jamais sur une explication ^^
    Sql Server Service Broker Queue.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  12. #12
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par jlm22 Voir le message
    Sa me parait bien compliqué pour seulement voire un état d'avancement du traitement
    On peut à l'inverse s'interroger sur la pertinence de voir l'avancement d'un traitement effectué dans le DBMS.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  13. #13
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    J'ai pensé à sa parce que je savais pas comment faire autrement, tout le monde n'a pas la chance d'être un expert, je fait avec ce que j'ai et jusque la sa a toujours fonctionner. C'est de la bidouille je te l'accorde mais sa sert a rien de m'enfoncer
    Merci griftou je vais regarder sa
    Pourquoi faire simple quand on peut faire .......... compliqué

  14. #14
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par jlm22 Voir le message
    J'ai pensé à sa parce que je savais pas comment faire autrement, tout le monde n'a pas la chance d'être un expert, je fait avec ce que j'ai et jusque la sa a toujours fonctionner. C'est de la bidouille je te l'accorde mais sa sert a rien de m'enfoncer
    Merci griftou je vais regarder sa

    Je ne te parles pas de ton choix technique mais de la necessité de monitorer la progression d'un traitement ayant lieu sur la DB. Cela ne me semble pas répondre à une necessité fonctionnelle. La technique n'a rien à voir la dedans.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  15. #15
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    Quand je lance la procédure via Vb j'aimerais savoir où sa en est via une progressbar, je me vois pas attendre devant l'appli et me dire " C'est bientot fini ?!" . D'où pour moi la "nécessité" de récupérer l'avancement de la procédure. Je ne pense pas être le premier dans ce cas là (enfin ptete que si qui sait ).

    Merci de ton interêt pour mon soucis.
    Pourquoi faire simple quand on peut faire .......... compliqué

  16. #16
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par jlm22 Voir le message
    Quand je lance la procédure via Vb j'aimerais savoir où sa en est via une progressbar, je me vois pas attendre devant l'appli et me dire " C'est bientot fini ?!" . D'où pour moi la "nécessité" de récupérer l'avancement de la procédure. Je ne pense pas être le premier dans ce cas là (enfin ptete que si qui sait ).
    A vrai dire, où le traitement est vraiment long (plus de 1mn, disons) et dans ce cas, a priori, tu n'as pas besoin de synchronisme, ou il est court et synchrone, et un simple message d'attente suffit.

    Sinon, plutot que balayer la table, tu écrit une table temporaire avec juste une ligne et un champ integer que tu incrémente dans ta proc stoc, et à interval régulier tu interroges cette tables. Mieux, deux champs, le premier avec le nombre total de lignes à traiter que ta PS renseigne au début, et le champ incrémenté. Ainsi le programme client connait le % d'avancement quel que soit le moment d'interrogation de la table.

    Ceci dit, je pense que tu vas avoir dans tous les cas des problèmes d'isolation transactionnelle.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  17. #17
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    J'avais pensé à un autre truc (je garde ce que tu m'as dit sous le coude ) en faite on garde le principe du champs dans la table parcouru, chaque fois qu'une ligne est traité hop le champs passe à 1, en parallèle une fonction VB compte le nombre de ligne de la table et fait la différence avec le count de ligne qui ont le champs à 1 et ainsi tu alliment petit à petit la progress bar.
    c'est possible ?
    Pourquoi faire simple quand on peut faire .......... compliqué

  18. #18
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    Je crois que je vais opter pour ta seconde idée qui me parait être la plus simple à mettre en oeuvre, je l'implemente et je te dit si c'est fonctionnel
    Pourquoi faire simple quand on peut faire .......... compliqué

  19. #19
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par jlm22 Voir le message
    J'avais pensé à un autre truc (je garde ce que tu m'as dit sous le coude ) en faite on garde le principe du champs dans la table parcouru, chaque fois qu'une ligne est traité hop le champs passe à 1, en parallèle une fonction VB compte le nombre de ligne de la table et fait la différence avec le count de ligne qui ont le champs à 1 et ainsi tu alliment petit à petit la progress bar.
    c'est possible ?
    Je maintiens que tu vas avoir des problèmes d'isolation transactionnelle.

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  20. #20
    Membre habitué Avatar de jlm22
    Homme Profil pro
    Etudiant
    Inscrit en
    Décembre 2010
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 203
    Points : 148
    Points
    148
    Par défaut
    isolation transactionelle ?
    Pourquoi faire simple quand on peut faire .......... compliqué

Discussions similaires

  1. [Débutant] Pause du programme tant qu'un résultat n'est pas bon
    Par manuscle dans le forum VB.NET
    Réponses: 3
    Dernier message: 25/04/2015, 14h15
  2. Réponses: 5
    Dernier message: 21/07/2012, 08h30
  3. Programmer encore en VB 6 c'est pas bien ? Pourquoi ?
    Par Nektanebos dans le forum Débats sur le développement - Le Best Of
    Réponses: 85
    Dernier message: 10/03/2009, 14h43
  4. Réponses: 2
    Dernier message: 01/11/2006, 22h36
  5. Blocage tant qu'une fenêtre n'est pas fermé
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/09/2006, 07h40

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