1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

[Débat] Les transactions et les modes d'isolation HFSQL de windev

Discussion dans 'Base de donnés & HFSQL' créé par suenodesign, Mar 27, 2018.

  1. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    509
    J'aime reçus:
    739
    [Débat] Les transactions et les modes d'isolation HFSQL de windev
    Je me permets d'ouvrir une discussion autour des transactions et les modes d'isolation HFSQL de windev.

    Un sujet que je n'arrive pas encore à bien comprendre, surtout quand est-ce qu'on doit choisir tel ou tel type de transaction et qu'est ce qu'on entend par CONTEXTE?

    Merci d'avance pour votre réactivité. :);)
     
    #1 suenodesign, Mar 27, 2018
    Dernière édition: Mar 27, 2018
    joker et aminej76 aiment ça.
  2. gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    708
    Ah le contexte ! La plus grande PLAIE de windev pour les débutants (et pour les confirmés aussi ...)

    Pour expliquer le contexte :
    Soit Fenetre A et Fenetre B qui affichent les données du fichier CLIENT (à l'aide des instructions HLITrecherche, Hfiltre, FichierVersEcran...)
    On lance la fenetre A et on lit le client N°10 (Le contexte client = 10)
    Depuis la fenetre A on lance la fenetre B qui affiche le client 33 (le contexte client = 3:relievedface:
    on revient sur la fenetre A (qui a le client 10 affiché) mais le conexte en mémoire est toujours celui de la fenetre B (Contexte 3:relievedface:
    on quitte la fenetre A en registrant à l'aide des la Hmodifie/Hajoute...
    Et la c'est le drame.... les données du client 10 se retrouve avec les données du client 33.....

    Je suis peut être pas trop clair...

    En tous cas, A EVITER : FichierversEcran
    et PREVILEGIER les requetes HSQLExecute... qui ont leur propre contexte et donc pas de meli melo....


    Quand aux transactions :

    windev/Pcsoft à tarder à proposer les transactions dans ses produits... Elles existent depuis toujours de la monde SQL...

    Les transactions sont le meilleur moyen d'assurer la cohérence d'un ensemble d'écritures sur des fichiers de données HFSQL.
    Elles assurent que tous est OK avant de finaliser l'opération
    Les opérations sur les transactions peuvent même être annulées (sur confortable)

    Par exemple, dans une application délicate de comptabilité, une opération comptable consiste en un débit pour un compte et un crédit pour un second compte. Il est nécessaire de gérer ces deux opérations dans une seule et même transaction afin d'éviter toute incohérence (en cas de rupture de courant en cours d'opération par exemple).
    La transaction ne sera effectuée que si les deux écritures sont corretement recues/enregistrées par le serveur
     
    joker, aminej76 et suenodesign aiment ça.
  3. suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    509
    J'aime reçus:
    739

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Ah le contexte ! La plus grande PLAIE de windev pour les débutants (et pour les confirmés aussi ...)

    Pour expliquer le contexte :
    Soit Fenetre A et Fenetre B qui affichent les données du fichier CLIENT (à l'aide des instructions HLITrecherche, Hfiltre, FichierVersEcran...)
    On lance la fenetre A et on lit le client N°10 (Le contexte client = 10)
    Depuis la fenetre A on lance la fenetre B qui affiche le client 33 (le contexte client = 3:relievedface:
    on revient sur la fenetre A (qui a le client 10 affiché) mais le conexte en mémoire est toujours celui de la fenetre B (Contexte 3:relievedface:
    on quitte la fenetre A en registrant à l'aide des la Hmodifie/Hajoute...
    Et la c'est le drame.... les données du client 10 se retrouve avec les données du client 33.....

    Je suis peut être pas trop clair...

    En tous cas, A EVITER : FichierversEcran
    et PREVILEGIER les requetes HSQLExecute... qui ont leur propre contexte et donc pas de meli melo....


    Quand aux transactions :

    windev/Pcsoft à tarder à proposer les transactions dans ses produits... Elles existent depuis toujours de la monde SQL...

    Les transactions sont le meilleur moyen d'assurer la cohérence d'un ensemble d'écritures sur des fichiers de données HFSQL.
    Elles assurent que tous est OK avant de finaliser l'opération
    Les opérations sur les transactions peuvent même être annulées (sur confortable)

    Par exemple, dans une application délicate de comptabilité, une opération comptable consiste en un débit pour un compte et un crédit pour un second compte. Il est nécessaire de gérer ces deux opérations dans une seule et même transaction afin d'éviter toute incohérence (en cas de rupture de courant en cours d'opération par exemple).
    La transaction ne sera effectuée que si les deux écritures sont corretement recues/enregistrées par le serveur
    Cliquez pour agrandir...

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Ah le contexte ! La plus grande PLAIE de windev pour les débutants (et pour les confirmés aussi ...)

    Pour expliquer le contexte :
    Soit Fenetre A et Fenetre B qui affichent les données du fichier CLIENT (à l'aide des instructions HLITrecherche, Hfiltre, FichierVersEcran...)
    On lance la fenetre A et on lit le client N°10 (Le contexte client = 10)
    Depuis la fenetre A on lance la fenetre B qui affiche le client 33 (le contexte client = 3:relievedface:
    on revient sur la fenetre A (qui a le client 10 affiché) mais le conexte en mémoire est toujours celui de la fenetre B (Contexte 3:relievedface:
    on quitte la fenetre A en registrant à l'aide des la Hmodifie/Hajoute...
    Et la c'est le drame.... les données du client 10 se retrouve avec les données du client 33.....

    Je suis peut être pas trop clair...

    En tous cas, A EVITER : FichierversEcran
    et PREVILEGIER les requetes HSQLExecute... qui ont leur propre contexte et donc pas de meli melo....


    Quand aux transactions :

    windev/Pcsoft à tarder à proposer les transactions dans ses produits... Elles existent depuis toujours de la monde SQL...

    Les transactions sont le meilleur moyen d'assurer la cohérence d'un ensemble d'écritures sur des fichiers de données HFSQL.
    Elles assurent que tous est OK avant de finaliser l'opération
    Les opérations sur les transactions peuvent même être annulées (sur confortable)

    Par exemple, dans une application délicate de comptabilité, une opération comptable consiste en un débit pour un compte et un crédit pour un second compte. Il est nécessaire de gérer ces deux opérations dans une seule et même transaction afin d'éviter toute incohérence (en cas de rupture de courant en cours d'opération par exemple).
    La transaction ne sera effectuée que si les deux écritures sont corretement recues/enregistrées par le serveur
    Cliquez pour agrandir...
    Il n'y a pas plus clair que ça cher @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    UN GRAND MERCI.

    Là tu me rassure.
     
    #3 suenodesign, Mar 27, 2018
    Dernière édition: Mar 27, 2018
    joker et aminej76 aiment ça.
  • FreudWD

    FreudWD Well-Known Member
    MEMBRE WX WXG 21

    Inscrit:
    Jan 22, 2018
    Messages:
    200
    J'aime reçus:
    373
    Bon, je vais aussi tenter une explication.

    Une transaction permet de valider toutes les modifications effectuées dans une base.
    Par exemple dans une gestion de stock, on supprime (ou décompte) un produit sur un stock,
    puis on l’ajoute à un autre stock, en validant la transaction les deux modifications sont effectuées simultanément.
    Alors que s’il arrive quelque chose entre les deux requêtes qui empêche l’exécution de la seconde,
    dans un traitement sans transaction, la quantité du premier stock devient faux.

    Le mode isolation permet d’autoriser les autres requêtes à lire les informations modifiées dans une transaction qui n’est pas encore validée.
    Par défaut, les modifications ne sont visibles qu’une fois la transaction validée.

    Le contexte est la position de l’enregistrement dans chaque table en utilisant les fonctions commençant par H.
    Si tu sais que tu devras consulter la même table avec les fonctions H,
    alors que tu veux garder la situation actuelle de cette table, il faut faire ceci :
    Code (Text):
    nEnrEnCours = HNumEnr(Table) ou nEnrEnCours = Table.hNumEnrEnCours
    Ouvre(Nouvelle_fenêtre) ou HLitRecherche(Table, ...)
    HLit(Table, nEnrEnCours)
     
    joker, suenodesign et aminej76 aiment ça.
  • gapplicat

    gapplicat Well-Known Member
    MEMBRE WX

    Inscrit:
    Mar 8, 2018
    Messages:
    399
    J'aime reçus:
    708
    Bien plus clair que mon explication... Bravo

    Pour les fichiers, au lieu de
    nEnrEnCours = HNumEnr(Table)
    on peux faire un NumPosition = HsauvePosition(NomduFichier)
    et à la place de HLit(Table, nEnrEnCours)
    on peux faire un HRetourPosition(NumPosition)
     
  • ProDev

    ProDev Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 11, 2018
    Messages:
    372
    J'aime reçus:
    373
    @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Les transactions et les modes d'isolation HFSQL de windev



    Bon Dev​
     
  • FreudWD

    FreudWD Well-Known Member
    MEMBRE WX WXG 21

    Inscrit:
    Jan 22, 2018
    Messages:
    200
    J'aime reçus:
    373

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Oui, j'avais oublié, j'utilise rarement cette façon de programmer,
    et si on en fait beaucoup, il ne faut pas oublier de les libérer avec : HLibèrePosition.
     
    joker, aminej76 et suenodesign aiment ça.
  • suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    509
    J'aime reçus:
    739
    Merci les gars. Je me rend compte que l'idée de lancer cette discussion et une très bonne chose.

    Vous éclairez ma lanterne.
     
    joker et aminej76 aiment ça.
  • elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    299
    J'aime reçus:
    150

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    [Débat] Les transactions et les modes d'isolation HFSQL de windev
    Je me permets d'ouvrir une discussion autour des transactions et les modes d'isolation HFSQL de windev.

    Un sujet que je n'arrive pas encore à bien comprendre, surtout quand est-ce qu'on doit choisir tel ou tel type de transaction et qu'est ce qu'on entend par CONTEXTE?

    Merci d'avance pour votre réactivité. :);)
    Cliquez pour agrandir...
    voir les video formation alphorm windev 21 HFSQL "les transacttion " c'est bien expliqué
     
    joker et suenodesign aiment ça.
  • suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    509
    J'aime reçus:
    739
    Merci @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Je vais voir.
     
    joker apprécie ceci.
  • elhacene

    elhacene Active Member
    MEMBRE WX

    Inscrit:
    Jan 14, 2018
    Messages:
    299
    J'aime reçus:
    150
    voila j'ai trouvé la video pour toi:D

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    et une 2ème video suite nommé FR_1154_03_04_XR25R.flv j'ai pas u le temp de te le mettre sur Mega j'ai une connexion adsl comme une tortu:( il faut la cherché sur le fdossier "windev 21 La gestion des bases de données HFSQL"
     
    joker et suenodesign aiment ça.
  • suenodesign

    suenodesign Well-Known Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    509
    J'aime reçus:
    739
    C'est très gentil merci. :D;)
     
    elhacene et joker aiment ça.
  • Partager cette page

    Chargement...