Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
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 28/07/2007, 16h35   #1
Invité de passage
 
Inscription : juillet 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : juillet 2007
Messages : 1
Points : 0
Points : 0
Par défaut Problème de champ numeric dans les procédures stockées

Bonjour,

Je viens juste de débuter avec firebird ( 1.5 ) et je découvre des trucks bisard tel que le suivant :


dans uen procédure stocké j'ai un champ numérique ( decimal (12,2) ) avec une variable numeriQUE DANS LA PAROCDURE STOCKé QUI REPRESENTE une collone dans une table, en voulant faire un insert dans la table j'ai plusieurs cas :

1 - si la variable a une valeur arrondi ( pas de décimal) l'insertion se fait lme plus normalement.

2 - si la variable a une valeur avec un décimal ( ex 15,25) l'erreur -804 s'affiche en mentionnant qu'il y'a plus de valeurs que de champ de la table : comme si le montant represente deux champ laprtie entière 1 et la partie décima un autre ( pb de la vergule).

NB : En faisant une requête sous SQL avec les même valeurs, l'inserstion sa passe sans pb.


Est ce que quelqu'un peut m'aider.

Merci d'avance.
aamine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2007, 08h10   #2
Modérateur
 
Avatar de SergioMaster
 
Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 3 631
Détails du profil
Informations personnelles :
Nom : Serge Girard
Âge : 55
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 3 631
Points : 4 533
Points : 4 533
le code de la procedure me semble utile pour répondre à la question
non ?
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2007, 11h46   #3
Membre régulier
 
Inscription : février 2005
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 100
Points : 88
Points : 88
La réponse est simple :
C'est normal.

En fait, la séparateur de partie entière et décimale d'un flottant en SQL n'est naturellement pas une ",". C'est obligatoirement le "." car le caractère "," est un séparateur de champs.

Exemple avec une table
Code :
1
2
3
4
5
6
 
CREATE TABLE TEST
(
   num integer,
   flottant numeric(9,2)
);
de code qui fonctionne :
Code :
1
2
 
INSERT INTO TEST (num, flottant) VALUES (1, 2.5);
et code qui ne fonctionne pas
Code :
1
2
 
INSERT INTO TEST (num, flottant) VALUES (1, 2,5);
car interprété de la même façon que
Code :
1
2
 
INSERT INTO TEST (num, flottant) VALUES (1, 2, 5);
sillycoder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 21h11   #4
Membre Expert
 
Avatar de edam
 
Inscription : décembre 2003
Messages : 1 716
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 1 716
Points : 1 783
Points : 1 783
si crée tes requette à lamain en utlisant par ex:floattistr modifier decimalseparateur (je crois), c'est un des paramétres de delphi voir faq
__________________
PAS DE DESTIN, C'EST CE QUE NOUS FAISONS
edam 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 20h36.


 
 
 
 
Partenaires

Hébergement Web