Composant IbEvent

aliasbml Messages postés 5 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 20 février 2014 - 5 mai 2013 à 00:04
aliasbml Messages postés 5 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 20 février 2014 - 6 mai 2013 à 00:29
Bonjour;

je voudrai savoir comment récupérer un événement Interbase sous delphi avec le composant IbEvent.

. j'ai crée l'événement;
. j'ai fait le lien entre l'événement et composant IbEvent
. mais à l'exécution si je veut par exemple testé si événement1 alors Showmessage (' le stock mini est atteint !!! '); le message ne s'afiche pas.

merci pr votre aide.

2 réponses

Utilisateur anonyme
5 mai 2013 à 02:20
Salut

Qu'est ce que tu appelles évènement ?
0
aliasbml Messages postés 5 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 20 février 2014
6 mai 2013 à 00:29
Salut Francky;

avant je tien à te remercier d'avoir répondu à ma question; et je suis

désolé car l'explication est trop longue :

et b1 pr mieux t'expliquer, par exemple g une BDD "gestion stock" ki

contient les tables suivantes : Article, Commande, Ligne_Commande

(sorties), Livraison et Ligne_Livraison (entrées), pr les entrées pas

de problème, un Trigger qui fait l'Update Qtt_Stock dans la table

Article, mais dans les sorties si par exemple Qtt_Commandee est

supérieure à Qtt_Stock dans la table Article, alors la commande

n'aura pas lieu pr cela g créer un Trigger ki vérifier cela et g

ajouté une exception pr m'informé ke la commande sera pas possible,

bien sur l'exception fait roolback du script en cours d'exécution,

voici le script :

/*Trigger qui vérifier si Qtt_Cmd est >= Qtt_Stock dans la table Article avant ajout d’une Commande dans la Table Ligne_Commande :*/

/*Création d’un exécption */
CREATE EXCEPTION Qtt_Stock_Ins 'Quantité en Stock Insuffisante !';

/*Création du Trigger qui vérifier et fait appel à l’exception créée précédemment*/
SET TERM^;
CREATE TRIGGER VERIF_ARTICLE_QTT_CMD FOR LIGNE_COMMANDE
ACTIVE BEFORE INSERT POSITION 0
AS
DECLARE VARIABLE Q_Stock SMALLINT;
BEGIN
SELECT Qtt_Stock FROM ARTICLE WHERE Code_Art=New.Code_Art INTO : Q_STOCK ;
IF (New.Qtt_Cmd >= :Q_STOCK) THEN
EXCEPTION Qtt_Stock_Ins;
END^
SET TERM;^

après exécution en mode interactif sql et si la condition est vrai g

le message de l'exception pas de problème!

Le problème si je veux gérer cela avec delphi7 à mon avis il y a pas

un composant ki gère ça!

un autre cas si le stock est disponible alors le trigger s'exécute

mais supposant ke le stock minimal est atteint si je crée un Trigger

ki vérifier cela avec une exception cela va posé problème, alors g

ajouté un POST_EVENT dont voici le script :

/*Trigger qui informe si le stock minimal est atteint dans la table
Article après une Commande dans la table Ligne_Commande :*/

/*Création du Trigger qui vérifier le stock mini et fait appel à l'exception créée précédemment*/
SET TERM^;
CREATE TRIGGER VERIF_ARTICLE_QTT_MINI FOR LIGNE_COMMANDE /ARTICLE ?
ACTIVE AFTER INSERT POSITION 5
AS
DECLARE VARIABLE Q_Stock_V SMALLINT;
DECLARE VARIABLE Q_Stock_M SMALLINT;

BEGIN
SELECT Qtt_Stock FROM ARTICLE WHERE Code_Art=New.Code_Art INTO : Q_STOCK_V ;
SELECT Stock_Min FROM ARTICLE WHERE Code_Art=New.Code_Art INTO : Q_STOCK_M ;

IF (:Q_STOCK_V <= :Q_STOCK_M) THEN POST_EVENT ‘Stock_Mini_Atteind’;
END^
SET TERM;^

le problème sous interactif sql rien ne s'affiche (événement dans

trigger), mais avec Delphi7 il existe le composant IBEvent, à mon avis

il exploite les événements généré dans les Triggers, mais lorsque je

relie IBEvent avec la BDD Interbase par exemple :

IF IBEvent1.Events:=‘Stock_Mini_Atteind’ Then ShowMessage('Stk Mini')

g aucun message!!!

encore merci et désolé car je c ke c trop longue l'explication

je pense ke g tout expliqué, s'il manque des choses te me le dit,

merci.
0
Rejoignez-nous