4.3 Les modes de blocage proposés
Transcription
4.3 Les modes de blocage proposés
WLangage.book Page 373 Mardi, 23. avril 2013 1:59 13 Les traitements de P1 et P2 deviennent : Programme P1 BLOQUER(F1) BLOQUER(F2) <Traitement 1> DEBLOQUER(F1) DEBLOQUER(F2) Programme P2 BLOQUER(F1) BLOQUER(F2) <Traitement 2> DEBLOQUER(F1) DEBLOQUER(F2) Dans ce cas : • P1 bloque F1. 4.3 Les modes de blocage proposés Il existe deux modes de blocage des fichiers et des enregistrements. Ce chapitre : • aide à choisir le mode à adopter dans les programmes, • explique la méthode pour bloquer un fichier ou un enregistrement, • détaille le fonctionnement de chaque mode. 4.3.1 Mode Mono Le mode Mono est le mode de blocage par défaut de WinDev. Il se caractérise par le blocage automatique de chaque fichier dès son ouverture. Le fichier sera débloqué lors de sa fermeture. Utilisateur WinDev 5.5 : ce mode correspond à la fonction HModeAuto de WinDev 5.5. Ce mode est conservé par compatibilité avec WinDev. Il ne doit pas être utilisé dans un site WebDev. Utilisateur WebDev 1.5 : ce mode correspond à la fonction HModeAuto de WebDev 1.5. Quand utiliser ce mode ? Le mode Mono est utilisé pour développer simplement des programmes dont les fichiers ne sont pas partagés par plusieurs postes ou par plusieurs programmes en même temps. Avec le mode Mono, il n'est pas nécessaire de gérer les blocages en programmation, les fichiers sont bloqués dès leur ouverture en écriture et en lecture. Les fichiers ne sont pas partageables. Important • Le mode Mono ne convient pas aux programmes fonctionnant en réseau. Si un programme développé en mode Mono est lancé plusieurs fois sur une même machine ou • P2 ne peut pas bloquer F1. • P1 bloque F2. • P2 attend la libération du fichier F1. • Le traitement 1 s'exécute. • P1 débloque F1. • P1 débloque F2. • P2 bloque F1. • P2 bloque F2. ... "L'étreinte mortelle" est évitée ! WD WebDev s'exécute en réseau, un message d'erreur s'affichera signalant que le mode Mono est inapproprié pour ce type de fonctionnement. • Un programme développé avec le mode Mono ne pourra pas être lancé plusieurs fois sous Windows. Comment sont bloqués les fichiers en mode Mono ? Le mode Mono est le mode de blocage par défaut de WinDev. En mode Mono, dès qu'un fichier est ouvert par une fonction (HOuvre ou toute autre fonction, par exemple HLitPremier, HCreation, ...), le fichier est bloqué automatiquement en lecture et en écriture. Si l'accès au fichier est refusé (le fichier est déjà bloqué par un autre programme), l'exécution du programme est abandonnée après l'affichage d'un message signalant que ce mode est inapproprié. Un fichier qui a été bloqué lors de son ouverture est automatiquement débloqué dès qu'il est fermé : • par la fonction HFerme, si elle est appelée, • pour pouvoir ouvrir un autre fichier lorsque le nombre maximum de fichiers pouvant être ouvert est atteint (fermeture automatique des fichiers). Remarques • Si le fichier est débloqué par HFerme (ou HDébloqueFichier, HDébloqueTotalFichier) ou par la fermeture automatique, dans la suite du programme, il sera bloqué de nouveau lorsqu'il sera réouvert par une fonction. • En mode Mono, le fichier est bloqué tant qu'il est ouvert. Il est donc conseillé de laisser un fichier bloqué le moins longtemps possible. Partie 7 : Gestion des fichiers de données 373