Hello,
Je suis en train de travailler sur un logiciel de gestion d'adhérents. Le cahier des charges m'impose d'implémenter toute une partie "comptabilité" également. Cela signifie que, sur la partie adhésions, pour chaque adhésion enregistrée, je dois insérer dans la base de données les écritures correspondantes dans une table que j'ai appelé "écritures" (base FireBird) :
J'ai pour cela créé une fonction "ecrire" sous Delphi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 ECRITURES id (int) exercice (int) journal (varchar) date (date) compte (varchar) piece (varchar) libelle (varchar) montant (double) pointage (varchar)
Seulement voilà : comment gérer les erreurs dans ce genre de cas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 function ecrire(journal : string; dateEcriture : TDate; compte,piece,libelle : string; montant : double) : boolean; begin With data_main.BD_ecritures do begin Open; Insert; FieldByName('EXERCICE').AsInteger:=1; FieldByName('JOURNAL').AsString:='VE'; FieldByName('DATE').AsDateTime:=dateEcriture; FieldByName('COMPTE').AsString:=compte; FieldByName('PIECE').AsString:=piece; FieldByName('LIBELLE').AsString:=libelle; FieldByName('MONTANT').AsCurrency:=montant; Post; Close; end; Result:=true; end;
Je veux dire, prenons une écriture d'adhésion :
- Enregistrement de la dette de l'adhérent
- Enregistrement du produit (adhésion)
- Enregistrement du produit (dons éventuels)
La fonction "ecrire" sera donc appelée 3 fois. Mais que faire si une des 3 insertions se déroule mal ? Peut être utiliser les "transactions" mais je trouve ce système incompatible avec ma fonction "ecrire" et je ne vois pas comment le mettre en oeuvre...
Avez-vous des idées ? Des avis ? Merci![]()
Partager