Précédent   Forum du club des développeurs et IT Pro > Bases de données > Firebird > Débuter
Débuter Forum d'entraide pour débuter avec Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/11/2011, 13h50   #1
jojo86
Membre actif
 
Inscription : janvier 2007
Messages : 934
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 934
Points : 191
Points : 191
Par défaut IBEasy+ Triggers incrémente de 2 en 2

Bonjour, j'ai créé mes triggers et générateurs avec IBEsy + afin d'auto incrémenter mes champs ID.

Les incréments fonctionnent bien sauf qu'ils sont fait de 2 en 2...

Voici le code que j'ai mis sur mon trigger (Before Insert) :
Code :
1
2
3
4
AS
begin
     new.id = gen_id(GEN_INTER, 1);
end
Avez-vous une idée? Ca n'empêche pas ma base de fonctionner, mais j'aime bien comprendre...

Merci à vous !
jojo86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 14h13   #2
evarisnea
Rédacteur/Modérateur
 
Avatar de evarisnea
 
Homme Evaris NGOUZO
Ingénieur intégration
Inscription : juin 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Nom : Homme Evaris NGOUZO
Localisation : Cameroun

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Transports

Informations forums :
Inscription : juin 2005
Messages : 1 958
Points : 3 692
Points : 3 692


où effectues-tu tes insertions ? IBEasy ? ton application ?
en effectuant une insertion sous isql as-tu le même problème ?
evarisnea est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 20h10   #3
jojo86
Membre actif
 
Inscription : janvier 2007
Messages : 934
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 934
Points : 191
Points : 191
Salutation !

Que ce soit avec mon application ou avec IBEasy, j'ai le même soucis...
jojo86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 23h48   #4
Ph. B.
Expert Confirmé
 
Avatar de Ph. B.
 
Homme Philippe
Inscription : avril 2002
Messages : 1 032
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2002
Messages : 1 032
Points : 2 665
Points : 2 665
Envoyer un message via ICQ à Ph. B. Envoyer un message via Skype™ à Ph. B.
Tu n'aurais pas 2 déclencheurs ?
ou deux appels au générateur associé à la table avec un incrément de 1 (un dans le déclencheur, un dans une procédure stockée réalisant l'insertion ?
--
Philippe.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 07h42   #5
evarisnea
Rédacteur/Modérateur
 
Avatar de evarisnea
 
Homme Evaris NGOUZO
Ingénieur intégration
Inscription : juin 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Nom : Homme Evaris NGOUZO
Localisation : Cameroun

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Transports

Informations forums :
Inscription : juin 2005
Messages : 1 958
Points : 3 692
Points : 3 692
Citation:
Envoyé par evarisnea Voir le message
en effectuant une insertion sous isql as-tu le même problème ?
Citation:
Envoyé par Ph. B. Voir le message
Tu n'aurais pas 2 déclencheurs ?
evarisnea est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 12h56   #6
jojo86
Membre actif
 
Inscription : janvier 2007
Messages : 934
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 934
Points : 191
Points : 191
Citation:
Envoyé par Ph. B. Voir le message
Tu n'aurais pas 2 déclencheurs ?
ou deux appels au générateur associé à la table avec un incrément de 1 (un dans le déclencheur, un dans une procédure stockée réalisant l'insertion ?
--
Philippe.
2 declencheurs c'est la premiere chose a laquelle j'ai songé...
Mais je n'ai rien trouvé d'anormal...

C'est quoi que vous appeler isql?
jojo86 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 09h49   #7
evarisnea
Rédacteur/Modérateur
 
Avatar de evarisnea
 
Homme Evaris NGOUZO
Ingénieur intégration
Inscription : juin 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Nom : Homme Evaris NGOUZO
Localisation : Cameroun

Informations professionnelles :
Activité : Ingénieur intégration
Secteur : Transports

Informations forums :
Inscription : juin 2005
Messages : 1 958
Points : 3 692
Points : 3 692
isql est un utilitaire en mode texte qui est fourni avec firebird. il fournit une interface en ligne de commande pour la connexion aux bases de données firebird.
tu peux ainsi l'utiliser pour te connecter à ta base de données et exécuter une requête INSERT dessus.

http://www.firebirdsql.org/manual/isql.html
connexion à une base de données avec isql
exemple d'utilisation

ici l'intérêt d'utiliser l'outil est d'éliminer une erreur qui viendrait de ton application ou de IBEasy, afin que l'on sache si le problème concerne la base de données elle même.
evarisnea est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2011, 21h01   #8
Ph. B.
Expert Confirmé
 
Avatar de Ph. B.
 
Homme Philippe
Inscription : avril 2002
Messages : 1 032
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 46
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : avril 2002
Messages : 1 032
Points : 2 665
Points : 2 665
Envoyer un message via ICQ à Ph. B. Envoyer un message via Skype™ à Ph. B.
Bonjour,
Comment fais tu l'insertion ? Passes-tu par une procédure stockée qui incrémenterait le générateur, ce qui associé à l'incrémentation liée au déclencheur expliquerait ce pas de 2 ?

Sinon, as tu réalisé une trace de ce qui se produit dans la base ?

Ensuite, bien que je m'écarte du sujet, j'aurais écrit le déclencheur comme suit
Code :
1
2
3
4
5
AS
begin
  IF (new.id IS NULL) then
     new.id = gen_id(GEN_INTER, 1);
end
Cela permet de réaliser des insertions où la colonne id est défini par l'appelant et non automatiquement.
--
Philippe.
Ph. B. est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h03.


 
 
 
 
Partenaires

Hébergement Web