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

 Firebird Discussion :

aide pour les transactions


Sujet :

Firebird

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut aide pour les transactions
    bonjour,

    je débute avec Firebird et Delphi.

    j'ai un peu du mal à comprendre les transactions. Au niveau théorique je comprends bien à quoi cela sert. Et les aides que l'on peut trouver sur le net sont instructives.
    Mais au niveau pratique c'est autre chose !

    par exemple sur le site suivant:
    http://www.devrace.com/en/fibplus/articles/479.php
    on nous par de snapshot, de read commited

    Quel est le bon choix et en fonction de quelle paramètre ?

    Ce que je voudrais obtenir:

    - que quelqu'un ne puisse pas modifier un enregistrement qui est déja en modification par quelqu'un d'autre

    - que les modif soit visible dès quel ont été comités par un utilisateur

    j'ai fait des essais avec une base test (1 table + 1 transaction) avec 2 users et je ne comprends pas tout (beaucoup de deadlock en mode snashot, en mode read comitted pas de deadlock ?)

    si les pros de firebird pouvait m'éclairer ?


    merci

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    La snapshot n'est pas idéale pour travailler...
    Ca revient à prendre une photo de la base à l'instant de la création de votre transaction. Vous ne voyez aucunes des modifications faites par les autres même pas les modifications commités (commités apres le debut de votre transaction).

    La transaction read_committed est déjà plus souple, elle vous permet de voir les modifications commités par les autres transactions.

  3. #3
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    Citation Envoyé par looping Voir le message
    Ce que je voudrais obtenir:

    - que quelqu'un ne puisse pas modifier un enregistrement qui est déja en modification par quelqu'un d'autre

    - que les modif soit visible dès quel ont été comités par un utilisateur
    dans ce cas il faut utiliser ça :
    http://www.firebirdsql.org/refdocs/l...-withlock.html
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut mode pessimiste
    bonjour,

    en fait, en lisant une autre doc je me suis rendu compte que le mode pessimiste n'existe pas de manière naturelle sur du client /serveur, à l'inverse du mode fichier

    c'est donc normal que l'on puisse modifier un enregistrement alors qu'l est déja en cours de modif ailleurs..
    c'est ensuite aux transactions de gérer la chose !

    il faut que je sorte de mon BDE

    a+

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut transaction courte
    bonjour,

    j'ai lu quelpart que les transactions devaient etre refermé le plus vite possible

    Mais , j'ai des appli où les utilisateurs ouvrent le programme le matin et le referme le soir. Et quand je dit ouvert cela veut dire qu'il reste ouvert en visualisation sur une table.

    la transaction est bien active tout le temps dans ce cas ?

    A+

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 903
    Points : 6 027
    Points
    6 027
    Par défaut
    Citation Envoyé par looping Voir le message
    la transaction est bien active tout le temps dans ce cas ?
    Pas forcément, ça dépend de l'architecture de ton programme.
    "Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
    -----------------------
    Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
    Usus magister est optimus

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    839
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 839
    Points : 262
    Points
    262
    Par défaut transaction longue
    bonjour,

    l'ai lu qu'il est conseillé de faire régulièrement des commitretaining sur des transactions longue ? (affichage d'un dbgrid en permanence)

    Dans le meme ordre d'idée si la base est en lecture seule :
    Est ce que c'est bien de mettre en plus du mode
    read committed (isc_tpb_read_commited + isc_tpb_rec_version + isc_tpb_wait) un parametre pour la lecture seule ? mais c'est lequel ?
    isc_tpb_read ou isc_tpb_lock_write ?

    A+

Discussions similaires

  1. Aide pour les transactions SQL server
    Par Carmagamemnon dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 16/01/2009, 11h25
  2. Choisir Oracle ou Sql-Server pour les transactions ?
    Par Roronoa01 dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 06/11/2005, 22h41
  3. petite aide sur les transactions et triggers SVP
    Par CharleLéo dans le forum Débuter
    Réponses: 4
    Dernier message: 15/11/2004, 20h43
  4. Une petite aide pour les API ?
    Par Yop dans le forum Windows
    Réponses: 2
    Dernier message: 04/04/2002, 21h45

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