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

Bases de données Delphi Discussion :

Delphi 2009 et trigger FireBird


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut Delphi 2009 et trigger FireBird
    Salut

    voilà, dans ma bd FireBird, j'ai créé un déclencheur dont je veux l'exploiter sous delphi lors d'insertion d'un nouvel enregistrement, ce déclencheur fait un petit calcul pour générer un code dont il doit être attribuer au nouvel enregistrement. mais comme je l'ai jamais fais auparavant je ne sais pas la démarche à suivre malgré que j'ai fais une petite recherche sur le net sauf que j'ai pas aboutit.

    je me retourne vers vous pour m'éclaircir. merci par avance.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    bonjour,
    Sous Delphi , rien , c'est le moteur de Firebird (ou d'une autre SGBDR) qui fait le travail . Un trigger , contrairement a une procedure n'a pas besoin d'être 'lancé'.

    Récupérer la valeur sous delphi , là par contre , c'est une autre paire de manches !!
    soit tes composants permettent les Querys INSERT récupérant des valeurs (fib 2.5) et alors tant mieux (très peu le permette)
    soit ce n'est pas le cas alors une relecture de l'enregistrement est nécessaire

  3. #3
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    bonjour,
    Sous Delphi , rien , c'est le moteur de Firebird (ou d'une autre SGBDR) qui fait le travail . Un trigger , contrairement a une procedure n'a pas besoin d'être 'lancé'.

    Récupérer la valeur sous delphi , là par contre , c'est une autre paire de manches !!
    soit tes composants permettent les Querys INSERT récupérant des valeurs (fib 2.5) et alors tant mieux (très peu le permette)
    soit ce n'est pas le cas alors une relecture de l'enregistrement est nécessaire
    oui c'est ce que je voulais dire récupérer la valeur du trigger pour pouvoir l'utiliser, donc si j'ai bien compris faudrait que le composant lui même le permette ! ok, je vais essayer avec les composants fib pourvu que je trouve la version qui marche avec delphi 2009.

    par contre j'ai pas bien saisis ta dernière phrase
    soit ce n'est pas le cas alors une relecture de l'enregistrement est nécessaire
    que veux-tu dire par relecture de l'enregistrement ? mon schéma est le suivant, lors d'un ajout je dois récupérer le code généré par le trigger donc l'enregistrement n'a pas encore été créé alors comment le relire sauf si tu parles d'autre chose

    merci par avance.

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    avec n'importe quel bon composant un INSERT ... RETURNING et c'est réglé

  5. #5
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Citation Envoyé par makowski Voir le message
    avec n'importe quel bon composant un INSERT ... RETURNING et c'est réglé
    alors là j'ai rien pigé
    d'abord le insert pour aboutir a besoin du code généré par le trigger dont je ne sais comment l'exécuter sous delphi donc je me demande qu'est ce qui est réglé ? sauf si tu permets de me simplifier les choses avec un bout de code ou un descriptif du comment.

    merci par avance.

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par Just-Soft Voir le message
    d'abord le insert pour aboutir a besoin du code généré par le trigger ...
    Non c'est là ton erreur de raisonnement.
    Lorsque tu fais un insert via une requête INSERT INTO ou via un DataSet (Insert/Append puis Post), le trigger Avant Insertion de ta table va se déclencher (tout seul comme un grand) et alimenter le code dont tu as besoin.

    Si tu passes par une requête INSERT INTO .. RETURNING, comme le suggère Philippe, (voir notes de version ici), tu peux lui demander de te renvoyer la valeur du code. (pas Philippe, l'Insert)

    @+ Claudius.

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par makowski Voir le message
    avec n'importe quel bon composant un INSERT ... RETURNING et c'est réglé
    Voilà le hic , les 'bons' composants ne sont pas légion

    que veux-tu dire par relecture de l'enregistrement ? mon schéma est le suivant, lors d'un ajout je dois récupérer le code généré par le trigger donc l'enregistrement n'a pas encore été créé
    je n'avais pas suivi le raisonnement jusqu'au bout

    [Délire non vérifié]
    Ceci dit , si c'est une seule valeur ca peut peut être se contourner en utilisant une 'variable' de Firebird et une interrogation sur RDB$DATABASE
    [/Délire matinal] je préfére quand même les 'bons' composants

  8. #8
    Membre Expert
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 157
    Par défaut
    bonjour

    pourquoi ne pas utiliser dans le trigger un POST_EVENT

    qui pourrait ensuite etre recupere l'info par un composant 'alert' ou event selon les distributeurs ?

    a+

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

Discussions similaires

  1. Réponses: 127
    Dernier message: 17/03/2014, 21h58
  2. Delphi 2009, FireBird et TIBDataBase
    Par Just-Soft dans le forum Bases de données
    Réponses: 24
    Dernier message: 16/02/2011, 12h07
  3. pb Delphi 2009 / UIB / firebird
    Par iznogoud_23 dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/02/2009, 09h26
  4. Qu'y a t-il dans delphi 2009
    Par BeTuLa dans le forum EDI
    Réponses: 17
    Dernier message: 05/09/2008, 08h46
  5. [DELPHI 2005-FB] Composant Firebird pour Delphi 2005 perso
    Par What dans le forum Bases de données
    Réponses: 6
    Dernier message: 25/05/2006, 13h06

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