![]() | |
Auteur | Messages |
---|---|
valaquarus | #31 Posté le 7/3/2025 à 17:34:38 |
-- Unus Ex Altera --![]() | Tout me semble bien, maintenant. Système d'exploitation : KDE Manjaro.testing ~ Version Gambas : 3.20.2 |
linuxos | #32 Posté le 7/3/2025 à 18:57:43 |
Un peu de sel, de poivre et la crevette sera... ![]() | Bon voici un petit résumé des avancements du projet. Vous trouverez les sources du projet dans la Forge du Site. N'hésitez pas revenir vers moi si vous n'arrivez pas a faire fonctionner le projet. 1 - Le projet contient un Module nommé 'ModVar' dans lequel plusieurs Variables peuvent être ajusté en fonction de votre configuration: Public PathLogFile As String = "/tmp/gbGestionImmobilier.log" ' Chemin du fichier de Log - Doit être existant pour avoir des Logs Public PathDatabase As String = Application.Path ' Répertoire ou se trouve le fichier SQlite3 Public DatabaseFileName As String = "database.db" ' Nom du fichier base de données SQlite3 Public FileConfig1 As String = Application.Path &/ "gbGestionImmobilier.ini" ' Non implementé pour l'instant Public StorageDocDir As String = Application.Path &/ ".hidden/storage_doc" ' Répertoire physique de stockage des Documents - Valeur par défaut si rien Public StoragePhotoDir As String = "/local/Gambas-3/gbGestionImmobilier" &/ ".hidden/storage_photo" ' Répertoire physique de stockage de Photos - Valeur par défaut si rien Public StoragePhotoWeb As String = "/storage_photo" ' Chemin (lien symolique) d'accès aux Photos dans '.public' utilisé par le Mini Serveur Web. 2 - Partie enfin terminée - Panneau d'Administration - Uniquement accessible si l'utilisateur est 'Admin' - Panneau de Profil utilisateur - Suppression d'un Bien Immobilier - Suite aux remarques de Gambix concernant la gestions des transactions, dans le cas de Suppression d'un Bine Immobilier, j'ai procédé differement pour étre plus sécurisé. En effect, du fait que la Suppression d'un Bien Immobilier demande plusieurs actions (suppression de données dans plusieurs Tables de la base), j'ai utilisé la méthode de transaction classique disponible dans SQLite3. Cette méthode, classique a beaucoup de base de données, permet d'informer la BD qui nous allons effectué plusieurs opération sur la dite DB, de manière temporaire, et si aucunes opérations n'échoue, alors on demandera a la BD de commit physiquement tous les changement en un seul coup. Au contraire, si une ou plusieurs opérations échouent (à décider par l'utilisateur), alors toute la transaction est annulée et aucun changement n'est apporté a la BD. On y voit ici un gain de temps pour appliquer de multiple changement en une fois (beacoup moins de multiple connection pour chaque modification individuelle), et une Sécurité' car il faut que toutes les actions a appliquer réussissent pour être écrites rééllement dans la BD. Pour ce faire il faut décomposer en 3 phases les actions a réaliser par les mots clés suivants: A) Avant de commencer des actions sur la base de données on initialise une nouvelle 'transaction' Si on suppose que '$hConn' est mon objet 'connection a la base SQLite3' '' Debut de transaction $hConn.Begin() '' Transaction Exemple: 1) Supprimer les enregistrements liés au Bien Immobilier XX dans la Table 'table_document' ==> Si l'action échoue alors on annule tout par: $hConn.Rollback() 2) Supprimer les enregistrements liés au Bien Immobilier XX dans la Table 'table_photo' ==> Si l'action échoue alors on annule tout par: $hConn.Rollback() 3) Supprimer les enregistrements liés au Bien Immobilier XX dans la Table 'table_locataire' ==> Si l'action échoue alors on annule tout par: $hConn.Rollback() 4) Supprimer les enregistrements liés au Bien Immobilier XX dans la Table 'table_frais' ==> Si l'action échoue alors on annule tout par: $hConn.Rollback() 5) Supprimer les enregistrements liés au Bien Immobilier XX dans la Table 'table_note' ==> Si l'action échoue alors on annule tout par: $hConn.Rollback() et enfin... 6) Supprimer l'enregistrement du Bien Immobilier XX dans la Table 'table_bien_immo' ==> Si l'action échoue alors on annule tout par: $hConn.Rollback() '' Commiter l'ensemble de la Transaction si tout c'est bien passé avant $hConn.Commit() - Ajout d'un Panneau Gallerie pour visualiser les Photos 3 - Petite vidéo illustrant les parties finies/amméliorées video_profil_utilisateur_et_suppression_bien.mp4 Voila voila Olivier Lorsqu'on s'occupe d'informatique, il faut faire comme les canards... Paraître calme en surface et pédaler comme un forcené par en dessous. |
![]() |