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 :

Probléme d'insertion par défault


Sujet :

SQL Firebird

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Probléme d'insertion par défault
    Bonjour

    J'ai une table avec Interbase 6.0 qui comporte un champ autoincrementé déclenché par un trigger et un champ boolean valeur 0 ou 1 valeur par defaut 1.

    Voilà le probléme:
    - Quand j'utilise la console d'interbase le trigger ne marche pas quand j'insére un enregistrement.

    -Quand j'uti:lise un outil pour dévelloper Interbase (EMS) le trigger marche et la valeur par défaut marche

    -Quand j'uti:lise Delphi ( par un IBTable) le trigger marche et la valeur par défaut ne marche pas.

    Ou ai je faux ?

    Xavier

  2. #2
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 70
    Points : 84
    Points
    84
    Par défaut
    Tu as peur qu'on ne voit pas ton message ? Au moins 5 fois le même message

    Pour ton problème, Avec IBConsole, ça marche, tu dois cliquer sur insert, tu entres tes données et tu cliques sur post et sur Commit&Refresh.

    Avec Delphi, ça dépend comme tu insères.

    Pourrait-on voir ton code Delphi qui fait l'insertion et le code de ton trigger ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    J'ai eu un probleme quand j'ai voulu envoyer le message "Temps de délai imparti"
    Voici le code du trigger
    /* Triggers only will work for SQL triggers */

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE TRIGGER "PATIENTID" FOR "PATIENTS" 
    ACTIVE BEFORE INSERT POSITION 0
    AS
    BEGIN
     
     new.id_patient = gen_id(id_patient_gen , 1);
    END
     ^
     
    COMMIT WORK ^
    SET TERM ;^
    et voici le code des bouitons
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    procedure TFO_Amnio1.BT_AjouterClick(Sender: TObject);
    begin
    DM_Principal.IB_TA_PATIENT.Open;
    DM_Principal.IB_TA_PATIENT.Insert;
     
     
    end;
     
    procedure TFO_Amnio1.BT_ValiderClick(Sender: TObject);
    begin
    DM_Principal.IB_TA_PATIENT.Post;
    DM_Principal.IB_TA_PATIENT.Refresh;
     
    end;

  4. #4
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 70
    Points : 84
    Points
    84
    Par défaut
    Allo,

    Ton trigger serait mieux écris ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TRIGGER "PATIENTID" FOR "PATIENTS" 
    ACTIVE BEFORE INSERT POSITION 0 
    AS 
    BEGIN 
       if (new.id_patient is null) then
          new.id_patient = gen_id(id_patient_gen , 1); 
    END
    Je n'utilise jamais IBTable et je viens de me rapeller qu'on n'utilise pas de requête SQL.

    Est-ce que tu remplis bien tes champs, en laissant le champs id_patient vide avant de faire ton insert ?

    Aussi, comment tu as créé ton champ booléen ? avec un domaine et en utilisant check et default ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 30
    Points : 19
    Points
    19
    Par défaut
    J'ai croisé le même genre de problèmes !

    http://www.developpez.net/forums/viewtopic.php?t=135016

  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Voilà le code du champ booleen


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE DOMAIN "DOM_BOOLEN" AS CHAR(1) CHARACTER SET ISO8859_1
    	  DEFAULT 0
    	 CHECK (VALUE BETWEEN '0' AND '1');
    Ce que je ne comprends pas c'est que ça marche avec EMS IBManager et pas avec la console d'Interbase et partiellment avec D7
    J'ai fait la modif cu trigger pas de changement

    Xavier

  7. #7
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 70
    Points : 84
    Points
    84
    Par défaut
    Si ça marche avec IBManager, ça fonctionne aussi avec IBConsole. Tu dois oublier d'appuyer sur un bouton. Tu fais insert, tu écris tes données, ensuite post. Tu fais commit & Refresh et tout devrais être OK. Essais de le faire par requête SQL à partir D'IBConsole.

  8. #8
    Futur Membre du Club
    Inscrit en
    Janvier 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour à tous

    Le rpobléme est résolu puisque
    1.J'uitlise la prorpiéte generatorField est maintenant je n'ai plus qucun probléme pour générer des champs auto incrémentes.
    2.Ce qui était manifestement à l'origine de l'absence de l'insertion de la valeur par défaut

    Xavier

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

Discussions similaires

  1. [MySQL] Problème d'insertion de champs par requête
    Par lpldtrllt dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/05/2009, 17h20
  2. Problème d'insertion de code par macro
    Par melouille56 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/01/2008, 20h31
  3. [Liste Modifiable] Problème avec la valeur par défault
    Par fusion_sadam dans le forum Access
    Réponses: 3
    Dernier message: 16/06/2006, 11h00
  4. Réponses: 28
    Dernier message: 24/05/2006, 18h20
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

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