J'ai créé une procédure qui normalement devrait contrôler si le temps de
travail de la journée d'un utilisateur est supérieur à un jour. Mais voila
dés que l'ensemble de la base à atteint 1. La procédure me renvoi
systématiquement une valeur Null quelque soit la date au lieu du temps de
travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
tout les sens rien a faire. Manuellement dans l'annalyseur de requette ca
marche en procedure stokée ça ne marche plus.
Vous trouverez ci-dessous mon script SQL.
Je vous remercie par avance de l'aide que vous pourriez m'apporter.
Cordialement,
ALTER Procedure spI_T_Saisie_Employes
(
@Jour [smalldatetime]
, @Temps_travail [float]
, @Id_Utilisateur [int]
, @Id_Affaire [int]
, @Id_Phase [int]
, @Id_Qualification [int]
, @Id_Secteur [int]
, @Id_Echelon [int]
)
As begin
Declare @Times float
set @Times=(SELECT SUM(Temps_travail) AS "Times"
FROM T_Saisie_Employes
WHERE (Jour = @jour) AND (Id_Utilisateur > @Id_Utilisateur))
If @Times < 1
Begin
Insert Into [dbo].[T_Saisie_Employes]
(
[Jour]
, [Temps_travail]
, [Id_Utilisateur]
, [Id_Affaire]
, [Id_Phase]
, [Id_Qualification]
, [Id_Secteur]
, [Id_Echelon]
)
Values
(
@Jour
, @Temps_travail
, @Id_Utilisateur
, @Id_Affaire
, @Id_Phase
, @Id_Qualification
, @Id_Secteur
, @Id_Echelon
)
Declare @Id_Saisie_Employes [int]
Set @Id_Saisie_Employes = @@IDENTITY
Return @Id_Saisie_Employes
End Else Begin
Return 0
End
End
J'ai créé une procédure qui normalement devrait contrôler si le temps de
travail de la journée d'un utilisateur est supérieur à un jour. Mais voila
dés que l'ensemble de la base à atteint 1. La procédure me renvoi
systématiquement une valeur Null quelque soit la date au lieu du temps de
travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
tout les sens rien a faire. Manuellement dans l'annalyseur de requette ca
marche en procedure stokée ça ne marche plus.
Vous trouverez ci-dessous mon script SQL.
Je vous remercie par avance de l'aide que vous pourriez m'apporter.
Cordialement,
ALTER Procedure spI_T_Saisie_Employes
(
@Jour [smalldatetime]
, @Temps_travail [float]
, @Id_Utilisateur [int]
, @Id_Affaire [int]
, @Id_Phase [int]
, @Id_Qualification [int]
, @Id_Secteur [int]
, @Id_Echelon [int]
)
As begin
Declare @Times float
set @Times=(SELECT SUM(Temps_travail) AS "Times"
FROM T_Saisie_Employes
WHERE (Jour = @jour) AND (Id_Utilisateur > @Id_Utilisateur))
If @Times < 1
Begin
Insert Into [dbo].[T_Saisie_Employes]
(
[Jour]
, [Temps_travail]
, [Id_Utilisateur]
, [Id_Affaire]
, [Id_Phase]
, [Id_Qualification]
, [Id_Secteur]
, [Id_Echelon]
)
Values
(
@Jour
, @Temps_travail
, @Id_Utilisateur
, @Id_Affaire
, @Id_Phase
, @Id_Qualification
, @Id_Secteur
, @Id_Echelon
)
Declare @Id_Saisie_Employes [int]
Set @Id_Saisie_Employes = @@IDENTITY
Return @Id_Saisie_Employes
End Else Begin
Return 0
End
End
J'ai créé une procédure qui normalement devrait contrôler si le temps de
travail de la journée d'un utilisateur est supérieur à un jour. Mais voila
dés que l'ensemble de la base à atteint 1. La procédure me renvoi
systématiquement une valeur Null quelque soit la date au lieu du temps de
travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
tout les sens rien a faire. Manuellement dans l'annalyseur de requette ca
marche en procedure stokée ça ne marche plus.
Vous trouverez ci-dessous mon script SQL.
Je vous remercie par avance de l'aide que vous pourriez m'apporter.
Cordialement,
ALTER Procedure spI_T_Saisie_Employes
(
@Jour [smalldatetime]
, @Temps_travail [float]
, @Id_Utilisateur [int]
, @Id_Affaire [int]
, @Id_Phase [int]
, @Id_Qualification [int]
, @Id_Secteur [int]
, @Id_Echelon [int]
)
As begin
Declare @Times float
set @Times=(SELECT SUM(Temps_travail) AS "Times"
FROM T_Saisie_Employes
WHERE (Jour = @jour) AND (Id_Utilisateur > @Id_Utilisateur))
If @Times < 1
Begin
Insert Into [dbo].[T_Saisie_Employes]
(
[Jour]
, [Temps_travail]
, [Id_Utilisateur]
, [Id_Affaire]
, [Id_Phase]
, [Id_Qualification]
, [Id_Secteur]
, [Id_Echelon]
)
Values
(
@Jour
, @Temps_travail
, @Id_Utilisateur
, @Id_Affaire
, @Id_Phase
, @Id_Qualification
, @Id_Secteur
, @Id_Echelon
)
Declare @Id_Saisie_Employes [int]
Set @Id_Saisie_Employes = @@IDENTITY
Return @Id_Saisie_Employes
End Else Begin
Return 0
End
End
Bonjour,
une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
trouver une soustraction entre une date de début et une data de fin de
de travail ensuite en extrayant la partie jours on aurait vu de suite si
personne avait travaillé plus d'une journée d'après cette procédure stocké
le champs Temps _travail semble enregistrer sous forme d'un float le
d'heure travaillé (ou un autre intervalle de temps minute seconde etc etc)
donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de mal
saisir le mode de calcul cela étant pour ma part le
Declare @Id_Saisie_Employes [int]
je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
stock cela ne soit pas considéré comme une instruction sql (même si on est
d'accord cela ne doit pas influencer le @@IDENTITY)
que voulez vous dire par "La procédure me renvoi systématiquement une
Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
dans le else or si la base atteint 1 du fait de votre condition la proc
stock doit renvoyer 0 (cf <1 et non <=1)
Avec quelques précisions il serait plus évident de vous répondre je
Sebastien
"Daniel Amaury" a écrit dans le
message de news:
> J'ai créé une procédure qui normalement devrait contrôler si le temps de
> travail de la journée d'un utilisateur est supérieur à un jour. Mais
> dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> systématiquement une valeur Null quelque soit la date au lieu du temps
> travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
dans
> tout les sens rien a faire. Manuellement dans l'annalyseur de requette
> marche en procedure stokée ça ne marche plus.
>
>
>
> Vous trouverez ci-dessous mon script SQL.
>
>
>
> Je vous remercie par avance de l'aide que vous pourriez m'apporter.
>
>
>
> Cordialement,
>
> ALTER Procedure spI_T_Saisie_Employes
>
> (
> @Jour [smalldatetime]
> , @Temps_travail [float]
> , @Id_Utilisateur [int]
> , @Id_Affaire [int]
> , @Id_Phase [int]
> , @Id_Qualification [int]
> , @Id_Secteur [int]
> , @Id_Echelon [int]
> )
>
> As begin
>
> Declare @Times float
> set @Times=(SELECT SUM(Temps_travail) AS "Times"
> FROM T_Saisie_Employes
> WHERE (Jour = @jour) AND (Id_Utilisateur > > @Id_Utilisateur))
>
> If @Times < 1
> Begin
> Insert Into [dbo].[T_Saisie_Employes]
>
> (
> [Jour]
> , [Temps_travail]
> , [Id_Utilisateur]
> , [Id_Affaire]
> , [Id_Phase]
> , [Id_Qualification]
> , [Id_Secteur]
> , [Id_Echelon]
> )
>
> Values
>
> (
> @Jour
> , @Temps_travail
> , @Id_Utilisateur
> , @Id_Affaire
> , @Id_Phase
> , @Id_Qualification
> , @Id_Secteur
> , @Id_Echelon
> )
>
>
> Declare @Id_Saisie_Employes [int]
> Set @Id_Saisie_Employes = @@IDENTITY
> Return @Id_Saisie_Employes
>
> End Else Begin
>
> Return 0
>
> End
> End
>
>
Bonjour,
une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
trouver une soustraction entre une date de début et une data de fin de
de travail ensuite en extrayant la partie jours on aurait vu de suite si
personne avait travaillé plus d'une journée d'après cette procédure stocké
le champs Temps _travail semble enregistrer sous forme d'un float le
d'heure travaillé (ou un autre intervalle de temps minute seconde etc etc)
donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de mal
saisir le mode de calcul cela étant pour ma part le
Declare @Id_Saisie_Employes [int]
je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
stock cela ne soit pas considéré comme une instruction sql (même si on est
d'accord cela ne doit pas influencer le @@IDENTITY)
que voulez vous dire par "La procédure me renvoi systématiquement une
Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
dans le else or si la base atteint 1 du fait de votre condition la proc
stock doit renvoyer 0 (cf <1 et non <=1)
Avec quelques précisions il serait plus évident de vous répondre je
Sebastien
"Daniel Amaury" <daniel.amaury_Pas_de_Spam@coplan.fr> a écrit dans le
message de news:OQX2qOCZEHA.3464@TK2MSFTNGP11.phx.gbl...
> J'ai créé une procédure qui normalement devrait contrôler si le temps de
> travail de la journée d'un utilisateur est supérieur à un jour. Mais
> dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> systématiquement une valeur Null quelque soit la date au lieu du temps
> travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
dans
> tout les sens rien a faire. Manuellement dans l'annalyseur de requette
> marche en procedure stokée ça ne marche plus.
>
>
>
> Vous trouverez ci-dessous mon script SQL.
>
>
>
> Je vous remercie par avance de l'aide que vous pourriez m'apporter.
>
>
>
> Cordialement,
>
> ALTER Procedure spI_T_Saisie_Employes
>
> (
> @Jour [smalldatetime]
> , @Temps_travail [float]
> , @Id_Utilisateur [int]
> , @Id_Affaire [int]
> , @Id_Phase [int]
> , @Id_Qualification [int]
> , @Id_Secteur [int]
> , @Id_Echelon [int]
> )
>
> As begin
>
> Declare @Times float
> set @Times=(SELECT SUM(Temps_travail) AS "Times"
> FROM T_Saisie_Employes
> WHERE (Jour = @jour) AND (Id_Utilisateur > > @Id_Utilisateur))
>
> If @Times < 1
> Begin
> Insert Into [dbo].[T_Saisie_Employes]
>
> (
> [Jour]
> , [Temps_travail]
> , [Id_Utilisateur]
> , [Id_Affaire]
> , [Id_Phase]
> , [Id_Qualification]
> , [Id_Secteur]
> , [Id_Echelon]
> )
>
> Values
>
> (
> @Jour
> , @Temps_travail
> , @Id_Utilisateur
> , @Id_Affaire
> , @Id_Phase
> , @Id_Qualification
> , @Id_Secteur
> , @Id_Echelon
> )
>
>
> Declare @Id_Saisie_Employes [int]
> Set @Id_Saisie_Employes = @@IDENTITY
> Return @Id_Saisie_Employes
>
> End Else Begin
>
> Return 0
>
> End
> End
>
>
Bonjour,
une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
trouver une soustraction entre une date de début et une data de fin de
de travail ensuite en extrayant la partie jours on aurait vu de suite si
personne avait travaillé plus d'une journée d'après cette procédure stocké
le champs Temps _travail semble enregistrer sous forme d'un float le
d'heure travaillé (ou un autre intervalle de temps minute seconde etc etc)
donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de mal
saisir le mode de calcul cela étant pour ma part le
Declare @Id_Saisie_Employes [int]
je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
stock cela ne soit pas considéré comme une instruction sql (même si on est
d'accord cela ne doit pas influencer le @@IDENTITY)
que voulez vous dire par "La procédure me renvoi systématiquement une
Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
dans le else or si la base atteint 1 du fait de votre condition la proc
stock doit renvoyer 0 (cf <1 et non <=1)
Avec quelques précisions il serait plus évident de vous répondre je
Sebastien
"Daniel Amaury" a écrit dans le
message de news:
> J'ai créé une procédure qui normalement devrait contrôler si le temps de
> travail de la journée d'un utilisateur est supérieur à un jour. Mais
> dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> systématiquement une valeur Null quelque soit la date au lieu du temps
> travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
dans
> tout les sens rien a faire. Manuellement dans l'annalyseur de requette
> marche en procedure stokée ça ne marche plus.
>
>
>
> Vous trouverez ci-dessous mon script SQL.
>
>
>
> Je vous remercie par avance de l'aide que vous pourriez m'apporter.
>
>
>
> Cordialement,
>
> ALTER Procedure spI_T_Saisie_Employes
>
> (
> @Jour [smalldatetime]
> , @Temps_travail [float]
> , @Id_Utilisateur [int]
> , @Id_Affaire [int]
> , @Id_Phase [int]
> , @Id_Qualification [int]
> , @Id_Secteur [int]
> , @Id_Echelon [int]
> )
>
> As begin
>
> Declare @Times float
> set @Times=(SELECT SUM(Temps_travail) AS "Times"
> FROM T_Saisie_Employes
> WHERE (Jour = @jour) AND (Id_Utilisateur > > @Id_Utilisateur))
>
> If @Times < 1
> Begin
> Insert Into [dbo].[T_Saisie_Employes]
>
> (
> [Jour]
> , [Temps_travail]
> , [Id_Utilisateur]
> , [Id_Affaire]
> , [Id_Phase]
> , [Id_Qualification]
> , [Id_Secteur]
> , [Id_Echelon]
> )
>
> Values
>
> (
> @Jour
> , @Temps_travail
> , @Id_Utilisateur
> , @Id_Affaire
> , @Id_Phase
> , @Id_Qualification
> , @Id_Secteur
> , @Id_Echelon
> )
>
>
> Declare @Id_Saisie_Employes [int]
> Set @Id_Saisie_Employes = @@IDENTITY
> Return @Id_Saisie_Employes
>
> End Else Begin
>
> Return 0
>
> End
> End
>
>
En fait cette procédure contrôle au moment de la saisie les informations
travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée à
la fois.
Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,75 - 1
Si les valeur saisie dans la journée son supérieur à 1 (somme du temps de
journée + le temps saisie), le système doit me retourné la valeur 0
Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
temps saisie), le système doit insérer le donnée et me renvoyer ID de
l'enregistrement.
La valeur retournée est vide le retur est égale soit à 0 soit à rien.
Je te remercie de te préoccuper de mon problème et je suis prés a refaire
complétement ma procédure si il y a une meilleur solution.
Cordialement,
a écrit dans le message de
news:e8i%
> Bonjour,
>
> une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
> trouver une soustraction entre une date de début et une data de fin de
temps
> de travail ensuite en extrayant la partie jours on aurait vu de suite si
la
> personne avait travaillé plus d'une journée d'après cette procédure
> le champs Temps _travail semble enregistrer sous forme d'un float le
nombre
> d'heure travaillé (ou un autre intervalle de temps minute seconde etc
> donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
travaillé
> un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
à
> saisir le mode de calcul cela étant pour ma part le
>
> Declare @Id_Saisie_Employes [int]
>
> je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
proc
> stock cela ne soit pas considéré comme une instruction sql (même si on
> d'accord cela ne doit pas influencer le @@IDENTITY)
>
> que voulez vous dire par "La procédure me renvoi systématiquement une
valeur
> Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
return
> dans le else or si la base atteint 1 du fait de votre condition la proc
> stock doit renvoyer 0 (cf <1 et non <=1)
>
> Avec quelques précisions il serait plus évident de vous répondre je
penses.
>
> Sebastien
>
>
> "Daniel Amaury" a écrit dans le
> message de news:
> > J'ai créé une procédure qui normalement devrait contrôler si le temps
> > travail de la journée d'un utilisateur est supérieur à un jour. Mais
voila
> > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > systématiquement une valeur Null quelque soit la date au lieu du temps
de
> > travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
> dans
> > tout les sens rien a faire. Manuellement dans l'annalyseur de requette
ca
> > marche en procedure stokée ça ne marche plus.
> >
> >
> >
> > Vous trouverez ci-dessous mon script SQL.
> >
> >
> >
> > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> >
> >
> >
> > Cordialement,
> >
> > ALTER Procedure spI_T_Saisie_Employes
> >
> > (
> > @Jour [smalldatetime]
> > , @Temps_travail [float]
> > , @Id_Utilisateur [int]
> > , @Id_Affaire [int]
> > , @Id_Phase [int]
> > , @Id_Qualification [int]
> > , @Id_Secteur [int]
> > , @Id_Echelon [int]
> > )
> >
> > As begin
> >
> > Declare @Times float
> > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > FROM T_Saisie_Employes
> > WHERE (Jour = @jour) AND (Id_Utilisateur > > > @Id_Utilisateur))
> >
> > If @Times < 1
> > Begin
> > Insert Into [dbo].[T_Saisie_Employes]
> >
> > (
> > [Jour]
> > , [Temps_travail]
> > , [Id_Utilisateur]
> > , [Id_Affaire]
> > , [Id_Phase]
> > , [Id_Qualification]
> > , [Id_Secteur]
> > , [Id_Echelon]
> > )
> >
> > Values
> >
> > (
> > @Jour
> > , @Temps_travail
> > , @Id_Utilisateur
> > , @Id_Affaire
> > , @Id_Phase
> > , @Id_Qualification
> > , @Id_Secteur
> > , @Id_Echelon
> > )
> >
> >
> > Declare @Id_Saisie_Employes [int]
> > Set @Id_Saisie_Employes = @@IDENTITY
> > Return @Id_Saisie_Employes
> >
> > End Else Begin
> >
> > Return 0
> >
> > End
> > End
> >
> >
>
>
En fait cette procédure contrôle au moment de la saisie les informations
travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée à
la fois.
Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,75 - 1
Si les valeur saisie dans la journée son supérieur à 1 (somme du temps de
journée + le temps saisie), le système doit me retourné la valeur 0
Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
temps saisie), le système doit insérer le donnée et me renvoyer ID de
l'enregistrement.
La valeur retournée est vide le retur est égale soit à 0 soit à rien.
Je te remercie de te préoccuper de mon problème et je suis prés a refaire
complétement ma procédure si il y a une meilleur solution.
Cordialement,
<sebastien981_nospam@hotmail.com> a écrit dans le message de
news:e8i%23UbCZEHA.2432@tk2msftngp13.phx.gbl...
> Bonjour,
>
> une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
> trouver une soustraction entre une date de début et une data de fin de
temps
> de travail ensuite en extrayant la partie jours on aurait vu de suite si
la
> personne avait travaillé plus d'une journée d'après cette procédure
> le champs Temps _travail semble enregistrer sous forme d'un float le
nombre
> d'heure travaillé (ou un autre intervalle de temps minute seconde etc
> donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
travaillé
> un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
à
> saisir le mode de calcul cela étant pour ma part le
>
> Declare @Id_Saisie_Employes [int]
>
> je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
proc
> stock cela ne soit pas considéré comme une instruction sql (même si on
> d'accord cela ne doit pas influencer le @@IDENTITY)
>
> que voulez vous dire par "La procédure me renvoi systématiquement une
valeur
> Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
return
> dans le else or si la base atteint 1 du fait de votre condition la proc
> stock doit renvoyer 0 (cf <1 et non <=1)
>
> Avec quelques précisions il serait plus évident de vous répondre je
penses.
>
> Sebastien
>
>
> "Daniel Amaury" <daniel.amaury_Pas_de_Spam@coplan.fr> a écrit dans le
> message de news:OQX2qOCZEHA.3464@TK2MSFTNGP11.phx.gbl...
> > J'ai créé une procédure qui normalement devrait contrôler si le temps
> > travail de la journée d'un utilisateur est supérieur à un jour. Mais
voila
> > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > systématiquement une valeur Null quelque soit la date au lieu du temps
de
> > travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
> dans
> > tout les sens rien a faire. Manuellement dans l'annalyseur de requette
ca
> > marche en procedure stokée ça ne marche plus.
> >
> >
> >
> > Vous trouverez ci-dessous mon script SQL.
> >
> >
> >
> > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> >
> >
> >
> > Cordialement,
> >
> > ALTER Procedure spI_T_Saisie_Employes
> >
> > (
> > @Jour [smalldatetime]
> > , @Temps_travail [float]
> > , @Id_Utilisateur [int]
> > , @Id_Affaire [int]
> > , @Id_Phase [int]
> > , @Id_Qualification [int]
> > , @Id_Secteur [int]
> > , @Id_Echelon [int]
> > )
> >
> > As begin
> >
> > Declare @Times float
> > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > FROM T_Saisie_Employes
> > WHERE (Jour = @jour) AND (Id_Utilisateur > > > @Id_Utilisateur))
> >
> > If @Times < 1
> > Begin
> > Insert Into [dbo].[T_Saisie_Employes]
> >
> > (
> > [Jour]
> > , [Temps_travail]
> > , [Id_Utilisateur]
> > , [Id_Affaire]
> > , [Id_Phase]
> > , [Id_Qualification]
> > , [Id_Secteur]
> > , [Id_Echelon]
> > )
> >
> > Values
> >
> > (
> > @Jour
> > , @Temps_travail
> > , @Id_Utilisateur
> > , @Id_Affaire
> > , @Id_Phase
> > , @Id_Qualification
> > , @Id_Secteur
> > , @Id_Echelon
> > )
> >
> >
> > Declare @Id_Saisie_Employes [int]
> > Set @Id_Saisie_Employes = @@IDENTITY
> > Return @Id_Saisie_Employes
> >
> > End Else Begin
> >
> > Return 0
> >
> > End
> > End
> >
> >
>
>
En fait cette procédure contrôle au moment de la saisie les informations
travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée à
la fois.
Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,75 - 1
Si les valeur saisie dans la journée son supérieur à 1 (somme du temps de
journée + le temps saisie), le système doit me retourné la valeur 0
Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
temps saisie), le système doit insérer le donnée et me renvoyer ID de
l'enregistrement.
La valeur retournée est vide le retur est égale soit à 0 soit à rien.
Je te remercie de te préoccuper de mon problème et je suis prés a refaire
complétement ma procédure si il y a une meilleur solution.
Cordialement,
a écrit dans le message de
news:e8i%
> Bonjour,
>
> une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
> trouver une soustraction entre une date de début et une data de fin de
temps
> de travail ensuite en extrayant la partie jours on aurait vu de suite si
la
> personne avait travaillé plus d'une journée d'après cette procédure
> le champs Temps _travail semble enregistrer sous forme d'un float le
nombre
> d'heure travaillé (ou un autre intervalle de temps minute seconde etc
> donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
travaillé
> un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
à
> saisir le mode de calcul cela étant pour ma part le
>
> Declare @Id_Saisie_Employes [int]
>
> je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
proc
> stock cela ne soit pas considéré comme une instruction sql (même si on
> d'accord cela ne doit pas influencer le @@IDENTITY)
>
> que voulez vous dire par "La procédure me renvoi systématiquement une
valeur
> Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
return
> dans le else or si la base atteint 1 du fait de votre condition la proc
> stock doit renvoyer 0 (cf <1 et non <=1)
>
> Avec quelques précisions il serait plus évident de vous répondre je
penses.
>
> Sebastien
>
>
> "Daniel Amaury" a écrit dans le
> message de news:
> > J'ai créé une procédure qui normalement devrait contrôler si le temps
> > travail de la journée d'un utilisateur est supérieur à un jour. Mais
voila
> > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > systématiquement une valeur Null quelque soit la date au lieu du temps
de
> > travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
> dans
> > tout les sens rien a faire. Manuellement dans l'annalyseur de requette
ca
> > marche en procedure stokée ça ne marche plus.
> >
> >
> >
> > Vous trouverez ci-dessous mon script SQL.
> >
> >
> >
> > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> >
> >
> >
> > Cordialement,
> >
> > ALTER Procedure spI_T_Saisie_Employes
> >
> > (
> > @Jour [smalldatetime]
> > , @Temps_travail [float]
> > , @Id_Utilisateur [int]
> > , @Id_Affaire [int]
> > , @Id_Phase [int]
> > , @Id_Qualification [int]
> > , @Id_Secteur [int]
> > , @Id_Echelon [int]
> > )
> >
> > As begin
> >
> > Declare @Times float
> > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > FROM T_Saisie_Employes
> > WHERE (Jour = @jour) AND (Id_Utilisateur > > > @Id_Utilisateur))
> >
> > If @Times < 1
> > Begin
> > Insert Into [dbo].[T_Saisie_Employes]
> >
> > (
> > [Jour]
> > , [Temps_travail]
> > , [Id_Utilisateur]
> > , [Id_Affaire]
> > , [Id_Phase]
> > , [Id_Qualification]
> > , [Id_Secteur]
> > , [Id_Echelon]
> > )
> >
> > Values
> >
> > (
> > @Jour
> > , @Temps_travail
> > , @Id_Utilisateur
> > , @Id_Affaire
> > , @Id_Phase
> > , @Id_Qualification
> > , @Id_Secteur
> > , @Id_Echelon
> > )
> >
> >
> > Declare @Id_Saisie_Employes [int]
> > Set @Id_Saisie_Employes = @@IDENTITY
> > Return @Id_Saisie_Employes
> >
> > End Else Begin
> >
> > Return 0
> >
> > End
> > End
> >
> >
>
>
En fait cette procédure contrôle au moment de la saisie les informations
travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée à
la fois.
Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,75 - 1
Si les valeur saisie dans la journée son supérieur à 1 (somme du temps de
journée + le temps saisie), le système doit me retourné la valeur 0
Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
temps saisie), le système doit insérer le donnée et me renvoyer ID de
l'enregistrement.
La valeur retournée est vide le retur est égale soit à 0 soit à rien.
Je te remercie de te préoccuper de mon problème et je suis prés a refaire
complétement ma procédure si il y a une meilleur solution.
Cordialement,
a écrit dans le message de
news:e8i%
> Bonjour,
>
> une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
> trouver une soustraction entre une date de début et une data de fin de
temps
> de travail ensuite en extrayant la partie jours on aurait vu de suite si
la
> personne avait travaillé plus d'une journée d'après cette procédure
> le champs Temps _travail semble enregistrer sous forme d'un float le
nombre
> d'heure travaillé (ou un autre intervalle de temps minute seconde etc
> donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
travaillé
> un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
à
> saisir le mode de calcul cela étant pour ma part le
>
> Declare @Id_Saisie_Employes [int]
>
> je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
proc
> stock cela ne soit pas considéré comme une instruction sql (même si on
> d'accord cela ne doit pas influencer le @@IDENTITY)
>
> que voulez vous dire par "La procédure me renvoi systématiquement une
valeur
> Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
return
> dans le else or si la base atteint 1 du fait de votre condition la proc
> stock doit renvoyer 0 (cf <1 et non <=1)
>
> Avec quelques précisions il serait plus évident de vous répondre je
penses.
>
> Sebastien
>
>
> "Daniel Amaury" a écrit dans le
> message de news:
> > J'ai créé une procédure qui normalement devrait contrôler si le temps
> > travail de la journée d'un utilisateur est supérieur à un jour. Mais
voila
> > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > systématiquement une valeur Null quelque soit la date au lieu du temps
de
> > travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
> dans
> > tout les sens rien a faire. Manuellement dans l'annalyseur de requette
ca
> > marche en procedure stokée ça ne marche plus.
> >
> >
> >
> > Vous trouverez ci-dessous mon script SQL.
> >
> >
> >
> > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> >
> >
> >
> > Cordialement,
> >
> > ALTER Procedure spI_T_Saisie_Employes
> >
> > (
> > @Jour [smalldatetime]
> > , @Temps_travail [float]
> > , @Id_Utilisateur [int]
> > , @Id_Affaire [int]
> > , @Id_Phase [int]
> > , @Id_Qualification [int]
> > , @Id_Secteur [int]
> > , @Id_Echelon [int]
> > )
> >
> > As begin
> >
> > Declare @Times float
> > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > FROM T_Saisie_Employes
> > WHERE (Jour = @jour) AND (Id_Utilisateur > > > @Id_Utilisateur))
> >
> > If @Times < 1
> > Begin
> > Insert Into [dbo].[T_Saisie_Employes]
> >
> > (
> > [Jour]
> > , [Temps_travail]
> > , [Id_Utilisateur]
> > , [Id_Affaire]
> > , [Id_Phase]
> > , [Id_Qualification]
> > , [Id_Secteur]
> > , [Id_Echelon]
> > )
> >
> > Values
> >
> > (
> > @Jour
> > , @Temps_travail
> > , @Id_Utilisateur
> > , @Id_Affaire
> > , @Id_Phase
> > , @Id_Qualification
> > , @Id_Secteur
> > , @Id_Echelon
> > )
> >
> >
> > Declare @Id_Saisie_Employes [int]
> > Set @Id_Saisie_Employes = @@IDENTITY
> > Return @Id_Saisie_Employes
> >
> > End Else Begin
> >
> > Return 0
> >
> > End
> > End
> >
> >
>
>
En fait cette procédure contrôle au moment de la saisie les informations
travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée à
la fois.
Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,75 - 1
Si les valeur saisie dans la journée son supérieur à 1 (somme du temps de
journée + le temps saisie), le système doit me retourné la valeur 0
Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
temps saisie), le système doit insérer le donnée et me renvoyer ID de
l'enregistrement.
La valeur retournée est vide le retur est égale soit à 0 soit à rien.
Je te remercie de te préoccuper de mon problème et je suis prés a refaire
complétement ma procédure si il y a une meilleur solution.
Cordialement,
<sebastien981_nospam@hotmail.com> a écrit dans le message de
news:e8i%23UbCZEHA.2432@tk2msftngp13.phx.gbl...
> Bonjour,
>
> une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
> trouver une soustraction entre une date de début et une data de fin de
temps
> de travail ensuite en extrayant la partie jours on aurait vu de suite si
la
> personne avait travaillé plus d'une journée d'après cette procédure
> le champs Temps _travail semble enregistrer sous forme d'un float le
nombre
> d'heure travaillé (ou un autre intervalle de temps minute seconde etc
> donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
travaillé
> un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
à
> saisir le mode de calcul cela étant pour ma part le
>
> Declare @Id_Saisie_Employes [int]
>
> je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
proc
> stock cela ne soit pas considéré comme une instruction sql (même si on
> d'accord cela ne doit pas influencer le @@IDENTITY)
>
> que voulez vous dire par "La procédure me renvoi systématiquement une
valeur
> Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
return
> dans le else or si la base atteint 1 du fait de votre condition la proc
> stock doit renvoyer 0 (cf <1 et non <=1)
>
> Avec quelques précisions il serait plus évident de vous répondre je
penses.
>
> Sebastien
>
>
> "Daniel Amaury" <daniel.amaury_Pas_de_Spam@coplan.fr> a écrit dans le
> message de news:OQX2qOCZEHA.3464@TK2MSFTNGP11.phx.gbl...
> > J'ai créé une procédure qui normalement devrait contrôler si le temps
> > travail de la journée d'un utilisateur est supérieur à un jour. Mais
voila
> > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > systématiquement une valeur Null quelque soit la date au lieu du temps
de
> > travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
> dans
> > tout les sens rien a faire. Manuellement dans l'annalyseur de requette
ca
> > marche en procedure stokée ça ne marche plus.
> >
> >
> >
> > Vous trouverez ci-dessous mon script SQL.
> >
> >
> >
> > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> >
> >
> >
> > Cordialement,
> >
> > ALTER Procedure spI_T_Saisie_Employes
> >
> > (
> > @Jour [smalldatetime]
> > , @Temps_travail [float]
> > , @Id_Utilisateur [int]
> > , @Id_Affaire [int]
> > , @Id_Phase [int]
> > , @Id_Qualification [int]
> > , @Id_Secteur [int]
> > , @Id_Echelon [int]
> > )
> >
> > As begin
> >
> > Declare @Times float
> > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > FROM T_Saisie_Employes
> > WHERE (Jour = @jour) AND (Id_Utilisateur > > > @Id_Utilisateur))
> >
> > If @Times < 1
> > Begin
> > Insert Into [dbo].[T_Saisie_Employes]
> >
> > (
> > [Jour]
> > , [Temps_travail]
> > , [Id_Utilisateur]
> > , [Id_Affaire]
> > , [Id_Phase]
> > , [Id_Qualification]
> > , [Id_Secteur]
> > , [Id_Echelon]
> > )
> >
> > Values
> >
> > (
> > @Jour
> > , @Temps_travail
> > , @Id_Utilisateur
> > , @Id_Affaire
> > , @Id_Phase
> > , @Id_Qualification
> > , @Id_Secteur
> > , @Id_Echelon
> > )
> >
> >
> > Declare @Id_Saisie_Employes [int]
> > Set @Id_Saisie_Employes = @@IDENTITY
> > Return @Id_Saisie_Employes
> >
> > End Else Begin
> >
> > Return 0
> >
> > End
> > End
> >
> >
>
>
En fait cette procédure contrôle au moment de la saisie les informations
travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée à
la fois.
Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,75 - 1
Si les valeur saisie dans la journée son supérieur à 1 (somme du temps de
journée + le temps saisie), le système doit me retourné la valeur 0
Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
temps saisie), le système doit insérer le donnée et me renvoyer ID de
l'enregistrement.
La valeur retournée est vide le retur est égale soit à 0 soit à rien.
Je te remercie de te préoccuper de mon problème et je suis prés a refaire
complétement ma procédure si il y a une meilleur solution.
Cordialement,
a écrit dans le message de
news:e8i%
> Bonjour,
>
> une question pourquoi faire un SUM(Temps_travail) je m'attendais plus à
> trouver une soustraction entre une date de début et une data de fin de
temps
> de travail ensuite en extrayant la partie jours on aurait vu de suite si
la
> personne avait travaillé plus d'une journée d'après cette procédure
> le champs Temps _travail semble enregistrer sous forme d'un float le
nombre
> d'heure travaillé (ou un autre intervalle de temps minute seconde etc
> donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
travaillé
> un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
à
> saisir le mode de calcul cela étant pour ma part le
>
> Declare @Id_Saisie_Employes [int]
>
> je l'aurais placé avant le insert into afin d'être sur qu'au sein de la
proc
> stock cela ne soit pas considéré comme une instruction sql (même si on
> d'accord cela ne doit pas influencer le @@IDENTITY)
>
> que voulez vous dire par "La procédure me renvoi systématiquement une
valeur
> Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
return
> dans le else or si la base atteint 1 du fait de votre condition la proc
> stock doit renvoyer 0 (cf <1 et non <=1)
>
> Avec quelques précisions il serait plus évident de vous répondre je
penses.
>
> Sebastien
>
>
> "Daniel Amaury" a écrit dans le
> message de news:
> > J'ai créé une procédure qui normalement devrait contrôler si le temps
> > travail de la journée d'un utilisateur est supérieur à un jour. Mais
voila
> > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > systématiquement une valeur Null quelque soit la date au lieu du temps
de
> > travail d'un utilisateur pour un jour donné. J'ai retourné le probléme
> dans
> > tout les sens rien a faire. Manuellement dans l'annalyseur de requette
ca
> > marche en procedure stokée ça ne marche plus.
> >
> >
> >
> > Vous trouverez ci-dessous mon script SQL.
> >
> >
> >
> > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> >
> >
> >
> > Cordialement,
> >
> > ALTER Procedure spI_T_Saisie_Employes
> >
> > (
> > @Jour [smalldatetime]
> > , @Temps_travail [float]
> > , @Id_Utilisateur [int]
> > , @Id_Affaire [int]
> > , @Id_Phase [int]
> > , @Id_Qualification [int]
> > , @Id_Secteur [int]
> > , @Id_Echelon [int]
> > )
> >
> > As begin
> >
> > Declare @Times float
> > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > FROM T_Saisie_Employes
> > WHERE (Jour = @jour) AND (Id_Utilisateur > > > @Id_Utilisateur))
> >
> > If @Times < 1
> > Begin
> > Insert Into [dbo].[T_Saisie_Employes]
> >
> > (
> > [Jour]
> > , [Temps_travail]
> > , [Id_Utilisateur]
> > , [Id_Affaire]
> > , [Id_Phase]
> > , [Id_Qualification]
> > , [Id_Secteur]
> > , [Id_Echelon]
> > )
> >
> > Values
> >
> > (
> > @Jour
> > , @Temps_travail
> > , @Id_Utilisateur
> > , @Id_Affaire
> > , @Id_Phase
> > , @Id_Qualification
> > , @Id_Secteur
> > , @Id_Echelon
> > )
> >
> >
> > Declare @Id_Saisie_Employes [int]
> > Set @Id_Saisie_Employes = @@IDENTITY
> > Return @Id_Saisie_Employes
> >
> > End Else Begin
> >
> > Return 0
> >
> > End
> > End
> >
> >
>
>
Opère un test
Premier use case :
une somme des valeur saisie sur une journée inférieure à 1 cela devrait
renvoyer le @@IDENTITY donc normalement si j'ai bien compris ce doit être
un entier qui provient d'un auto incrément sur la colonne clef primaire de
la table dans laquelle tu fais l'insertion ( au passage vérifie que c'est
bien la colonne de clef primaire et qu'elle a bien un compteur
Deuxième use case
une somme des valeur saisie sur une journée supérieure à 1 cela doit
renvoyer 0
Troisième use case
une somme des valeur saisie sur une journée égale à 1 cela doit renvoyer 0
si le 2 et 3 sont bon et que c'est le 1 qui plante c'est que tu ne
pas le @@identity dans ce cas comme dit dans le test
Vérifier que la clef primaire est bien défini dans la table , vérifier que
la clef primaire est bien un entier avec un compteur
J'ai aussi un peu réécrit la proc stock car certaine chose me choque
ALTER Procedure spI_T_Saisie_Employes
/* ( ici je supprime les parenthèses ) */
@Jour [smalldatetime]
, @Temps_travail [float]
, @Id_Utilisateur [int]
, @Id_Affaire [int]
, @Id_Phase [int]
, @Id_Qualification [int]
, @Id_Secteur [int]
, @Id_Echelon [int]
/* ) ici je supprime les parenthèses ) */
As /* begin suppression du begin */
Declare @Times float
Declare @Id_Saisie_Employes [int]
Declare @Erreur [int] /* variable utilisée pour tester une erreur
d'insertion*/
set @Erreur=-1
set @Id_Saisie_Employes=-1 /* initialisation de la variable avec une
qui ne peut pas être retournée comme ça si on voit -1 c'est que @@IDENTITY
n'a rien renvoyé si la valeur est null le problème est ailleurs*/
set @Times=(SELECT SUM(Temps_travail) AS "Times"
FROM T_Saisie_Employes
WHERE (Jour = @jour) AND (Id_Utilisateur > @Id_Utilisateur))
If (@Times < 1) /*ajout de parenthèses*/
Begin
Insert Into [dbo].[T_Saisie_Employes]
(
[Jour]
, [Temps_travail]
, [Id_Utilisateur]
, [Id_Affaire]
, [Id_Phase]
, [Id_Qualification]
, [Id_Secteur]
, [Id_Echelon]
)
Values
(
@Jour
, @Temps_travail
, @Id_Utilisateur
, @Id_Affaire
, @Id_Phase
, @Id_Qualification
, @Id_Secteur
, @Id_Echelon
)
Set @Erreur=@@ERROR /*récupère un numéro d'erreur ou 0 si pas d'erreur*/
Set @Id_Saisie_Employes = @@IDENTITY
if (@erreur<>0) /*test de la valeur d'erreur si différent de 0 et affiche
l'info*/
begin
select 'erreur n°: ' + @erreur + "Valeur @id_saisie_employes :
'+@id_saisie_employes
end
Return @Id_Saisie_Employes
End
Else
Begin
Return 0
End
GO /* ayant supprimé le begin au début il faut un GO */
Voilà ormis le test sur l'erreur mes autres modifications concernent plus
fait que d'une habitude de méthode de travail (peut être mauvaise
ça me parle plus comme ça
Sebastien
"Daniel Amaury" a écrit dans le
message de news:%
> En fait cette procédure contrôle au moment de la saisie les informations
de
> travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée
> la fois.
>
>
>
> Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,5 -
> 0,75 - 1
>
> Si les valeur saisie dans la journée son supérieur à 1 (somme du temps
la
> journée + le temps saisie), le système doit me retourné la valeur 0
>
>
>
> Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
> temps saisie), le système doit insérer le donnée et me renvoyer ID de
> l'enregistrement.
>
>
>
> La valeur retournée est vide le retur est égale soit à 0 soit à rien.
>
>
>
> Je te remercie de te préoccuper de mon problème et je suis prés a
> complétement ma procédure si il y a une meilleur solution.
>
>
>
> Cordialement,
>
>
> a écrit dans le message de
> news:e8i%
> > Bonjour,
> >
> > une question pourquoi faire un SUM(Temps_travail) je m'attendais plus
> > trouver une soustraction entre une date de début et une data de fin de
> temps
> > de travail ensuite en extrayant la partie jours on aurait vu de suite
> la
> > personne avait travaillé plus d'une journée d'après cette procédure
stocké
> > le champs Temps _travail semble enregistrer sous forme d'un float le
> nombre
> > d'heure travaillé (ou un autre intervalle de temps minute seconde etc
etc)
> > donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
> travaillé
> > un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
mal
> à
> > saisir le mode de calcul cela étant pour ma part le
> >
> > Declare @Id_Saisie_Employes [int]
> >
> > je l'aurais placé avant le insert into afin d'être sur qu'au sein de
> proc
> > stock cela ne soit pas considéré comme une instruction sql (même si on
est
> > d'accord cela ne doit pas influencer le @@IDENTITY)
> >
> > que voulez vous dire par "La procédure me renvoi systématiquement une
> valeur
> > Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
> return
> > dans le else or si la base atteint 1 du fait de votre condition la
> > stock doit renvoyer 0 (cf <1 et non <=1)
> >
> > Avec quelques précisions il serait plus évident de vous répondre je
> penses.
> >
> > Sebastien
> >
> >
> > "Daniel Amaury" a écrit dans le
> > message de news:
> > > J'ai créé une procédure qui normalement devrait contrôler si le
de
> > > travail de la journée d'un utilisateur est supérieur à un jour. Mais
> voila
> > > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > > systématiquement une valeur Null quelque soit la date au lieu du
> de
> > > travail d'un utilisateur pour un jour donné. J'ai retourné le
> > dans
> > > tout les sens rien a faire. Manuellement dans l'annalyseur de
> ca
> > > marche en procedure stokée ça ne marche plus.
> > >
> > >
> > >
> > > Vous trouverez ci-dessous mon script SQL.
> > >
> > >
> > >
> > > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> > >
> > >
> > >
> > > Cordialement,
> > >
> > > ALTER Procedure spI_T_Saisie_Employes
> > >
> > > (
> > > @Jour [smalldatetime]
> > > , @Temps_travail [float]
> > > , @Id_Utilisateur [int]
> > > , @Id_Affaire [int]
> > > , @Id_Phase [int]
> > > , @Id_Qualification [int]
> > > , @Id_Secteur [int]
> > > , @Id_Echelon [int]
> > > )
> > >
> > > As begin
> > >
> > > Declare @Times float
> > > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > > FROM T_Saisie_Employes
> > > WHERE (Jour = @jour) AND (Id_Utilisateur > > > > @Id_Utilisateur))
> > >
> > > If @Times < 1
> > > Begin
> > > Insert Into [dbo].[T_Saisie_Employes]
> > >
> > > (
> > > [Jour]
> > > , [Temps_travail]
> > > , [Id_Utilisateur]
> > > , [Id_Affaire]
> > > , [Id_Phase]
> > > , [Id_Qualification]
> > > , [Id_Secteur]
> > > , [Id_Echelon]
> > > )
> > >
> > > Values
> > >
> > > (
> > > @Jour
> > > , @Temps_travail
> > > , @Id_Utilisateur
> > > , @Id_Affaire
> > > , @Id_Phase
> > > , @Id_Qualification
> > > , @Id_Secteur
> > > , @Id_Echelon
> > > )
> > >
> > >
> > > Declare @Id_Saisie_Employes [int]
> > > Set @Id_Saisie_Employes = @@IDENTITY
> > > Return @Id_Saisie_Employes
> > >
> > > End Else Begin
> > >
> > > Return 0
> > >
> > > End
> > > End
> > >
> > >
> >
> >
>
>
Opère un test
Premier use case :
une somme des valeur saisie sur une journée inférieure à 1 cela devrait
renvoyer le @@IDENTITY donc normalement si j'ai bien compris ce doit être
un entier qui provient d'un auto incrément sur la colonne clef primaire de
la table dans laquelle tu fais l'insertion ( au passage vérifie que c'est
bien la colonne de clef primaire et qu'elle a bien un compteur
Deuxième use case
une somme des valeur saisie sur une journée supérieure à 1 cela doit
renvoyer 0
Troisième use case
une somme des valeur saisie sur une journée égale à 1 cela doit renvoyer 0
si le 2 et 3 sont bon et que c'est le 1 qui plante c'est que tu ne
pas le @@identity dans ce cas comme dit dans le test
Vérifier que la clef primaire est bien défini dans la table , vérifier que
la clef primaire est bien un entier avec un compteur
J'ai aussi un peu réécrit la proc stock car certaine chose me choque
ALTER Procedure spI_T_Saisie_Employes
/* ( ici je supprime les parenthèses ) */
@Jour [smalldatetime]
, @Temps_travail [float]
, @Id_Utilisateur [int]
, @Id_Affaire [int]
, @Id_Phase [int]
, @Id_Qualification [int]
, @Id_Secteur [int]
, @Id_Echelon [int]
/* ) ici je supprime les parenthèses ) */
As /* begin suppression du begin */
Declare @Times float
Declare @Id_Saisie_Employes [int]
Declare @Erreur [int] /* variable utilisée pour tester une erreur
d'insertion*/
set @Erreur=-1
set @Id_Saisie_Employes=-1 /* initialisation de la variable avec une
qui ne peut pas être retournée comme ça si on voit -1 c'est que @@IDENTITY
n'a rien renvoyé si la valeur est null le problème est ailleurs*/
set @Times=(SELECT SUM(Temps_travail) AS "Times"
FROM T_Saisie_Employes
WHERE (Jour = @jour) AND (Id_Utilisateur > @Id_Utilisateur))
If (@Times < 1) /*ajout de parenthèses*/
Begin
Insert Into [dbo].[T_Saisie_Employes]
(
[Jour]
, [Temps_travail]
, [Id_Utilisateur]
, [Id_Affaire]
, [Id_Phase]
, [Id_Qualification]
, [Id_Secteur]
, [Id_Echelon]
)
Values
(
@Jour
, @Temps_travail
, @Id_Utilisateur
, @Id_Affaire
, @Id_Phase
, @Id_Qualification
, @Id_Secteur
, @Id_Echelon
)
Set @Erreur=@@ERROR /*récupère un numéro d'erreur ou 0 si pas d'erreur*/
Set @Id_Saisie_Employes = @@IDENTITY
if (@erreur<>0) /*test de la valeur d'erreur si différent de 0 et affiche
l'info*/
begin
select 'erreur n°: ' + @erreur + "Valeur @id_saisie_employes :
'+@id_saisie_employes
end
Return @Id_Saisie_Employes
End
Else
Begin
Return 0
End
GO /* ayant supprimé le begin au début il faut un GO */
Voilà ormis le test sur l'erreur mes autres modifications concernent plus
fait que d'une habitude de méthode de travail (peut être mauvaise
ça me parle plus comme ça
Sebastien
"Daniel Amaury" <daniel.amaury_Pas_de_Spam@coplan.fr> a écrit dans le
message de news:%236SSWpCZEHA.2944@TK2MSFTNGP11.phx.gbl...
> En fait cette procédure contrôle au moment de la saisie les informations
de
> travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée
> la fois.
>
>
>
> Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,5 -
> 0,75 - 1
>
> Si les valeur saisie dans la journée son supérieur à 1 (somme du temps
la
> journée + le temps saisie), le système doit me retourné la valeur 0
>
>
>
> Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
> temps saisie), le système doit insérer le donnée et me renvoyer ID de
> l'enregistrement.
>
>
>
> La valeur retournée est vide le retur est égale soit à 0 soit à rien.
>
>
>
> Je te remercie de te préoccuper de mon problème et je suis prés a
> complétement ma procédure si il y a une meilleur solution.
>
>
>
> Cordialement,
>
>
> <sebastien981_nospam@hotmail.com> a écrit dans le message de
> news:e8i%23UbCZEHA.2432@tk2msftngp13.phx.gbl...
> > Bonjour,
> >
> > une question pourquoi faire un SUM(Temps_travail) je m'attendais plus
> > trouver une soustraction entre une date de début et une data de fin de
> temps
> > de travail ensuite en extrayant la partie jours on aurait vu de suite
> la
> > personne avait travaillé plus d'une journée d'après cette procédure
stocké
> > le champs Temps _travail semble enregistrer sous forme d'un float le
> nombre
> > d'heure travaillé (ou un autre intervalle de temps minute seconde etc
etc)
> > donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
> travaillé
> > un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
mal
> à
> > saisir le mode de calcul cela étant pour ma part le
> >
> > Declare @Id_Saisie_Employes [int]
> >
> > je l'aurais placé avant le insert into afin d'être sur qu'au sein de
> proc
> > stock cela ne soit pas considéré comme une instruction sql (même si on
est
> > d'accord cela ne doit pas influencer le @@IDENTITY)
> >
> > que voulez vous dire par "La procédure me renvoi systématiquement une
> valeur
> > Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
> return
> > dans le else or si la base atteint 1 du fait de votre condition la
> > stock doit renvoyer 0 (cf <1 et non <=1)
> >
> > Avec quelques précisions il serait plus évident de vous répondre je
> penses.
> >
> > Sebastien
> >
> >
> > "Daniel Amaury" <daniel.amaury_Pas_de_Spam@coplan.fr> a écrit dans le
> > message de news:OQX2qOCZEHA.3464@TK2MSFTNGP11.phx.gbl...
> > > J'ai créé une procédure qui normalement devrait contrôler si le
de
> > > travail de la journée d'un utilisateur est supérieur à un jour. Mais
> voila
> > > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > > systématiquement une valeur Null quelque soit la date au lieu du
> de
> > > travail d'un utilisateur pour un jour donné. J'ai retourné le
> > dans
> > > tout les sens rien a faire. Manuellement dans l'annalyseur de
> ca
> > > marche en procedure stokée ça ne marche plus.
> > >
> > >
> > >
> > > Vous trouverez ci-dessous mon script SQL.
> > >
> > >
> > >
> > > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> > >
> > >
> > >
> > > Cordialement,
> > >
> > > ALTER Procedure spI_T_Saisie_Employes
> > >
> > > (
> > > @Jour [smalldatetime]
> > > , @Temps_travail [float]
> > > , @Id_Utilisateur [int]
> > > , @Id_Affaire [int]
> > > , @Id_Phase [int]
> > > , @Id_Qualification [int]
> > > , @Id_Secteur [int]
> > > , @Id_Echelon [int]
> > > )
> > >
> > > As begin
> > >
> > > Declare @Times float
> > > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > > FROM T_Saisie_Employes
> > > WHERE (Jour = @jour) AND (Id_Utilisateur > > > > @Id_Utilisateur))
> > >
> > > If @Times < 1
> > > Begin
> > > Insert Into [dbo].[T_Saisie_Employes]
> > >
> > > (
> > > [Jour]
> > > , [Temps_travail]
> > > , [Id_Utilisateur]
> > > , [Id_Affaire]
> > > , [Id_Phase]
> > > , [Id_Qualification]
> > > , [Id_Secteur]
> > > , [Id_Echelon]
> > > )
> > >
> > > Values
> > >
> > > (
> > > @Jour
> > > , @Temps_travail
> > > , @Id_Utilisateur
> > > , @Id_Affaire
> > > , @Id_Phase
> > > , @Id_Qualification
> > > , @Id_Secteur
> > > , @Id_Echelon
> > > )
> > >
> > >
> > > Declare @Id_Saisie_Employes [int]
> > > Set @Id_Saisie_Employes = @@IDENTITY
> > > Return @Id_Saisie_Employes
> > >
> > > End Else Begin
> > >
> > > Return 0
> > >
> > > End
> > > End
> > >
> > >
> >
> >
>
>
Opère un test
Premier use case :
une somme des valeur saisie sur une journée inférieure à 1 cela devrait
renvoyer le @@IDENTITY donc normalement si j'ai bien compris ce doit être
un entier qui provient d'un auto incrément sur la colonne clef primaire de
la table dans laquelle tu fais l'insertion ( au passage vérifie que c'est
bien la colonne de clef primaire et qu'elle a bien un compteur
Deuxième use case
une somme des valeur saisie sur une journée supérieure à 1 cela doit
renvoyer 0
Troisième use case
une somme des valeur saisie sur une journée égale à 1 cela doit renvoyer 0
si le 2 et 3 sont bon et que c'est le 1 qui plante c'est que tu ne
pas le @@identity dans ce cas comme dit dans le test
Vérifier que la clef primaire est bien défini dans la table , vérifier que
la clef primaire est bien un entier avec un compteur
J'ai aussi un peu réécrit la proc stock car certaine chose me choque
ALTER Procedure spI_T_Saisie_Employes
/* ( ici je supprime les parenthèses ) */
@Jour [smalldatetime]
, @Temps_travail [float]
, @Id_Utilisateur [int]
, @Id_Affaire [int]
, @Id_Phase [int]
, @Id_Qualification [int]
, @Id_Secteur [int]
, @Id_Echelon [int]
/* ) ici je supprime les parenthèses ) */
As /* begin suppression du begin */
Declare @Times float
Declare @Id_Saisie_Employes [int]
Declare @Erreur [int] /* variable utilisée pour tester une erreur
d'insertion*/
set @Erreur=-1
set @Id_Saisie_Employes=-1 /* initialisation de la variable avec une
qui ne peut pas être retournée comme ça si on voit -1 c'est que @@IDENTITY
n'a rien renvoyé si la valeur est null le problème est ailleurs*/
set @Times=(SELECT SUM(Temps_travail) AS "Times"
FROM T_Saisie_Employes
WHERE (Jour = @jour) AND (Id_Utilisateur > @Id_Utilisateur))
If (@Times < 1) /*ajout de parenthèses*/
Begin
Insert Into [dbo].[T_Saisie_Employes]
(
[Jour]
, [Temps_travail]
, [Id_Utilisateur]
, [Id_Affaire]
, [Id_Phase]
, [Id_Qualification]
, [Id_Secteur]
, [Id_Echelon]
)
Values
(
@Jour
, @Temps_travail
, @Id_Utilisateur
, @Id_Affaire
, @Id_Phase
, @Id_Qualification
, @Id_Secteur
, @Id_Echelon
)
Set @Erreur=@@ERROR /*récupère un numéro d'erreur ou 0 si pas d'erreur*/
Set @Id_Saisie_Employes = @@IDENTITY
if (@erreur<>0) /*test de la valeur d'erreur si différent de 0 et affiche
l'info*/
begin
select 'erreur n°: ' + @erreur + "Valeur @id_saisie_employes :
'+@id_saisie_employes
end
Return @Id_Saisie_Employes
End
Else
Begin
Return 0
End
GO /* ayant supprimé le begin au début il faut un GO */
Voilà ormis le test sur l'erreur mes autres modifications concernent plus
fait que d'une habitude de méthode de travail (peut être mauvaise
ça me parle plus comme ça
Sebastien
"Daniel Amaury" a écrit dans le
message de news:%
> En fait cette procédure contrôle au moment de la saisie les informations
de
> travail d'un utilisateur de sa journée. Il ne peus saisir qu'une journée
> la fois.
>
>
>
> Il peut saisir le temps de travail avec uniquement c'est valeur 0,25 -
0,5 -
> 0,75 - 1
>
> Si les valeur saisie dans la journée son supérieur à 1 (somme du temps
la
> journée + le temps saisie), le système doit me retourné la valeur 0
>
>
>
> Si la valeur saisie est inférieur à 1 (somme du temps de la journée + le
> temps saisie), le système doit insérer le donnée et me renvoyer ID de
> l'enregistrement.
>
>
>
> La valeur retournée est vide le retur est égale soit à 0 soit à rien.
>
>
>
> Je te remercie de te préoccuper de mon problème et je suis prés a
> complétement ma procédure si il y a une meilleur solution.
>
>
>
> Cordialement,
>
>
> a écrit dans le message de
> news:e8i%
> > Bonjour,
> >
> > une question pourquoi faire un SUM(Temps_travail) je m'attendais plus
> > trouver une soustraction entre une date de début et une data de fin de
> temps
> > de travail ensuite en extrayant la partie jours on aurait vu de suite
> la
> > personne avait travaillé plus d'une journée d'après cette procédure
stocké
> > le champs Temps _travail semble enregistrer sous forme d'un float le
> nombre
> > d'heure travaillé (ou un autre intervalle de temps minute seconde etc
etc)
> > donc l'utilisateur saisie un truc du genre 1,50 pour dire qu'il a
> travaillé
> > un jour et une demie journée (soit 12 heures) j'avoue avoir un peu de
mal
> à
> > saisir le mode de calcul cela étant pour ma part le
> >
> > Declare @Id_Saisie_Employes [int]
> >
> > je l'aurais placé avant le insert into afin d'être sur qu'au sein de
> proc
> > stock cela ne soit pas considéré comme une instruction sql (même si on
est
> > d'accord cela ne doit pas influencer le @@IDENTITY)
> >
> > que voulez vous dire par "La procédure me renvoi systématiquement une
> valeur
> > Null " je m'attendrais plutot à voir un 0 puisque c'est la valeur du
> return
> > dans le else or si la base atteint 1 du fait de votre condition la
> > stock doit renvoyer 0 (cf <1 et non <=1)
> >
> > Avec quelques précisions il serait plus évident de vous répondre je
> penses.
> >
> > Sebastien
> >
> >
> > "Daniel Amaury" a écrit dans le
> > message de news:
> > > J'ai créé une procédure qui normalement devrait contrôler si le
de
> > > travail de la journée d'un utilisateur est supérieur à un jour. Mais
> voila
> > > dés que l'ensemble de la base à atteint 1. La procédure me renvoi
> > > systématiquement une valeur Null quelque soit la date au lieu du
> de
> > > travail d'un utilisateur pour un jour donné. J'ai retourné le
> > dans
> > > tout les sens rien a faire. Manuellement dans l'annalyseur de
> ca
> > > marche en procedure stokée ça ne marche plus.
> > >
> > >
> > >
> > > Vous trouverez ci-dessous mon script SQL.
> > >
> > >
> > >
> > > Je vous remercie par avance de l'aide que vous pourriez m'apporter.
> > >
> > >
> > >
> > > Cordialement,
> > >
> > > ALTER Procedure spI_T_Saisie_Employes
> > >
> > > (
> > > @Jour [smalldatetime]
> > > , @Temps_travail [float]
> > > , @Id_Utilisateur [int]
> > > , @Id_Affaire [int]
> > > , @Id_Phase [int]
> > > , @Id_Qualification [int]
> > > , @Id_Secteur [int]
> > > , @Id_Echelon [int]
> > > )
> > >
> > > As begin
> > >
> > > Declare @Times float
> > > set @Times=(SELECT SUM(Temps_travail) AS "Times"
> > > FROM T_Saisie_Employes
> > > WHERE (Jour = @jour) AND (Id_Utilisateur > > > > @Id_Utilisateur))
> > >
> > > If @Times < 1
> > > Begin
> > > Insert Into [dbo].[T_Saisie_Employes]
> > >
> > > (
> > > [Jour]
> > > , [Temps_travail]
> > > , [Id_Utilisateur]
> > > , [Id_Affaire]
> > > , [Id_Phase]
> > > , [Id_Qualification]
> > > , [Id_Secteur]
> > > , [Id_Echelon]
> > > )
> > >
> > > Values
> > >
> > > (
> > > @Jour
> > > , @Temps_travail
> > > , @Id_Utilisateur
> > > , @Id_Affaire
> > > , @Id_Phase
> > > , @Id_Qualification
> > > , @Id_Secteur
> > > , @Id_Echelon
> > > )
> > >
> > >
> > > Declare @Id_Saisie_Employes [int]
> > > Set @Id_Saisie_Employes = @@IDENTITY
> > > Return @Id_Saisie_Employes
> > >
> > > End Else Begin
> > >
> > > Return 0
> > >
> > > End
> > > End
> > >
> > >
> >
> >
>
>
-----Message d'origine-----
je ne comprend pas.
Elle me retour maintenant systématiquement 0, je n'ai
trouverez ci-joint le format de ma table.
je vais refaire compétement ma procédure et vos
bienvenue.
Encore merci
Daniel
"Daniel Amaury" a
message de news:%
J'ai testé, mais malgré vos judicieux conseils ca ne
pas.Si je vide la base ca ne fonctionne que sur la date du
Je vais redemarer ma machine, voir si.
Merci
a écrit dans le
news:
> Opère un test
>
>
> Premier use case :
>
> une somme des valeur saisie sur une journée
> renvoyer le @@IDENTITY donc normalement si j'ai
être> un entier qui provient d'un auto incrément sur la
de> la table dans laquelle tu fais l'insertion ( au
c'est> bien la colonne de clef primaire et qu'elle a bien
automatique)
>
> Deuxième use case
>
> une somme des valeur saisie sur une journée
> renvoyer 0
>
> Troisième use case
>
> une somme des valeur saisie sur une journée égale à
0>
> si le 2 et 3 sont bon et que c'est le 1 qui plante
récupère
> pas le @@identity dans ce cas comme dit dans le test
>
> Vérifier que la clef primaire est bien défini dans
que> la clef primaire est bien un entier avec un compteur
>
> J'ai aussi un peu réécrit la proc stock car certaine
>
>
> ALTER Procedure spI_T_Saisie_Employes
>
> /* ( ici je supprime les parenthèses ) */
> @Jour [smalldatetime]
> , @Temps_travail [float]
> , @Id_Utilisateur [int]
> , @Id_Affaire [int]
> , @Id_Phase [int]
> , @Id_Qualification [int]
> , @Id_Secteur [int]
> , @Id_Echelon [int]
> /* ) ici je supprime les parenthèses ) */
>
> As /* begin suppression du begin */
>
> Declare @Times float
>
> Declare @Id_Saisie_Employes [int]
> Declare @Erreur [int] /* variable utilisée pour
> d'insertion*/
>
> set @Erreur=-1
> set @Id_Saisie_Employes=-1 /* initialisation de la
valeur
> qui ne peut pas être retournée comme ça si on voit -
@@IDENTITY> n'a rien renvoyé si la valeur est null le problème
>
> set @Times=(SELECT SUM(Temps_travail) AS "Times"
> FROM T_Saisie_Employes
> WHERE (Jour = @jour) AND
> @Id_Utilisateur))
>
> If (@Times < 1) /*ajout de parenthèses*/
>
> Begin
> Insert Into [dbo].[T_Saisie_Employes]
> (
> [Jour]
> , [Temps_travail]
> , [Id_Utilisateur]
> , [Id_Affaire]
> , [Id_Phase]
> , [Id_Qualification]
> , [Id_Secteur]
> , [Id_Echelon]
> )
> Values
> (
> @Jour
> , @Temps_travail
> , @Id_Utilisateur
> , @Id_Affaire
> , @Id_Phase
> , @Id_Qualification
> , @Id_Secteur
> , @Id_Echelon
> )
>
> Set @Erreur=@@ERROR /*récupère un numéro d'erreur ou
>
> Set @Id_Saisie_Employes = @@IDENTITY
>
> if (@erreur<>0) /*test de la valeur d'erreur si
affiche> l'info*/
> begin
> select 'erreur n°: ' + @erreur + "Valeur
> '+@id_saisie_employes
> end
>
>
> Return @Id_Saisie_Employes
>
> End
>
> Else
>
> Begin
> Return 0
> End
>
> GO /* ayant supprimé le begin au début il faut un GO
>
> Voilà ormis le test sur l'erreur mes autres
plusle
> fait que d'une habitude de méthode de travail (peut
d'ailleur)
> ça me parle plus comme ça
>
> Sebastien
>
> "Daniel Amaury"
> message de news:%
> > En fait cette procédure contrôle au moment de la
informations> de
> > travail d'un utilisateur de sa journée. Il ne peus
journéeà
> > la fois.
> >
> >
> >
> > Il peut saisir le temps de travail avec uniquement
> 0,5 -
> > 0,75 - 1
> >
> > Si les valeur saisie dans la journée son supérieur
de
> la
> > journée + le temps saisie), le système doit me
> >
> >
> >
> > Si la valeur saisie est inférieur à 1 (somme du
le> > temps saisie), le système doit insérer le donnée
> > l'enregistrement.
> >
> >
> >
> > La valeur retournée est vide le retur est égale
> >
> >
> >
> > Je te remercie de te préoccuper de mon problème et
refaire
> > complétement ma procédure si il y a une meilleur
> >
> >
> >
> > Cordialement,
> >
> >
> > a écrit dans le
> > news:e8i%
> > > Bonjour,
> > >
> > > une question pourquoi faire un SUM
plusà
> > > trouver une soustraction entre une date de début
de> > temps
> > > de travail ensuite en extrayant la partie jours
suitesi
> > la
> > > personne avait travaillé plus d'une journée
> stocké
> > > le champs Temps _travail semble enregistrer sous
> > nombre
> > > d'heure travaillé (ou un autre intervalle de
etc> etc)
> > > donc l'utilisateur saisie un truc du genre 1,50
> > travaillé
> > > un jour et une demie journée (soit 12 heures)
de> mal
> > à
> > > saisir le mode de calcul cela étant pour ma part
> > >
> > > Declare @Id_Saisie_Employes [int]
> > >
> > > je l'aurais placé avant le insert into afin
la
> > proc
> > > stock cela ne soit pas considéré comme une
on> est
> > > d'accord cela ne doit pas influencer le
> > >
> > > que voulez vous dire par "La procédure me renvoi
une> > valeur
> > > Null " je m'attendrais plutot à voir un 0
> > return
> > > dans le else or si la base atteint 1 du fait de
proc
> > > stock doit renvoyer 0 (cf <1 et non <=1)
> > >
> > > Avec quelques précisions il serait plus évident
> > penses.
> > >
> > > Sebastien
> > >
> > >
> > > "Daniel Amaury"
le> > > message de
> > > > J'ai créé une procédure qui normalement
temps
> de
> > > > travail de la journée d'un utilisateur est
Mais> > voila
> > > > dés que l'ensemble de la base à atteint 1. La
> > > > systématiquement une valeur Null quelque soit
temps
> > de
> > > > travail d'un utilisateur pour un jour donné.
probléme
> > > dans
> > > > tout les sens rien a faire. Manuellement dans
requette
> > ca
> > > > marche en procedure stokée ça ne marche plus.
> > > >
> > > >
> > > >
> > > > Vous trouverez ci-dessous mon script SQL.
> > > >
> > > >
> > > >
> > > > Je vous remercie par avance de l'aide que vous
m'apporter.> > > >
> > > >
> > > >
> > > > Cordialement,
> > > >
> > > > ALTER Procedure spI_T_Saisie_Employes
> > > >
> > > > (
> > > > @Jour [smalldatetime]
> > > > , @Temps_travail [float]
> > > > , @Id_Utilisateur [int]
> > > > , @Id_Affaire [int]
> > > > , @Id_Phase [int]
> > > > , @Id_Qualification [int]
> > > > , @Id_Secteur [int]
> > > > , @Id_Echelon [int]
> > > > )
> > > >
> > > > As begin
> > > >
> > > > Declare @Times float
> > > > set @Times=(SELECT SUM(Temps_travail)
> > > > FROM T_Saisie_Employes
> > > > WHERE (Jour = @jour)
> > > > @Id_Utilisateur))
> > > >
> > > > If @Times < 1
> > > > Begin
> > > > Insert Into [dbo].[T_Saisie_Employes]
> > > >
> > > > (
> > > > [Jour]
> > > > , [Temps_travail]
> > > > , [Id_Utilisateur]
> > > > , [Id_Affaire]
> > > > , [Id_Phase]
> > > > , [Id_Qualification]
> > > > , [Id_Secteur]
> > > > , [Id_Echelon]
> > > > )
> > > >
> > > > Values
> > > >
> > > > (
> > > > @Jour
> > > > , @Temps_travail
> > > > , @Id_Utilisateur
> > > > , @Id_Affaire
> > > > , @Id_Phase
> > > > , @Id_Qualification
> > > > , @Id_Secteur
> > > > , @Id_Echelon
> > > > )
> > > >
> > > >
> > > > Declare @Id_Saisie_Employes [int]
> > > > Set @Id_Saisie_Employes = @@IDENTITY
> > > > Return @Id_Saisie_Employes
> > > >
> > > > End Else Begin
> > > >
> > > > Return 0
> > > >
> > > > End
> > > > End
> > > >
> > > >
> > >
> > >
> >
> >
>
>
-----Message d'origine-----
je ne comprend pas.
Elle me retour maintenant systématiquement 0, je n'ai
trouverez ci-joint le format de ma table.
je vais refaire compétement ma procédure et vos
bienvenue.
Encore merci
Daniel
"Daniel Amaury" <daniel.amaury_Pas_de_Spam@coplan.fr> a
message de news:%
J'ai testé, mais malgré vos judicieux conseils ca ne
pas.
Si je vide la base ca ne fonctionne que sur la date du
Je vais redemarer ma machine, voir si.
Merci
<sebastien981_nospam@hotmail.com> a écrit dans le
news:unKybPDZEHA.2944@TK2MSFTNGP11.phx.gbl...
> Opère un test
>
>
> Premier use case :
>
> une somme des valeur saisie sur une journée
> renvoyer le @@IDENTITY donc normalement si j'ai
être
> un entier qui provient d'un auto incrément sur la
de
> la table dans laquelle tu fais l'insertion ( au
c'est
> bien la colonne de clef primaire et qu'elle a bien
automatique)
>
> Deuxième use case
>
> une somme des valeur saisie sur une journée
> renvoyer 0
>
> Troisième use case
>
> une somme des valeur saisie sur une journée égale à
0
>
> si le 2 et 3 sont bon et que c'est le 1 qui plante
récupère
> pas le @@identity dans ce cas comme dit dans le test
>
> Vérifier que la clef primaire est bien défini dans
que
> la clef primaire est bien un entier avec un compteur
>
> J'ai aussi un peu réécrit la proc stock car certaine
>
>
> ALTER Procedure spI_T_Saisie_Employes
>
> /* ( ici je supprime les parenthèses ) */
> @Jour [smalldatetime]
> , @Temps_travail [float]
> , @Id_Utilisateur [int]
> , @Id_Affaire [int]
> , @Id_Phase [int]
> , @Id_Qualification [int]
> , @Id_Secteur [int]
> , @Id_Echelon [int]
> /* ) ici je supprime les parenthèses ) */
>
> As /* begin suppression du begin */
>
> Declare @Times float
>
> Declare @Id_Saisie_Employes [int]
> Declare @Erreur [int] /* variable utilisée pour
> d'insertion*/
>
> set @Erreur=-1
> set @Id_Saisie_Employes=-1 /* initialisation de la
valeur
> qui ne peut pas être retournée comme ça si on voit -
@@IDENTITY
> n'a rien renvoyé si la valeur est null le problème
>
> set @Times=(SELECT SUM(Temps_travail) AS "Times"
> FROM T_Saisie_Employes
> WHERE (Jour = @jour) AND
> @Id_Utilisateur))
>
> If (@Times < 1) /*ajout de parenthèses*/
>
> Begin
> Insert Into [dbo].[T_Saisie_Employes]
> (
> [Jour]
> , [Temps_travail]
> , [Id_Utilisateur]
> , [Id_Affaire]
> , [Id_Phase]
> , [Id_Qualification]
> , [Id_Secteur]
> , [Id_Echelon]
> )
> Values
> (
> @Jour
> , @Temps_travail
> , @Id_Utilisateur
> , @Id_Affaire
> , @Id_Phase
> , @Id_Qualification
> , @Id_Secteur
> , @Id_Echelon
> )
>
> Set @Erreur=@@ERROR /*récupère un numéro d'erreur ou
>
> Set @Id_Saisie_Employes = @@IDENTITY
>
> if (@erreur<>0) /*test de la valeur d'erreur si
affiche
> l'info*/
> begin
> select 'erreur n°: ' + @erreur + "Valeur
> '+@id_saisie_employes
> end
>
>
> Return @Id_Saisie_Employes
>
> End
>
> Else
>
> Begin
> Return 0
> End
>
> GO /* ayant supprimé le begin au début il faut un GO
>
> Voilà ormis le test sur l'erreur mes autres
plus
le
> fait que d'une habitude de méthode de travail (peut
d'ailleur)
> ça me parle plus comme ça
>
> Sebastien
>
> "Daniel Amaury"
> message de news:%
> > En fait cette procédure contrôle au moment de la
informations
> de
> > travail d'un utilisateur de sa journée. Il ne peus
journée
à
> > la fois.
> >
> >
> >
> > Il peut saisir le temps de travail avec uniquement
> 0,5 -
> > 0,75 - 1
> >
> > Si les valeur saisie dans la journée son supérieur
de
> la
> > journée + le temps saisie), le système doit me
> >
> >
> >
> > Si la valeur saisie est inférieur à 1 (somme du
le
> > temps saisie), le système doit insérer le donnée
> > l'enregistrement.
> >
> >
> >
> > La valeur retournée est vide le retur est égale
> >
> >
> >
> > Je te remercie de te préoccuper de mon problème et
refaire
> > complétement ma procédure si il y a une meilleur
> >
> >
> >
> > Cordialement,
> >
> >
> > <sebastien981_nospam@hotmail.com> a écrit dans le
> > news:e8i%23UbCZEHA.2432@tk2msftngp13.phx.gbl...
> > > Bonjour,
> > >
> > > une question pourquoi faire un SUM
plus
à
> > > trouver une soustraction entre une date de début
de
> > temps
> > > de travail ensuite en extrayant la partie jours
suite
si
> > la
> > > personne avait travaillé plus d'une journée
> stocké
> > > le champs Temps _travail semble enregistrer sous
> > nombre
> > > d'heure travaillé (ou un autre intervalle de
etc
> etc)
> > > donc l'utilisateur saisie un truc du genre 1,50
> > travaillé
> > > un jour et une demie journée (soit 12 heures)
de
> mal
> > à
> > > saisir le mode de calcul cela étant pour ma part
> > >
> > > Declare @Id_Saisie_Employes [int]
> > >
> > > je l'aurais placé avant le insert into afin
la
> > proc
> > > stock cela ne soit pas considéré comme une
on
> est
> > > d'accord cela ne doit pas influencer le
> > >
> > > que voulez vous dire par "La procédure me renvoi
une
> > valeur
> > > Null " je m'attendrais plutot à voir un 0
> > return
> > > dans le else or si la base atteint 1 du fait de
proc
> > > stock doit renvoyer 0 (cf <1 et non <=1)
> > >
> > > Avec quelques précisions il serait plus évident
> > penses.
> > >
> > > Sebastien
> > >
> > >
> > > "Daniel Amaury"
le
> > > message de
> > > > J'ai créé une procédure qui normalement
temps
> de
> > > > travail de la journée d'un utilisateur est
Mais
> > voila
> > > > dés que l'ensemble de la base à atteint 1. La
> > > > systématiquement une valeur Null quelque soit
temps
> > de
> > > > travail d'un utilisateur pour un jour donné.
probléme
> > > dans
> > > > tout les sens rien a faire. Manuellement dans
requette
> > ca
> > > > marche en procedure stokée ça ne marche plus.
> > > >
> > > >
> > > >
> > > > Vous trouverez ci-dessous mon script SQL.
> > > >
> > > >
> > > >
> > > > Je vous remercie par avance de l'aide que vous
m'apporter.
> > > >
> > > >
> > > >
> > > > Cordialement,
> > > >
> > > > ALTER Procedure spI_T_Saisie_Employes
> > > >
> > > > (
> > > > @Jour [smalldatetime]
> > > > , @Temps_travail [float]
> > > > , @Id_Utilisateur [int]
> > > > , @Id_Affaire [int]
> > > > , @Id_Phase [int]
> > > > , @Id_Qualification [int]
> > > > , @Id_Secteur [int]
> > > > , @Id_Echelon [int]
> > > > )
> > > >
> > > > As begin
> > > >
> > > > Declare @Times float
> > > > set @Times=(SELECT SUM(Temps_travail)
> > > > FROM T_Saisie_Employes
> > > > WHERE (Jour = @jour)
> > > > @Id_Utilisateur))
> > > >
> > > > If @Times < 1
> > > > Begin
> > > > Insert Into [dbo].[T_Saisie_Employes]
> > > >
> > > > (
> > > > [Jour]
> > > > , [Temps_travail]
> > > > , [Id_Utilisateur]
> > > > , [Id_Affaire]
> > > > , [Id_Phase]
> > > > , [Id_Qualification]
> > > > , [Id_Secteur]
> > > > , [Id_Echelon]
> > > > )
> > > >
> > > > Values
> > > >
> > > > (
> > > > @Jour
> > > > , @Temps_travail
> > > > , @Id_Utilisateur
> > > > , @Id_Affaire
> > > > , @Id_Phase
> > > > , @Id_Qualification
> > > > , @Id_Secteur
> > > > , @Id_Echelon
> > > > )
> > > >
> > > >
> > > > Declare @Id_Saisie_Employes [int]
> > > > Set @Id_Saisie_Employes = @@IDENTITY
> > > > Return @Id_Saisie_Employes
> > > >
> > > > End Else Begin
> > > >
> > > > Return 0
> > > >
> > > > End
> > > > End
> > > >
> > > >
> > >
> > >
> >
> >
>
>
-----Message d'origine-----
je ne comprend pas.
Elle me retour maintenant systématiquement 0, je n'ai
trouverez ci-joint le format de ma table.
je vais refaire compétement ma procédure et vos
bienvenue.
Encore merci
Daniel
"Daniel Amaury" a
message de news:%
J'ai testé, mais malgré vos judicieux conseils ca ne
pas.Si je vide la base ca ne fonctionne que sur la date du
Je vais redemarer ma machine, voir si.
Merci
a écrit dans le
news:
> Opère un test
>
>
> Premier use case :
>
> une somme des valeur saisie sur une journée
> renvoyer le @@IDENTITY donc normalement si j'ai
être> un entier qui provient d'un auto incrément sur la
de> la table dans laquelle tu fais l'insertion ( au
c'est> bien la colonne de clef primaire et qu'elle a bien
automatique)
>
> Deuxième use case
>
> une somme des valeur saisie sur une journée
> renvoyer 0
>
> Troisième use case
>
> une somme des valeur saisie sur une journée égale à
0>
> si le 2 et 3 sont bon et que c'est le 1 qui plante
récupère
> pas le @@identity dans ce cas comme dit dans le test
>
> Vérifier que la clef primaire est bien défini dans
que> la clef primaire est bien un entier avec un compteur
>
> J'ai aussi un peu réécrit la proc stock car certaine
>
>
> ALTER Procedure spI_T_Saisie_Employes
>
> /* ( ici je supprime les parenthèses ) */
> @Jour [smalldatetime]
> , @Temps_travail [float]
> , @Id_Utilisateur [int]
> , @Id_Affaire [int]
> , @Id_Phase [int]
> , @Id_Qualification [int]
> , @Id_Secteur [int]
> , @Id_Echelon [int]
> /* ) ici je supprime les parenthèses ) */
>
> As /* begin suppression du begin */
>
> Declare @Times float
>
> Declare @Id_Saisie_Employes [int]
> Declare @Erreur [int] /* variable utilisée pour
> d'insertion*/
>
> set @Erreur=-1
> set @Id_Saisie_Employes=-1 /* initialisation de la
valeur
> qui ne peut pas être retournée comme ça si on voit -
@@IDENTITY> n'a rien renvoyé si la valeur est null le problème
>
> set @Times=(SELECT SUM(Temps_travail) AS "Times"
> FROM T_Saisie_Employes
> WHERE (Jour = @jour) AND
> @Id_Utilisateur))
>
> If (@Times < 1) /*ajout de parenthèses*/
>
> Begin
> Insert Into [dbo].[T_Saisie_Employes]
> (
> [Jour]
> , [Temps_travail]
> , [Id_Utilisateur]
> , [Id_Affaire]
> , [Id_Phase]
> , [Id_Qualification]
> , [Id_Secteur]
> , [Id_Echelon]
> )
> Values
> (
> @Jour
> , @Temps_travail
> , @Id_Utilisateur
> , @Id_Affaire
> , @Id_Phase
> , @Id_Qualification
> , @Id_Secteur
> , @Id_Echelon
> )
>
> Set @Erreur=@@ERROR /*récupère un numéro d'erreur ou
>
> Set @Id_Saisie_Employes = @@IDENTITY
>
> if (@erreur<>0) /*test de la valeur d'erreur si
affiche> l'info*/
> begin
> select 'erreur n°: ' + @erreur + "Valeur
> '+@id_saisie_employes
> end
>
>
> Return @Id_Saisie_Employes
>
> End
>
> Else
>
> Begin
> Return 0
> End
>
> GO /* ayant supprimé le begin au début il faut un GO
>
> Voilà ormis le test sur l'erreur mes autres
plusle
> fait que d'une habitude de méthode de travail (peut
d'ailleur)
> ça me parle plus comme ça
>
> Sebastien
>
> "Daniel Amaury"
> message de news:%
> > En fait cette procédure contrôle au moment de la
informations> de
> > travail d'un utilisateur de sa journée. Il ne peus
journéeà
> > la fois.
> >
> >
> >
> > Il peut saisir le temps de travail avec uniquement
> 0,5 -
> > 0,75 - 1
> >
> > Si les valeur saisie dans la journée son supérieur
de
> la
> > journée + le temps saisie), le système doit me
> >
> >
> >
> > Si la valeur saisie est inférieur à 1 (somme du
le> > temps saisie), le système doit insérer le donnée
> > l'enregistrement.
> >
> >
> >
> > La valeur retournée est vide le retur est égale
> >
> >
> >
> > Je te remercie de te préoccuper de mon problème et
refaire
> > complétement ma procédure si il y a une meilleur
> >
> >
> >
> > Cordialement,
> >
> >
> > a écrit dans le
> > news:e8i%
> > > Bonjour,
> > >
> > > une question pourquoi faire un SUM
plusà
> > > trouver une soustraction entre une date de début
de> > temps
> > > de travail ensuite en extrayant la partie jours
suitesi
> > la
> > > personne avait travaillé plus d'une journée
> stocké
> > > le champs Temps _travail semble enregistrer sous
> > nombre
> > > d'heure travaillé (ou un autre intervalle de
etc> etc)
> > > donc l'utilisateur saisie un truc du genre 1,50
> > travaillé
> > > un jour et une demie journée (soit 12 heures)
de> mal
> > à
> > > saisir le mode de calcul cela étant pour ma part
> > >
> > > Declare @Id_Saisie_Employes [int]
> > >
> > > je l'aurais placé avant le insert into afin
la
> > proc
> > > stock cela ne soit pas considéré comme une
on> est
> > > d'accord cela ne doit pas influencer le
> > >
> > > que voulez vous dire par "La procédure me renvoi
une> > valeur
> > > Null " je m'attendrais plutot à voir un 0
> > return
> > > dans le else or si la base atteint 1 du fait de
proc
> > > stock doit renvoyer 0 (cf <1 et non <=1)
> > >
> > > Avec quelques précisions il serait plus évident
> > penses.
> > >
> > > Sebastien
> > >
> > >
> > > "Daniel Amaury"
le> > > message de
> > > > J'ai créé une procédure qui normalement
temps
> de
> > > > travail de la journée d'un utilisateur est
Mais> > voila
> > > > dés que l'ensemble de la base à atteint 1. La
> > > > systématiquement une valeur Null quelque soit
temps
> > de
> > > > travail d'un utilisateur pour un jour donné.
probléme
> > > dans
> > > > tout les sens rien a faire. Manuellement dans
requette
> > ca
> > > > marche en procedure stokée ça ne marche plus.
> > > >
> > > >
> > > >
> > > > Vous trouverez ci-dessous mon script SQL.
> > > >
> > > >
> > > >
> > > > Je vous remercie par avance de l'aide que vous
m'apporter.> > > >
> > > >
> > > >
> > > > Cordialement,
> > > >
> > > > ALTER Procedure spI_T_Saisie_Employes
> > > >
> > > > (
> > > > @Jour [smalldatetime]
> > > > , @Temps_travail [float]
> > > > , @Id_Utilisateur [int]
> > > > , @Id_Affaire [int]
> > > > , @Id_Phase [int]
> > > > , @Id_Qualification [int]
> > > > , @Id_Secteur [int]
> > > > , @Id_Echelon [int]
> > > > )
> > > >
> > > > As begin
> > > >
> > > > Declare @Times float
> > > > set @Times=(SELECT SUM(Temps_travail)
> > > > FROM T_Saisie_Employes
> > > > WHERE (Jour = @jour)
> > > > @Id_Utilisateur))
> > > >
> > > > If @Times < 1
> > > > Begin
> > > > Insert Into [dbo].[T_Saisie_Employes]
> > > >
> > > > (
> > > > [Jour]
> > > > , [Temps_travail]
> > > > , [Id_Utilisateur]
> > > > , [Id_Affaire]
> > > > , [Id_Phase]
> > > > , [Id_Qualification]
> > > > , [Id_Secteur]
> > > > , [Id_Echelon]
> > > > )
> > > >
> > > > Values
> > > >
> > > > (
> > > > @Jour
> > > > , @Temps_travail
> > > > , @Id_Utilisateur
> > > > , @Id_Affaire
> > > > , @Id_Phase
> > > > , @Id_Qualification
> > > > , @Id_Secteur
> > > > , @Id_Echelon
> > > > )
> > > >
> > > >
> > > > Declare @Id_Saisie_Employes [int]
> > > > Set @Id_Saisie_Employes = @@IDENTITY
> > > > Return @Id_Saisie_Employes
> > > >
> > > > End Else Begin
> > > >
> > > > Return 0
> > > >
> > > > End
> > > > End
> > > >
> > > >
> > >
> > >
> >
> >
>
>