Académique Documents
Professionnel Documents
Culture Documents
M’enregistrer
Connexion
Recherche…
Recherche avancée
M’enregistrer
Connexion
Connexion
Accueil
FAQ
Apogea
Blog
Répondre
Dans ce sujet…
Rechercher
25 messages
|Page 1 sur 1
Bonjour,
J'ai créé un trigger de contrôle sur la table F_DocEntete. Il fonctionne bien mais j'ai systématiquement le message "erreur SQL" suite au RaisError
suivant :
D'après SAGE, ce n'est pas possible autrement... est-ce que vous avez aussi cela dans vos triggers ou il y a-t-il une astuce ?
Ludovic
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
Haut
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 1/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
Bonjour,
J'ai lu une discussion un peu plus bas dans le forum qui en parlait :
http://www.zoom.fr/phpBB2/message-d-information-depuis-trigger-t3854.html
Par contre sur ma version (15.53) la table F_Docentete est renseigné une première fois par le programme par un INSERT. Et ensuite les infos libres de
type table et le Code affaire sont renseigné par des UPDATE.
En clair si je teste mon code affaire sur un trigger en INSERT, même si il est renseigné à la validation mon message se déclenche.
Il faut le faire en UPDATE pour contrôler la saisie d'un code affaire. Le soucis c'est que si il fait plusieurs UPDATE, ton message bien que non bloquant
apparaitra 2-3 fois sur l'écran à chaque validation de l'entête.
youn29n
Posteur habitué
Messages: 20
Inscription: Jeu 13 Nov 2008 10:33
Haut
et effectivement, le souci est qu'il s'exécutera trop de fois... et je veux que le message soit bloquant...
Le truc que je n'aime pas c'est le "erreur SQL" qui suit mon message dans le RaisError...
d'autres idées ?
De plus, je dois contrôler aussi une information libre article au moment de l'insertion, mais à quel moment je peux le faire...c'est sur F_article mais en
INSERT ca ne fonctionne pas parce que je ne peux plus aller sur l'onglet champs libres...
Ludovic
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
Haut
Pour trouver le numéro de message il faut requeter sur la table master avec :
Dans le trigger, après le test de qui doit etre bloquant ecrire ceci :
J'ai utilisé ce principe pour bloquer une suppression dans les documents de vente.
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
J'ai fait exactement le test indiqué mais sans résultat. J'ai toujours le message ERREUR SQL ! qui suit mon message inscrit dans la table sysmessages...
BEGIN
BEGIN
rollback transaction
RETURN
END
END
Pouvez-vous me confirmer que vous arrivez à ne pas avoir de message ERREUR SQL ?
Un grand merci !
Ludovic
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
Haut
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 3/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
Répondre en citant le message
Re: Trigger : Gestion commerciale / RAISERROR : erreur SQL
de lilibonome » Lun 20 Avr 2009 11:12
Si je ne mets pas le rollback j'ai le message (80012) qui s'affiche deux fois, suivi de ERREUR SQL !
Plus d'infos ?
Merci
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
Haut
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
Voici le trigger, il contrôle l'entete de devis. Obligation d'entrer un code affaire et une date de livraison...
SET NOCOUNT ON
BEGIN
DECLARE @codeaffaire char(12), @status int, @datelivr smalldatetime, @Msg char(255), @piece char(9)
SELECT @status = DO_Statut, @codeaffaire = CA_Num, @datelivr = DO_DateLivr, @piece = DO_Piece, @domaine = DO_Domaine, @type =
DO_Type FROM INSERTED
BEGIN
BEGIN
rollback transaction
RETURN
END
END
END
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 4/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
Haut
Le problème vient du fait que le code affaire n'est pas envoyé dans la table Inserted il est toujours à blanc.
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
Qu'est-ce qui fonctionne exactement ? l'alerte ou le "non affichage" du message ERREUR SQL !...??
Parce qu'en faisant comme vous dites, c'est à dire en enlevant le CA_Num :
--------------------------------------------
rollback transaction
RETURN
END
--------------------------------------------
Je précise bien que le trigger fait bien ce que je veux, c'est à dire empêcher d'avoir les champs code affaire et date livraison non saisis... mais je voudrais
ne pas avoir le message ERREUR SQL ! qui suit le message envoyé par mon raiserror...
Merci
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
Haut
SET NOCOUNT ON
BEGIN
DECLARE @codeaffaire char(12), @status int, @datelivr smalldatetime, @Msg char(255), @piece char(9)
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 5/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
DECLARE @domaine int, @type int
SELECT @status = DO_Statut, @codeaffaire = CA_Num, @datelivr = DO_DateLivr, @piece = DO_Piece, @domaine = DO_Domaine, @type =
DO_Type FROM INSERTED
BEGIN
END
END
END
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
Le seul souci que je rencontre c'est qu'après le raiserror qui m'affiche bien le message que j'ai inscrit dans sysmessages, il suit un autre message
ERREUR SQL ! que je ne souhaiterai pas...
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
Haut
Par contre au niveau des messages cela fonctionne bien je n'ai pas ce fameux message "Erreur SQL"
Dernière tentative :
Essayer de changer le numéro du message et mettre le 80002. Juste pour voir si cela change quelque chose ?
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
En fait dès que je prends un message de SAGE, je n'ai pas l'ERREUR SQL! qui suit...
Donc avec RaisError(80002,11,1), j'ai le message : Suppression impossible ! mais pas suivi de ERREUR SQL!
Pouvez-vous me confirmer que vous arrivez à faire afficher un RaisError personnalisé non suivi de ERREUR SQL ??
Merci
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 6/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
lilibonome
Posteur néophyte
Messages: 12
Inscription: Mer 4 Mar 2009 11:10
Haut
Si le RaiseError provoque le fameux message SQL c'est que le message que vous essayer de lancer n'est pas bon.
En l'occurence le 80012.
Avez-vous bien créer les messages comme dans la procédure que j'ai mise au début ?
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
Bonjour,
par contre si je crée un code erreur, mon message est suivi d'une erreur sql
Merci
mike677 a écrit:Si le RaiseError provoque le fameux message SQL c'est que le message que vous essayer de lancer n'est pas bon.
En l'occurence le 80012.
Avez-vous bien créer les messages comme dans la procédure que j'ai mise au début ?
Si vous essayer de mettre un message comme ceci : "RAISERROR('Indiquez la date livraison ou changez le status !',11,1)", vous aurez
toujours le message "Erreur SQL".
charly54220
Contributeur
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 7/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
Messages: 52
Inscription: Jeu 27 Sep 2007 16:23
Haut
Désolé d'intervenir un peut tard, mais dans le contexte du test du code affaire dans la fenêtre principale de la pièce, j'ai déja constaté que la valeur qui y
est insérérée n'est jamais pris en compte dans la table INSERTED.
"Exemple le champ code affaire (je ne veut pas le modifier mais vérifier qu'il contiens une valeur à la création)...
Le triger FOR INSERT me dira toujours qu'il est vide (si je le saisi dans l'écran principal de la commande...).
pour qu'il en accepte une valeur, il faut que je le saisisse par la fenêtre Infromations document !!!"
Pour infos...
codialement.
jmz61
Posteur néophyte
Messages: 4
Inscription: Mar 10 Mar 2009 13:13
Localisation: Grenoble
Haut
lilibonome a écrit:En fait dès que je prends un message de SAGE, je n'ai pas l'ERREUR SQL! qui suit...
Donc avec RaisError(80002,11,1), j'ai le message : Suppression impossible ! mais pas suivi de ERREUR SQL!
Pouvez-vous me confirmer que vous arrivez à faire afficher un RaisError personnalisé non suivi de ERREUR SQL ??
Merci
Bonjour,
Merci
charly54220
Contributeur
Messages: 52
Inscription: Jeu 27 Sep 2007 16:23
Haut
Reponse de SAGE :
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 8/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
Le second message renvoyé est tout à fait normal pour l’instant en SQL Server 2000.
mike677
Posteur néophyte
Messages: 8
Inscription: Lun 20 Avr 2009 08:57
Haut
Le second message renvoyé est tout à fait normal pour l’instant en SQL Server 2000.
On fera avec
charly54220
Contributeur
Messages: 52
Inscription: Jeu 27 Sep 2007 16:23
Haut
Pour info, TRIGGER de contrôle du code affaire avec la petite astuce pour éviter le message d'erreur SQL
Intitulé : CtrlAffaire
Mode de calcul :
Resultat = "Insert"
FinSi
*/
GO
Set nocount on
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 9/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
Declare @DO_Type Int
Select
@CA_Num=Isnull(CA_NUM,''),
@DO_Type=DO_Type,
@DO_Piece=DO_Piece,
@DO_Domaine=DO_Domaine,
@CtrlAffaire=CtrlAffaire
From
Inserted
Set @MsgVente='La saisie du code affaire est obligatoire pour un document de vente !'
Set @MsgAchat='La saisie du code affaire est obligatoire pour un document d''achat !'
--end
IF @CA_NUM='' and (@do_domaine=0) and (@DO_Type<=6) and Update(CtrlAffaire) and Isnull(@CtrlAffaire,'')='Insert' Begin
Raiserror(@MsgVente,16,1)
END
IF @CA_NUM='' and (@do_domaine=0) and (@DO_Type<=6) and Update(CA_Num) and Isnull(@CtrlAffaire,'')='Insert' Begin
Raiserror(@MsgVente,16,1)
END
Raiserror(@MsgAchat,16,1)
END
IF @CA_NUM='' and (@do_domaine=1) and (@DO_Type<=16) and Update(CA_Num) and Isnull(@CtrlAffaire,'')='Insert' Begin
Raiserror(@MsgVente,16,1)
END
GO
GO
Set nocount on
Select
@CA_Num=Isnull(CA_NUM,''),
@DO_Type=DO_Type,
@DO_Piece=DO_Piece,
@DO_Domaine=DO_Domaine
From
Inserted
Set @MsgVente='La saisie du code affaire est obligatoire pour un document de vente !'
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 10/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
Set @MsgAchat='La saisie du code affaire est obligatoire pour un document d''achat !'
Raiserror(@MsgVente,16,1)
END
Raiserror(@MsgAchat,16,1)
END
GO
JACKSON
Posteur néophyte
Messages: 13
Inscription: Mer 25 Aoû 2010 10:46
Haut
Bonjour,
Gros déterrage.
J'essaie aussi d'envoyer un message via un trigger, mais j'ai aussi ce message "Erreur SQL".
merci.
olivierPPC
Posteur néophyte
Messages: 1
Inscription: Ven 11 Avr 2014 14:40
Haut
Bonjour est ce que il y à t-il une solution pour le message erreur sql ????????
ahmedTUNISIE
Posteur néophyte
Messages: 6
Inscription: Mar 23 Sep 2014 18:43
Haut
Bonjour,
La fonction RaiseError est une manière d'envoyer un message à partir de SQL Server vers l'interface cliente SAGE Compta ou gescom. On simule une
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 11/12
28/09/2022 00:03 Le Forum des Utilisateurs Sage - - Trigger : Gestion commerciale / RAISERROR : erreur SQL
erreur SQL, d'où le titre de le fenêtre qu'on ne sait pas modifier.
On doit pouvoir passer par la fonction SAGE CB_SendMessage mais celle-ci ne s'affiche sur l'interface client qu'au bon vouloir du raffraichissement de
l'application SAGE.
Cordialement,
ASR31
En recherche de missions.
asr31
Super Contributeur
Messages: 2973
Inscription: Mer 13 Fév 2008 15:31
Localisation: TOULOUSE
YIM
Haut
Répondre
25 messages
|Page 1 sur 1
Retourner vers Développements ODBC, Objets métiers, SQL
Aller à:
Développements ODBC, Objets métiers, SQL
Aller
Index du forum
Heures au format UTC + 1 heure [ Heure d’été ]
Apogea
92 300 Levallois-Perret
info@apogea.net
Liens
Blog
Offre
Suivez Apogea
Connexion
Nom d’utilisateur:
Mot de passe:
Connexion
Me connecter automatiquement à chaque visite
https://www.zoom-gestion.fr/phpBB2/trigger-gestion-commerciale-raiserror-erreur-sql-t4910.html 12/12