|
Bonusage des transactions |
Started by Sauveur CONSALVI, Dec., 11 2019 4:25 PM - 5 replies |
| |
| | | |
|
| |
Registered member 374 messages Popularité : +7 (7 votes) |
|
Posted on December, 11 2019 - 4:25 PM |
Bonjour, Informaticien en retraite, Je suis en auto formation sur WebDev, par passion des langages informatique Mais je suis seul dans mon logement, et mes anciens collègues ne le connaissent pas Aussi, merci de me dire si mes écritures sont correctes, car la manipulation des fichiers est très importante
Lieu : Initialisation du projet après connexion au site déclaration connexion et contexte
NomConnexion est une Connexion gbOK=EnModeTest(mtProjet) SI gbOK=Vrai ALORS NomConnexion..Provider = hAccèsHFClientServeur NomConnexion..Utilisateur = "NomUtilisateur" NomConnexion..MotDePasse = MotPasse" NomConnexion..Serveur = "Serveur" NomConnexion..BaseDeDonnées = "NomBD" NomConnexion..Cryptage = hCryptageRC5_16 // Ouverture de la connexion gbAdministrateur=HOuvreConnexion(NomConnexion) SI gbAdministrateur=Faux ALORS Erreur("La connexion au serveur a échouée",ErreurInfo(errComplet)) SINON //info("Connexion locale - Tests") HChangeConnexion("*", NomConnexion) FIN SINON NomConnexion..Provider = hAccèsHFClientServeur NomConnexion..Utilisateur = "NomUtilisateur" NomConnexion..MotDePasse = MotPasse" NomConnexion..Serveur = "Serveur" NomConnexion..BaseDeDonnées = "NomBD" NomConnexion..Cryptage=hCryptageRC5_16 gbAdministrateur=HOuvreConnexion(NomConnexion) SI gbAdministrateur=Faux ALORS Erreur("La connexion au serveur a échouée",ErreurInfo(errComplet)) SINON HChangeConnexion("*", NomConnexion) FIN FIN ConfigureContexteAWP(ctxDisque,ctxCookie) DéclareContexteAWP(gsNomProjetBrut,gbOK,gbAdministrateur,gnIDMembre,gsLogicielID,gsRepertoireLogImage,gsRepertoireProvisoire,gsRepertoireTelechergement,gsFichierUploadé, ... gsTableNomUploadComplet,gsDebut,NomConnexion)
Lieu : Clic sur bouton - serveur - AJAX Activé Pour une création ou une modification
NomConnexion est une Connexion HTransaction(NomConnexion) Logiciel.logImage=fExtraitChemin(gsNomFichierCopiéCompletRepimage,fFichier+fExtension) LIB_Image=gsNomFichierCopiéCompletRepimage Logiciel.logID=SAI_ID Logiciel.logSujet=SAI_Sujet Logiciel.logVersion=SAI_Version Logiciel.logDescription=SAI_Description Logiciel.logFichier=SAI_Fichier
SI gbCreation=Vrai ALORS gbOK=HAjoute(Logiciel) SINON gbOK=HModifie(Logiciel) FIN SI gbOK=Faux ALORS SI gbCreation=Vrai ALORS Erreur("BTN_Creer_Modifier Erreur lors la création de "+SAI_Sujet,ErreurInfo(errComplet)) GOTO Deblocage SINON Erreur("BTN_Creer_Modifie Erreur lors la modification de "+SAI_Sujet,ErreurInfo(errComplet)) GOTO Deblocage FIN FIN SI gbOK=Vrai ALORS SI gbCreation=Vrai ALORS Info("Création faite pour "+SAI_ID) PageAffiche(PAGE_PC_Gestion_Logiciels,gnIDMembre,gbAdministrateur) GOTO Deblocage SINON Info("Modification faite pour "+SAI_ID) SelectionTableLogiciel() GOTO Deblocage FIN FIN Deblocage: HTransactionAnnule()
HDébloqueFichier(Logiciel)
Merci d'avance Cordialement SC
-- Cordialement SCMessage modified, December, 11 2019 - 4:31 PM |
| |
| |
| | | |
|
| | |
| |
Registered member 1,623 messages Popularité : +100 (114 votes) |
|
Posted on December, 11 2019 - 5:19 PM |
- Il me semble que HChangeConnexion("*", NomConnexion) n'est pas nécéssaire apres un Houvre().
- On peut remplacer : SI gbCreation=Vrai ALORS gbOK=HAjoute(Logiciel) SINON gbOK=HModifie(Logiciel)
Par Henregistre(Logiciel) qui fera lui meme la difference entre nouveau et modif (si on a bien fait un Hraz() avant pour l'ajout)
- Les GOTO a mon avis c'est une ancienne habitude issue de programmation linéaire .. a mon avis c'est FUIR immédiatement et utiliser des procédures (locales.. internes peu importe) |
| |
| |
| | | |
|
| | |
| |
Registered member 1,623 messages Popularité : +100 (114 votes) |
|
Posted on December, 11 2019 - 5:20 PM |
SI gbAdministrateur=Faux ALORS Erreur("La connexion au serveur a échouée",ErreurInfo(errComplet))
Il faudrait ajouter un FINPROGRAMME ou quelque chose pour empecher que le programme continu a dérouler. ou faire un pageaffiche() vers une page d'erreur. |
| |
| |
| | | |
|
| | |
| |
Registered member 374 messages Popularité : +7 (7 votes) |
|
Posted on December, 12 2019 - 7:42 AM |
Bonjour, Un grand merci pour ces recommandations
C'est vrais que le GOTO vient de certaines pratiques d'écriture, qui permettent d'éviter les IF imbriqués ou les SELECT CASE Mais cela marche ...
La remarque pour FINPROGRAMME est très juste, mais je ne trouve pas la bonne syntaxe ... Je vais chercher, et même créer une nouvelle demande
-- Cordialement SC |
| |
| |
| | | |
|
| | |
| |
Registered member 477 messages Popularité : +20 (20 votes) |
|
Posted on December, 12 2019 - 12:31 PM |
Déjà je ne vois aucun HtransactionFin permettant de valider la transaction, je ne sais pas si c'est volontaire pour mettre en évidence le principe des transactions car effectivement votre table ne sera jamais mise a jour ensuite sur le fond la transaction n'a d'intérêt que si il y a des opérations en cascade sur plusieurs tables, dans votre code la il n'y a qu'une table alors s'il s'agit d'un test ok mais le HtransactionAnnule ne fera rien puisque l'opération d'ajout/modif a echoué |
| |
| |
| | | |
|
| | |
| |
Registered member 374 messages Popularité : +7 (7 votes) |
|
Posted on December, 12 2019 - 3:27 PM |
Bonjour, C'est sure, mon code à besoin de relecture et de test Merci pour ces remarques
-- Cordialement SC |
| |
| |
| | | |
|
| | | | |
| | |
|