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

SQL Procédural MySQL Discussion :

Fonction utilisateur et les accents


Sujet :

SQL Procédural MySQL

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut Fonction utilisateur et les accents
    Bonjour,
    Dans mon projet je fais en sorte que les opérations d'écriture passe par des fonction utilisateur mysql. A partir de là je constate que les mots avec des accents ne fonctionne pas. Par contre, si je passe par directement par la requête d'insert les mots ayant des accents ça passe.

    Voici la fonction d'insertion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE FUNCTION `NewDescription`(p_name VARCHAR(255), p_description TEXT)
        RETURNS mediumint(10)
        DETERMINISTIC
        CONTAINS SQL
        SQL SECURITY DEFINER
        COMMENT ''
    BEGIN
         INSERT INTO `zorha_prd_description` (`name`, description) VALUES (p_name, p_description);
         RETURN LAST_INSERT_ID();
    END;
    Autre chose de bizarre que je viens de voir.
    Dans EMS j'ai généré une vue. Et j'ai eu cette syntaxe d'ajouter.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE ....
    SELECT ....
    WHERE nom = _utf8'P' ...
    le 'P' c'est moi qui l'a rajouté mais le _utf8 devant quel est l'explication?
    Merci

  2. #2
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut
    Quelqu'un aurait il une idée?

  3. #3
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut
    Apparement, si j'encapsule ma fonction via une procédure les accents sont accepté. Donc la solutions c'est de transformer mes fonctions en procédure stocké.

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 500
    Points : 6 084
    Points
    6 084
    Par défaut Fonction et Procédures stockées
    Du nouveau.
    En faite, les fonctions utilisateurs dans Mysql n'ont pas vocation à faire des opérations d'écriture avec des données venant des utilisateurs. Je pense que leurs roles est de faires des opérations interne. Des calcules, des retours d'information, etc...
    Pour des opérations avec des données utilisateurs entrainant une action d'écriture dans la base de données c'est plus le boulot pour les procédures stockés.
    C'est peut être pour cela que j'avais des problèmes d'accents avec les fonctions car ce dernier ne devais pas gérer les jeux de caractères spécifiques en paramètres.
    Pour résoudre le probleme du return inexistant dans les procédures il faut utiliser le OUT mais le faire passer en paramètre via une variable.
    Dans la prod stock il fait l'addition de a et b et le resultat de l'opération se trouve dans c.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    @a = 1;
    @b = 2;
    @c = 12;
    CALL maprocstock(@a,@b,@c)
     
    SELECT @c
    Affiche 3.

Discussions similaires

  1. [PHP 5.0] fonction pour gerer les accents dans une chaine
    Par adel25 dans le forum Langage
    Réponses: 1
    Dernier message: 21/08/2013, 14h36
  2. [Encodage] Quelles fonctions pour afficher les accents correctement ?
    Par Sayrus dans le forum Langage
    Réponses: 16
    Dernier message: 28/07/2011, 12h08
  3. Réponses: 2
    Dernier message: 26/07/2007, 14h30
  4. Fonction pour effacer les accents
    Par repié dans le forum Oracle
    Réponses: 6
    Dernier message: 25/08/2006, 14h53
  5. [Tableaux] Fonction str_replace et les accents
    Par GarGamel55 dans le forum Langage
    Réponses: 5
    Dernier message: 18/02/2006, 18h05

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