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 :

Verrouiller un enregistrement lors d'un select


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut Verrouiller un enregistrement lors d'un select
    Bjr,

    Il y at'il un moyen avec D7 et interbase de marquer un enregistrement comme vérrouillé ou faut-il se faire ses propres routines.

    J'ai une bd accessible par plusieurs clients distant.

    Pour simplifier, le client A ouvre le dossier en X en "modification" (mais par un simple select.

    Si un client B veux ouvrir le même dossier un message doit le prévenir que le dossier est vérrouillé par un autre utilisateur et l'empêcher de modifier le dossier.

    J'ai beau parcourir la doc interbase, je ne trouve rien d'équivalent et les modes de transactions ne peuvent pas m'aider puisque mon client A ne fait qu'un simple SELECT ... pour ouvrir un dossier.

    Dans le cadre d'application multi-utilisateurs, comment gérer vous les accés multiples ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    Je ne connais pas interbase, mais dans les bases de données que j'utilise 'Informix et Oracle) il y a l'ordre SQL

    Select * from tt where t1=t2 for update;

    cette commande utilisé en mode transaction a pour effet de renvoyer le resultat et en même temps de locker le ou les enregistrements

    Pour liberer utiliser un commit ou un rollback

    Cordialement

  3. #3
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Merci, Je vais testé.

    Question subsiliaire :
    Pour interbase, comment forcer la suppression du lock en cas de problème ?

    Il ya t'il une commande SQL standard ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    FIn normal de Transaction = commit

    Fin anormal de transaction = Rollback

    Cela fonctionne avec toute base sql, donc normalement aussi en Interbase

    nb: Ne pas oublier de commencer une tranasction avant tout (soit par un ordre sql begin work) soit par un start transaction du composant database

    Cordialement

  5. #5
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Mars 2003
    Messages : 281
    Points : 187
    Points
    187
    Par défaut
    Ca c'est le fonctionnement normal.

    Je me suis mal exprimé. si après un select for update, un plantage x ou y (rupture de connection réseau, panne électique, etc ...), fait que le client ne peut clore sa transaction.

    Comment le détecté et comment y remédier afin que les enregistrements ne reste pas verrouillés.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 28
    Points : 28
    Points
    28
    Par défaut
    Je ne connnais pas les specificites d'interbase, dans les 2 sgbd que je mùaitrise, il y a un time out gerer par le système qui met fin automatiquement aux transactions orphelines une fois le time-out expiré

    Je suppose qu'interbase à le même mécanisme

Discussions similaires

  1. Réponses: 6
    Dernier message: 09/05/2008, 17h35
  2. Verrouiller d'un enregistrement lors de sa consultation
    Par natalii dans le forum SQL Procédural
    Réponses: 6
    Dernier message: 23/05/2007, 14h56
  3. Réponses: 6
    Dernier message: 08/06/2004, 14h51
  4. Correspondance de types lors d'un SELECT
    Par Alain Dionne dans le forum ASP
    Réponses: 5
    Dernier message: 18/05/2004, 20h54
  5. caractere blanc lors d'un select
    Par julio84 dans le forum ASP
    Réponses: 3
    Dernier message: 27/08/2003, 10h16

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