Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 01/08/2007, 10h13   #1
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 80
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 80
Points : 15
Points : 15
Par défaut date du jour

Bonjour ,

mon post precedent n' inspirant personne , je prend le probleme sous un autre angle

comment est il possible de mettre la date du jour par defaut.

essai trigger non concluant

essai de mettre default CURRENT_DATE
message d' erreur "valeur incorrecte pour le champ date"


merci
Fred 57220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 11h01   #2
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
parce que ton code fonctionne
bien sûr en dialect 3, qui est la valeur normale et par défaut pour FB1.5
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 15h46   #3
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 80
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 80
Points : 15
Points : 15
Bonjour et merci

oui et c' est pour cela que je demande de l' aide.
j' ai un absolu besoin de mettre la date du jour lors de l' insertion ,
je peux bien sur le faire par programmation (Delphi) , mais je trouve plus sur et normal que cela soit fait par le moteur de DB.

comment le feriez vous ?


merci
Fred 57220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 17h12   #4
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
comme ça :
SET TERM ^ ;

CREATE TRIGGER "Trig_Date_MES_Pdc " FOR "Produit de coupe"
ACTIVE BEFORE INSERT POSITION 0
AS
begin
New."Date de mise en service" = CURRENT_DATE ;
end
^
COMMIT WORK ^
SET TERM ;^
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 17h25   #5
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
la preuve :

voici un fichier test.sql
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
CREATE DATABASE 'TEST.fdb';
CREATE TABLE "Produit de coupe"
(
"NomID" VarChar(30) NOT NULL ,
"Produit de coupe" VarChar(40) NOT NULL ,
"Date de mise en service" Date NOT NULL ,
"Date de mise hors service" Date ,
"Clef Excel" VarChar(3),
 
Constraint "SlPrimaryPdC" PRIMARY KEY ("NomID" ,"Produit de coupe" , "Date de mise en service") 
) ;
COMMIT;
 
SET TERM ^ ;
 
CREATE TRIGGER "Trig_Date_MES_Pdc " FOR "Produit de coupe"
ACTIVE BEFORE INSERT POSITION 0
AS
begin
New."Date de mise en service" = CURRENT_DATE ;
end
^
COMMIT WORK ^
SET TERM ;^
 
INSERT INTO "Produit de coupe" ("NomID","Produit de coupe") VALUES ('a','a');
COMMIT;
SELECT "Date de mise en service" FROM  "Produit de coupe" WHERE "NomID" = 'a';
et voici la sortie écran :
Code :
1
2
3
4
5
6
7
8
9
10
C:\Program Files\Firebird\Firebird_1_5\bin>isql -u SYSDBA -p masterkey
USE CONNECT OR CREATE DATABASE TO specify a DATABASE
SQL> input test.sql;
 
Date de mise en service
=======================
 
2007-08-01
 
SQL>
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 19h41   #6
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 80
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 80
Points : 15
Points : 15
Par défaut Date du juour (suite)

je suis bien d' accord sur le code , mais

ci joint deux copies d' ecran.

Merci
Images attachées
Type de fichier : jpg Table.JPG (62,1 Ko, 12 affichages)
Type de fichier : jpg Erreur.JPG (44,8 Ko, 13 affichages)
Fred 57220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 21h34   #7
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
certes, mais ça c'est un pb IBEasy+, pas un problème Firebird
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 21h52   #8
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 80
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 80
Points : 15
Points : 15
s' est ce que que pensé aussi

mais dans Delphi , j' ai aussi le probleme
Images attachées
Type de fichier : jpg Erreur Delphi.JPG (57,0 Ko, 9 affichages)
Fred 57220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 22h46   #9
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2006
Messages : 435
Points : 347
Points : 347
Mettez la propriété "Required" du composant TField relié au champs "Date de mise en service" a False.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 10h06   #10
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 80
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 80
Points : 15
Points : 15
Bonjour

merci , cela fonctionne la date n' apparait pas lorsque je fais un post , mais que lorsque je fais un refresh

est ce normal ?
Fred 57220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 14h00   #11
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
oui, tu n'as qu'à forcer le refresh après le post
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 14h28   #12
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 80
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 80
Points : 15
Points : 15
oui , je peux

mais lorsque un technicien ajoute un nouveau produit au process
il faut que la date apparaisse sinon , il va croire qu' il n' y a pas de date.

donc le plus simple est que je la mette par prg

enfin merci , j' ai appris des choses et c' est cela l' essentielle.
Fred 57220 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/08/2007, 16h02   #13
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
mais non
post
refresh
et basta
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 21h08   #14
Membre Expert
 
Avatar de edam
 
Inscription : décembre 2003
Messages : 1 716
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 716
Points : 1 783
Points : 1 783
Citation:
Envoyé par makowski
comme ça :
SET TERM ^ ;

CREATE TRIGGER "Trig_Date_MES_Pdc " FOR "Produit de coupe"
ACTIVE BEFORE INSERT POSITION 0
AS
begin
New."Date de mise en service" = CURRENT_DATE ;
end
^
COMMIT WORK ^
SET TERM ;^
makowski, sa serat pas mieux si ce trigger est "ACTIVE affter INSERT "
__________________
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
edam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2007, 00h30   #15
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
Citation:
Envoyé par edam
makowski, sa serat pas mieux si ce trigger est "ACTIVE affter INSERT "
la bonne blague

révise ton sql
un after Insert ne modifie pas les données de la table, par définition
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 22h28   #16
Membre Expert
 
Avatar de edam
 
Inscription : décembre 2003
Messages : 1 716
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 716
Points : 1 783
Points : 1 783
Citation:
Envoyé par makowski
la bonne blague

révise ton sql
un after Insert ne modifie pas les données de la table, par définition
La vérité, j'ai jamais utilisé les trigger , mais en Delphi les données ne peut êtres changer dans onbefor, c'est pourquoi j'ai posé la question,mais je serais très heureux d'expliqué, merci
__________________
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
edam est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h30.


 
 
 
 
Partenaires

Hébergement Web