Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Connexion aux bases de données
Connexion aux bases de données Forum d'entraide sur la connectivité Firebird: composants, drivers, transactions, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/12/2007, 20h50   #1
Membre actif
 
Inscription : décembre 2004
Messages : 294
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 294
Points : 199
Points : 199
Par défaut [Zeos] FB et trigger

Bonjour,

J'ai crée une table dans une DB FB avec un trigger Before Insert pour son ID (qui est généré par un générateur). Jusque là tout baigne.
Le pbm est qu'au post dans ma fiche delphi (à l'ajout d'un record), je reçois le message : Le champs ID doit avoir une valeur !

Je pensais que le trigger se chargeait de ce travail !

Une idée ???
Merci.
akli_agha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2007, 23h27   #2
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
C'est le cas !!!!

En fait, tout dépend de ta façon de travailler.

Avec des composant "data aware", la table est décrite, et il faut mentionner NULL pour le champ auto-incrémenté.

Avec un Query:
soit tu codes
Code :
INSERT INTO MaTable VALUES(....)
et on retombe dans le cas ci-dessus, puisque tu ne décris pas explicitement les colonnes.
soit tu codes
Code :
INSERT INTO MaTable col1,col2, col3 VALUES(....)
en ayant soin de ne pas mentionner la colonne auto-incrémentée, ni par son nom (genre col0) ni par sa valeur dans les values; et dans ce cas, ça doit marcher tout seul.
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 20h21   #3
Membre actif
 
Inscription : décembre 2004
Messages : 294
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 294
Points : 199
Points : 199
Merci gi130,

C'est vraii que j'ai omis des détails ! Sorry !

Au fait j'utilise un composant table de Zeos avec FB 2.0. Le problème est que mon champs ID se trouve être l'index de la table et donc not null.
Et là je comprends que le champs en question doit être informé avant le post. C'est ce que je fais. Je l'initialise à zéro (integer) et le trigger le remet à sa juste valeur en cas d'un insert.

Je pensais que les checks sur les champs se faisaient après le triggers-before.

Est-ce la meilleure solution ???
akli_agha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2007, 21h24   #4
Expert Confirmé
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Je ne sais pas si c'est la meilleure solution, mais:
1/ si elle marche, pourquoi en chercher une autre (le mieux est l'ennemi du bien!)
2/ existe t-il une autre solution ?
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2007, 15h54   #5
Membre actif
 
Inscription : décembre 2004
Messages : 294
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 294
Points : 199
Points : 199
Vous avez peut-être raison !

Le problème est que je suis novice en FB et je ne voudrais commencer sur de bonnes bases.
Si quelqu'un de plus expérimente a de meilleurs solutions à conseiller, pourquoi pas ??

En tout cas je vous remercie.
akli_agha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/01/2008, 10h09   #6
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
peut être que zeos permet de préciser que ton champ est un champ autoincrémenté ?
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h55.


 
 
 
 
Partenaires

Hébergement Web