IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Firebird Discussion :

une Aide Pour réaliser une Procedure Stocker de Suppression


Sujet :

SQL Firebird

  1. #1
    Membre actif Avatar de touhami
    Inscrit en
    Avril 2002
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 327
    Points : 264
    Points
    264
    Par défaut une Aide Pour réaliser une Procedure Stocker de Suppression
    Bonjour, a tous,
    j'ai 3 Tables (Interbase 6.5) qui sont
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Table1:  Produit
            CodeProd Varchar(15), (Clé Primaire)
            Quantite   Integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Table2:  Vente_Maitre
                 NumeroFacture Integer, (Clé primaire)
                 CodeClient    Varchar(6)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Table3:  Vente_Detail
                 NumeroFacture Integer,
                 CodeProduit Varchar(15),
                 Qte_Vendu Integer
        Clé primaire (NumeroFacture +CodeProduit )
    j'ai besoin d'aide pour réaliser une Procédure stockée qui fait ce qui suit :
    supprime une Facture de vente on lui passant comme parametre le n° de la Facture mais avant la suppression du detail de la facture elle recupére la quantite Vendu dans la table Produit.
    Alors une idée et bon developpement pour tous

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    il suffit de faire un select sur la table produit avant de l'effacer!? ou est le problème? il n'y a pas besoin de procédure stockée pour cela, sauf si tu veux combiner les 2 opérations en même temps.

    mais même dans ce cas, ou est la difficulté? que ne comprend tu pas?

  3. #3
    Membre actif Avatar de touhami
    Inscrit en
    Avril 2002
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 327
    Points : 264
    Points
    264
    Par défaut
    Bonjour,
    Merci jean-jacques varvenne pour ta reponse ,
    seulement j'ai besoin de réalisé une Procedure stockée qui fait tous en meme temps c'est à dire
    • 1- Selectionne les Produits Saisies dans la table VenteDetail
      2- Avant la suppression de ces produits je recupere la quantite
      c-a-d : QuantiteProduit <---- QuantiteProduit + QuantiteVendu.
      3- puis je supprime mon Bon de vente.

    Bon developpement.

  4. #4
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Salut,

    Tu dispose d'un tutoriel sur les procédures stockées sur developpez, celui devrait pouvoir t'aider : Introduction aux procédures stockées sous Interbase 6
    CV :
    - LinkedIn
    - Viadeo

  5. #5
    Membre actif Avatar de touhami
    Inscrit en
    Avril 2002
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 327
    Points : 264
    Points
    264
    Par défaut
    j'ai déja consulté cet excelent cour mais je ne voie pas ou est ce que tu as trouver mon besoin dans ce cours????

  6. #6
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Je croyais que tu cherchais à faire une procédure stockée...

    Pose nous une question précise, et nous tenterons d'y répondre.
    CV :
    - LinkedIn
    - Viadeo

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Je pense qu'un trigger serait plus adapté,
    A main levée ca devrait donner quelque chose comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TRIGGER Vente_Maitre_BD0 FOR Vente_Maitre
    ACTIVE BEFORE DELETE POSITION 0
    AS
    DECLARE VARIABLE CP Varchar(15);
    DECLARE VARIABLE QV Integer;
    BEGIN
      FOR SELECT CodeProduit, Qte_Vendu from Vente_Detail where NumeroFacture = OLD.NumeroFacture into :CP, :QV
      BEGIN
        UPDATE Produit SET Quantite = (Quantite + :QV) where CodeProd = :CP;
      END
    END
    Henri Gourvest
    http://www.progdigy.com

  8. #8
    Membre actif Avatar de touhami
    Inscrit en
    Avril 2002
    Messages
    327
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 327
    Points : 264
    Points
    264
    Par défaut
    Merci pour la reponse et je vais testé sur place.
    Bon developement a tous.

  9. #9
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Salut,

    Normalement, si tu as mis un Foreign Key sur NumeroFacture de vente_Detail qui reference NumeroFacture de vente _maitre avec suppression en Cascade, un simple delete de la ligne dans Vente_Maitre supprimera tous les enregistrements de Vente_Detail.
    Je te propose ce code :
    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
    17
    18
     
    CREATE PROCEDURE DELETE_FACTURE (
       PNUM_FACTURE INTEGER)
    RETURNS (
        QTE_VENDU INTEGER,
    AS
    BEGIN
    /* ICI EFFECTUE TA RECUPERATION DE QTE VENDU*/
     
    /*SI PAS DE FOREIGN KEY (cf cidessus) ON SUPPRIME LES LIGNES DANS 
    VENTE DETAIL*/
      DELETE FROM VENTE_DETAIL
      WHERE (NUMERODEFACTURE =  :PNUM_FACTURE);
     
    /*SUPPERSSION DE LA LIGNE DANS VENTE_MAITRE*/
      DELETE FROM VENTE_MAITRE
      WHERE (NUMERODEFACTURE =  :PNUM_FACTURE);
    END
    Je pense que cela suffira.

    A+
    On progresse .....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Aide pour réaliser une requete complexe
    Par zaghi dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/10/2012, 11h51
  2. De l'aide pour réaliser une multiplication
    Par boudwouat dans le forum x86 16-bits
    Réponses: 0
    Dernier message: 21/02/2012, 19h34
  3. Besoin d'aide pour réaliser une classe avec du css
    Par Winjet dans le forum Mise en page CSS
    Réponses: 29
    Dernier message: 24/04/2009, 11h01
  4. Réponses: 1
    Dernier message: 11/10/2007, 13h24
  5. [débutant] Aide pour mettre une FOREIGN KEY sur une table
    Par cauldron dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2004, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo