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

InterBase Discussion :

[INTERBASE 6.0] Procédures stockées


Sujet :

InterBase

  1. #1
    Membre régulier

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 142
    Points : 120
    Points
    120
    Par défaut [INTERBASE 6.0] Procédures stockées
    Bonjour à tous,

    Dans une procédure stockée (INTEBASE 6.0), comment contrôler la bonne exécution d'un ordre SQL ?
    Exemple : si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    INSERT INTO MA_TABLE ( CHAMP1, CHAMP2)
               VALUES( :CHAMP1, :CHAMP2);
    Comment s'assurer que l'insert s'est bien déroulé ?

    Excusez-moi pour cette question de syntaxe, mais je n'ai pas à disposition la doc INTERBASE.

    Autre chose : comment doit-on commiter un ordre SQL dans une procédure stockée ? Dans le tuto de Etienne Bar (ça, je peux le consulter !), je n'ai rien vu concernant ce point.

    Merci de votre réponse.

  2. #2
    Membre habitué Avatar de .:morgoth:.
    Profil pro
    Inscrit en
    Février 2005
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 124
    Points : 132
    Points
    132
    Par défaut
    >> A priori, s'il y a un probleme avec la requete, la procédure devrait se terminer et générer une erreur IB. Sinon tu peux toujours faire un SELECT juste derriere pour vérifier l'existence de la ligne dans la table.

    >> Pour commiter une requete, tu n'as qu'a exécuter la commande 'COMMIT;' à tous les endroits de ta proc stockée ou tu souhaites sauvegarder la transaction.

  3. #3
    Membre régulier

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

    Informations forums :
    Inscription : Décembre 2004
    Messages : 142
    Points : 120
    Points
    120
    Par défaut
    Merci de ta réponse. Je vais essayer.
    Merci aussi à Etienne Bar pour son tuto.

    A+

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Dans Interbase 6 on ne commit pas pas les procédures stoquées, seul l'application cliente peux débuter une transaction et donc la commiter ou annuler.

    Cependant lorqu'un ordre SQL dans une PS se termine mal (code erreur) par défaut toute la PS est annulée et le code erreur est remonté au client.


    Par contre il est possible de capturer les codes erreurs dans une PS afin de ne pas annuler ce qui a été fait précédemment ou exécuter une autre action.
    Il suffit d'utiliser When xxx nn do

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Create procedure Machin
    Begin
      Faire des trucs...non protégés
     
      Begin
        INSERT INTO MA_TABLE ( CHAMP1, CHAMP2) VALUES( 1, 'Toto');  
        INSERT INTO MA_TABLE ( CHAMP1, CHAMP2) VALUES( 1, 'Titi');  
        when SQLCODE -803 DO
          Le truc a faire si erreur 803;
      end
      Les trucs a faire en fin de PS qui seront exécutés même s'il y a une erreur -803 (primary key violation);
    end
    de mémoire et sans tester...

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

Discussions similaires

  1. [Interbase] Procédure stockée
    Par Morfus dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/09/2007, 15h54
  2. Réponses: 10
    Dernier message: 25/05/2007, 15h21
  3. [Delphi][Interbase] pb de procédures stockées
    Par 0rus59 dans le forum Bases de données
    Réponses: 4
    Dernier message: 18/07/2006, 13h53
  4. [Comparatif] Procédures stockées, triggers, etc.
    Par MCZz dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 28/08/2002, 12h27

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