Bonjour !
J'aurai une petite question, je vous explique le contexte avant.
Ma bdd est sous Sql serveur, et ma partie cliente sous Access.
J'ai testé mes triggers sous Sql serveur, aucun problème, tout fonctionne =).
Le soucis se passe du coté d'Access. Je voudrais afficher un message "d'information" qui figure dans mon trigger. Le raiserror bloque l'insertion des données, et ce que je voudrais c'est valider les données tout en affichant mon raiserror (je ne sais pas si je suis très claire alors je préfère vous montrer l'un de mes trigger, cela vous parlera sans doute plus .
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 /*A l'ajout d'un chauffeur; dans un transporteur, verifier que le groupe n'est pas plein (nbprsnmax) */ CREATE TRIGGER verif_gp on CHAUFFEUR for insert as DECLARE @nbprsn char(5), @nb_voulue numeric (5), @numtp char(5) BEGIN /* on compte le nombre de fois que le transporteur est choisi dans la table pour chaque chauffeur */ select @nbprsn=t.NBPRSNMAX, @numtp=i.NUMT from inserted i, TRANSPORTEUR t where i.NUMT=t.NUMT select @nb_voulue=count(NUMT) from CHAUFFEUR where NUMT=@numtp /* si le transporteur n'a pas atteind son quota max de chauffeur*/ if (@nb_voulue<@nbprsn) BEGIN print 'C''est bon' END else BEGIN /*C'est ici que je veux forcer un affichage pour le signaler coté client, j'ai essayé en mettant un commit, cela ne fonctionne pas */ if (@nb_voulue=@nbprsn) BEGIN Commit transaction raiserror ('Le nombre de personnes maximum pour ce transporteur est desormais atteind ',16,1); END else BEGIN if (@nb_voulue >@nbprsn) BEGIN raiserror (' Impossible d''ajouter ce chauffeur, le nombre de personnes maximum pour ce transporteur est atteind',16,1); rollback transaction END END END END
Je vous remercie d'avance pour vos lumières
Nephtys
