Bonjour,
 
N'ayant pas trouver de solution sur le net je viens vous voir pour répondre à une de mes "petites" problèmatiques.
 
Dans une de mes tables, avant chaque insertion je regarde si le fournisseur a le droit de passer une commande.
 
Lorsqu'il a le droit, la ligne rentre bien dans la base, mais lorsque ce n'est pas le cas, elle ne rentre pas 
Voici le code :
 
Code :
 - DELIMITER $$
 - DROP TRIGGER reporting.insert_tblorders $$
 - CREATE TRIGGER reporting.insert_tblorders BEFORE INSERT ON TBLORDERS
 - FOR EACH ROW
 - BEGIN
 -   DECLARE txsoc VARCHAR(45);
 -   DECLARE txfournisseur VARCHAR(45);
 -   IF NEW.PARENTORDERID IS NOT NULL THEN
 -     SELECT fb.Taux_Soc,fb.Taux_fournisseurINTO txsoc,txfournisseur FROM socfournisseur fb,fournisseur b,fonds f WHERE b.Id_fournisseur=fb.Id_fournisseur AND NEW.FOURNISSEURID=b.Nom_fournisseurAND f.Id_Fond=fb.Id_Fond AND NEW.ACCOUNTID=f.Nom_Fond;
 -     IF (txsoc IS NOT NULL AND txfournisseur IS NOT NULL )THEN
 -       SET NEW.SOC_COM_BASE = txsoc;
 -       SET NEW.FOURNISSEUR_COM_BASE= txfournisseur;
 -     ELSE
 -       SET NEW.SOC_COM_BASE = 'Interdit';
 -       SET NEW.FOURNISSEUR_COM_BASE= 'Interdit';
 -     END IF;
 -   END IF;
 - END $$
 - DELIMITER ;
 
  | 
 
Donc pour resumer, mysql me prends bien la première condition : si la requête renvoie quelques chose il va bien me rentrer la ligne, par contre si la requête ne renvoie rien, la ligne ne rentre pas dans la base 
 
Auriez-vous une idée?
 
Merci d'avance
 
Message édité par spish le 29-11-2007 à 08:09:49