Retour NULL d'une fonction utilisateur
Bonjour, voici ma fonction utilisateur :
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 29 30 31 32 33 34 35 36 37 38 39 40 41
|
CREATE FUNCTION F_COMPTER_HEURES (@ligne int)
RETURNS float
AS
BEGIN
DECLARE @duree float;
DECLARE @debut DateTime,@fin DateTime;
-- declaration du curseur
DECLARE CursPlan CURSOR
FOR
select DEBUT,FIN from PLANNING WHERE FK_LIGNE_CONTRAT=@ligne and PREVU=1
-- ouverture du curseur
OPEN CursPlan
-- lecture du premier enregistrement
FETCH CursPlan INTO @debut, @fin
-- boucle de traitement
WHILE @@fetch_Status = 0
BEGIN
set @duree = @duree + DATEDIFF(minute,@debut,@fin)
-- lecture de l'enregistrement suivant
FETCH CursPlan INTO @debut, @fin
END
-- fermeture du curseur
CLOSE CursPlan
-- libération de la mémoire
DEALLOCATE CursPlan
RETURN @duree
END |
La valeur de retour est à NULL
J'appelle cette fonction depuis un trigger et ça doit mettre à jour un compteur d'heures...
Mon :
Code:
1 2
|
DATEDIFF(minute,@debut,@fin) |
calcule bien la différence en minutes...
Mais dans @duree, il n'y a visiblement rien...et dans la base, le champ à mettre à jour est à null.
J'ai fait le test de retourner DATEDIFF(minute,@debut,@fin)
ça marche parfaitement...
Avez vous une idée?