Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 23/04/2010 13:22:53
- R.Seif
- Membre
ça neretourne rien
Bonjour,
j'ai un code qui est bien écrit, je suppose, mais qui ne retourne aucun résultat.
ça tourne, mais à la fin je n'ai une insertion ni dans la table ips, ni dans la table peers!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
create or replace FUNCTION mape_add_peer(inet,integer) RETURNS integer
AS $$
DECLARE
p_addr ALIAS for $1;
p_port ALIAS for $2;
ipid integer;
peerid integer;
BEGIN
-- Is the peer already set ?
select into peerid peers.id from peers, ips
where peers.ip = ips.ip and peers.id = ips.id and peers.ip = p_addr and peers.port = p_port;
IF peerid = 0
then
------ Get the ID corresponding to the address
select into ipid id from ips where ips.ip= p_addr;
IF ipid >= 1
then
insert into peers(ip, port, tmstmp) values (p_addr, p_port, date_trunc ('minute', current_timestamp));
select into peerid currval('peers_id_seq');
else
insert into ips(ip,md5) values (addr,'-');
select into ipid currval('ips_id_seq');
insert into peers(ip, port, tmstmp) values (p_addr, p_port, date_trunc ('minute', current_timestamp));
select into peerid currval('peers_id_seq');
end IF;
end IF;
return peerid;
end;$$
LANGUAGE plpgsql;
Hors ligne
#2 23/04/2010 14:04:04
- daamien
- damien clochard
Re : ça neretourne rien
Peut être que peerid est différent de zéro ...
Pourquoi ne pas utiliser RAISE NOTICE pour tracer temporairement le déroulement de ta fonction ?
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
#3 23/04/2010 14:13:40
- R.Seif
- Membre
Re : ça neretourne rien
j'ai complété la condition, "else return peerid;"
et j'ai fait des raise notice à chaque étape, toujours rien!!!!!!!!!!!!!!!
Hors ligne
#4 23/04/2010 14:15:53
- daamien
- damien clochard
Re : ça neretourne rien
j'ai complété la condition, "else return peerid;"
et j'ai fait des raise notice à chaque étape, toujours rien!!!!!!!!!!!!!!!
C'est à dire ?
Aucun des raise notice ne s'affiche ? Que disent les logs ?
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
#5 23/04/2010 14:17:28
- R.Seif
- Membre
Re : ça neretourne rien
mape_add_peer
---------------
(1 file)
tu vois?
Hors ligne
#6 23/04/2010 14:21:11
- flo
- Membre
Re : ça neretourne rien
Tu l'exécutes comment, la fonction?
Hors ligne
#7 23/04/2010 14:22:56
- R.Seif
- Membre
Re : ça neretourne rien
select mape_add_peer ('192.168.1.13',80);
une @ ip et un numéro de port quelconques commes entrées!!!!!
Hors ligne
#8 23/04/2010 15:50:20
- gleu
- Administrateur
Re : ça neretourne rien
Difficile de dire pourquoi, mais il est clair que, comme peerid est NULL, il n'y a pas d'insertion.
Guillaume.
Hors ligne
#9 23/04/2010 23:26:53
- R.Seif
- Membre
Re : ça neretourne rien
mais il doit me retourner la valeur même si elle est nulle!!!!
Hors ligne
#10 24/04/2010 00:07:09
- gleu
- Administrateur
Re : ça neretourne rien
Je crois que vous confondez NULL et 0. NULL, c'est en quelque sorte une absence de valeur.
Oh, et petit conseil, arrêtez avec le point d'exclamation, ça commence à être énervant.
Guillaume.
Hors ligne
Pages : 1