IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

gestion des messages d'erreur dans un procédure stockée


Sujet :

PostgreSQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut gestion des messages d'erreur dans un procédure stockée
    Bonjour,

    Je fais une requête pour trouver la localisation d'une adresse ip. Je n'ai aucun problème avec cette requête :

    par exemple ip : 82.236.253.111

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT geoip_country FROM geoip WHERE (16777216*82 + 65536*236 + 256*253 + 111) BETWEEN geoip_begin_num AND geoip_end_num
    Le problème surgit si l'adresse IP vient d'un réseau privé. Dans ce cas j'ai un message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error : integer out of range
    Aujourd'hui je ne sais pas comme outrepasser ce message d'erreur et surtout faire en sorte que cela ne stoppe pas ma procédure stockée.

    j'aimerai gérer ce message d'erreur et mettre une valeur spécifique dans ma colonne ip_pays dans le cas où la localisation n'aboutit pas.

    merci de m'expliquer si vous le pouvez comment gérer cela

    merci à tous !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 143
    Points
    143
    Par défaut
    Plutôt que de passer par un entier, pourquoi ne pas avoir utilisé les types réseau de PostgreSQL, notamment inet ? Voir http://www.postgresql.org/docs/8.2/i...net-types.html pour les détails sur les types et http://www.postgresql.org/docs/8.2/s...tions-net.html pour les fonctions.

    Quant à ta question originelle, regarde du côté des exceptions : http://www.postgresql.org/docs/8.2/s...ERROR-TRAPPING

    Ça te permet de récupérer l'erreur et de faire un autre traitement à la place.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    677
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 677
    Points : 160
    Points
    160
    Par défaut
    j'utilise la base de donnée geoip et leur formule de geolocalisation

    ipnum = 16777216*w + 65536*x + 256*y + z

    ou IP Address = w.x.y.z

    que m'apporterait l'utilisation d'inet ?

    Cordialement

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 143
    Points
    143
    Par défaut
    de ne pas t'embêter à faire le calcul vers integer (ou plutôt int8), de pouvoir calculer rapidement réseaux, sous-réseaux, etc.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Gestion des messages d'erreur
    Par elric dans le forum IHM
    Réponses: 11
    Dernier message: 05/11/2009, 11h30
  2. récupération des message d'erreurs dans une jsp
    Par clement42 dans le forum Struts 1
    Réponses: 17
    Dernier message: 23/10/2006, 11h59
  3. Réponses: 2
    Dernier message: 12/10/2006, 23h36
  4. [GUI] Gestion des messages d'erreurs
    Par agent007se dans le forum C++
    Réponses: 11
    Dernier message: 28/07/2006, 20h52
  5. gestion des messages d'erreurs
    Par keibenoit dans le forum Access
    Réponses: 2
    Dernier message: 31/05/2006, 14h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo