Le 14 septembre 2017, nous avons publié une version actualisée de notre Politique de confidentialité. En utilisant video2brain.com vous vous engagez à respecter ces documents mis à jour. Veuillez donc prendre quelques minutes pour les consulter.

WinDev 21 : La gestion des bases de données HFSQL

Préparer et mettre en place les transactions

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Découvrez comment la gestion des transactions peut vous aider à concevoir des applications sûres. Il s'agit de maintenir l'intégrité de vos données en cas de problèmes techniques.
06:44

Transcription

Dans cette vidéo je vous propose de voir comment WinDev vous permet de gérer les transactions sous les fichiers de données. Dans la page d'aide correspondante de l'aide WinDev vous avez quelques explications sur le principe des transactions. C'est toujours le même exemple qui est pris en général quand on veut expliquer les transactions. L'histoire d'un virement d'un compte bancaire à un autre. L'idée c'est que si vous envoyez de l'argent d'un compte à un autre, vous allez donc le retirer du premier compte pour l'ajouter sur le deuxième. Si pendant cette transaction, quelque chose se passe mal soit vous aurez par exemple le deuxième compte qui aura été crédité alors que le premier n'a pas été débité, ou l'inverse. Le premier a été débité et le deuxième n'a pas été crédité, bref les choses sont faites à moitié. En cas de panne de courant, panne de communication etc. Dans un système de gestion de transactions, on va, avant de faire le virement, définir un débit de transaction, puis on va faire le virement, et à la fin on dira Fin de transaction. Si une coupure quelconque entre les deux étapes, le système sera capable de revenir en arrière, au moment où on était avant la transaction. Eh bien c'est exactement ce que nous pouvons faire dans une application WinDev. Pour ça je vais reprendre mon petit projet Bdd avec les animaux. Pour l'instant on a simplement un tableau alors ce qu'il nous faut maintenant c'est une fiche de saisie, ça va être relativement simple à faire. L'idée ça va être d'ouvrir une fiche de saisie quand on clique sur une ligne tout simplement, donc je vais créer très rapidement une petite fenêtre vierge que je vais enregistrer sous le nom de Fiche, ensuite, petit Contrôle + w pour enlever les panneaux, je réduis la fenêtre pour qu'elle rentre, comme d'habitude. Ok je vais l'enregistrer, voilà, je vais rouvrir mes panneaux simplement pour aller chercher les éléments de la base Animaux, principalement le nom, la famille. Alors je vais ramener tout ça ici, la photo on va la mettre là, on va réduire la fenêtre qui est trop grande ici. Ce que je voudrais c'est tout simplement pouvoir modifier les enregistrements à partir de cette fenêtre, donc je vais ajouter ici un bouton qui sera le bouton Enregistrer. Et je vais rendre ma fenêtre Non redimensionnable pour éviter d'avoir le message d'erreur en dessous. Donc l'idée ça va être tout simplement de faire des modifications je vais pas chercher plus loin, dans mon bouton Enregistrer à la base on aura au niveau du code un EcranVersFichier que vous connaissez certainement. Et un HModifie, je ne traite pas ici la création, c'est pas particulièrement intéressant pour la démo. Je vous laisserai compléter le code pour la partie création. Donc j'enregistre, et on va faire un bouton Fermer, normalement je fermerais dans le même bouton mais vous allez voir pourquoi je fais un bouton à part, je fais un bouton Fermer. Qui pour l'instant va tout simplement fermer la fenêtre. Je vais le prendre ici, voilà. Cette fiche je veux qu'elle s'ouvre sur l'enregistrement courant depuis les animaux qui sont ici, donc je vais double-cliquer sur la table et je vais lui dire que lorsque je double-clique justement sur une ligne de la table je voudrais ouvrir la fenêtre. Alors pour ça il me faut un bouton, je peux pas le faire directement comme ça. Qui le fait déjà, je vais me mettre ici. Un petit bouton Modifier tout simplement. Le code de ce bouton va ouvrir la fenêtre, ça c'est vraiment du basique. La fenêtre fiche. Ne pas oublier d'ajouter sur la ligne de la table l'appel du bouton au double-clic. Comme ceci. Voilà, on va tester maintenant. Si je pars d'ici, je double-clique, c'est pas bon, il manque effectivement le Fichier vers écran au niveau de l'ouverture de la fenêtre de la fiche. Certains d'entre vous l'avaient certainement remarqué. FichierVersEcran pour ramener les données du fichier dans la fenêtre. Maintenant si je double-clique ça fonctionne, si je modifie, Baleine : 300 ans, ça m'étonnerait que ça vive aussi longtemps, Enregistrer Fermer ici je rafraîchis pas, on va compléter ça également. Dans le bouton ici on va faire un TableAffiche TableAffiche, TABLE_Animaux. Donc maintenant, modifications, 2 par exemple, Enregistrer Fermer, Ok ça fonctionne. Donc l'idée maintenant c'est d'ajouter du code plus exactement au niveau des boutons qui sont ici notamment des boutons Enregistrer et Fermer. Ce que je vais faire dans mon bouton Enregistrer c'est que je vais auparavant définir une transaction. La transaction c'est quelque chose qui se fait avec la fonction HTransactionDébut à laquelle je dois donner le chemin d'un fichier dans lequel il va stocker justement les données de la transaction. Ce fichier doit être dans un endroit que je devrais décrire. Donc tout dépend de la configuration, tout dépend de qui utilise les explications etc. Là pour faire simple je vais utiliser le répertoire de l'exécutable, sachant que dans une vraie application, les gens n'auront pas nécessairement le droit d'écrire à cet endroit-là. Donc ici je vais utiliser fRepExe donc qui me renvoie le nom de répertoire de l'exécutable auquel j'ajoute le nom du fichier de transaction que je veux utiliser, alors ça peut être n'importe quel nom, ici je peux l'appeler tout simplement Animaux .trs, comme transaction. C'est pas du tout une extension obligatoire c'est simplement celle qu'ils prennent dans les exemples WinDev. Donc ici je définis un début de transaction. C'est le moyen que j'utilise pour dire à WinDev Je vais commencer à modifier mes fichiers et c'est un début de transaction. Normalement, une fois que la transaction a été faite, une fois que toutes les écritures ont été faites, s'il y en a qu'une seule c'est pas super intéressant, il faut qu'il y en ait plusieurs qui modifient plusieurs fichiers, je vais faire un Fin de transaction. Sauf que là, le Fin de transaction je vais le mettre dans le bouton Fermer pour simuler justement une sorte d'étape entre les deux. Alors c'est pas Fin de transaction, c'est HTransactionFin. Voilà. Sur rien du tout en fait il n'y a pas de connexion ici, je préciserais la connexion uniquement si j'utilisais une connexion à une base de données externe mais là je travaille en local. Donc si je fais fonctionner ce système-là, ça va pas changer grand chose, je double-clique ici, je peux modifier ma baleine, j'enregistre, là la transaction a commencé, elle est toujours pas terminée, dès que je clique là, elle est terminée et ça fonctionne.

WinDev 21 : La gestion des bases de données HFSQL

Découvrez les manipulations, les outils et les possibilités intéressantes des bases de données HFSQL dans WinDev. Installez, utilisez, et gérez le serveur HFSQL client/serveur.

2h03 (23 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
WinDev WinDev 21
Spécial abonnés
Date de parution :23 févr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !