Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2007, 23h24   #1
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 :
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 :
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
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 12h57   #2
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Quelqu'un aurait il une idée?
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 22h34   #3
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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é.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2007, 09h32   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 :
1
2
3
4
5
6
@a = 1;
@b = 2;
@c = 12;
CALL maprocstock(@a,@b,@c)
 
SELECT @c
Affiche 3.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h07.


 
 
 
 
Partenaires

Hébergement Web