|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 6 ![]() |
bonjour ,
J'ai un probleme assez génant avec l'affectation de mes variables ( déclarées en entier ) , j'explique : Si j'affecte un entier supérieur 30 à une variable , il me sera alors impossible de l'afficher ou de l'insérer dans une base de données .Si celle-ci est inférieure à 30 alors il n'y a pas de problemes . par contre si je decide d'insérer 100000 dans une base de données ( sans passer par une variable ) je n'ai pas de soucis. c'est comme si mes variable ne pouvaient pas stoquées d'entier supérieur à30 ! elles retournent null si c'est le cas. j'ai deja essayé de les déclarer en bigint et autre , et je n'ai aucune contraintes qui interdisent aux variables d'etre > 30 ! Moi perso je comprends vraiment pas !! Si quelqu'un a déja eu ce sale tour !! ce serait sympa de m'informer mercii beacoup |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
bonjour,
ta procedure ressemble a quoi ? |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 6 ![]() |
voici la procedure, il s'agit en fait d' un trigger :
La fonction n'est pas terminée mais je voulais testé les valeurs calculées dans les variables en les affichant et pour des valeurs quie dépassent 30, la fonction affiche " <NULL> ". create or replace function modif_classement() returns trigger as ' declare essais int ; transf int ; drops int ; pen int ; bonus int ; total_points int; begin bonus:=0 ; essais := (select SUM(nb_essais)) from marque where id_equipe=new.id_equipe + new.nb_essais ; transf := (select SUM(nb_transf)) from marque where id_equipe=new.id_equipe + new.nb_transf ; drops := (select SUM(nb_drops)) from marque where id_equipe=new.id_equipe + new.nb_drops ; pen := (select SUM(nb_pen)) from marque where id_equipe=new.id_equipe + new.nb_pen ; if(essais - new.nb_essais > 3 ) then bonus := bonus +1 ; end if ; total_points := essais + transf + drops + pen ; raise notice '' essais : % transf : % drops : % pen : % total : % bonus : % nouv_essai : %'', essais, transf, drops , pen ,total_points,bonus, new.nb_essais ; return null ; return new ; end ; ' language'plpgsql' ; create trigger trig_classement before insert or update on marque for each row execute procedure modif_classement() ; |
|
|
00
|
|
|
#4 | ||
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Et si tu essayais :
Code :
|
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2005 Messages : 6 ![]() |
Merci pour tes réponses , c'est vraiment sympa.
Mais le probleme n'était pas la, j'ai juste affecté "new.nb_essais" a la variable essais a une autre ligne et maintenant ca marche. Je comprends pas trop pourquoi mais bon tant que ca marche encore merci pour ton aide |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com