Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 27/11/2008 15:08:13
- elekis
- Membre
[libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
bonjour,
voila, je comprend pas trop, j'ai l'erreur suivante sur cette petite portion de code
char *paramValues[5];
int LengthValues[5];
int FormatValues[5];
...
realvalue[0] = 2.2;
paramValues[0] = (char*)&realvalue[0];
LengthValues[0] = sizeof(realvalue[0]);
printf("%f %d\n",realvalue[0],LengthValues[0]);
FormatValues[0] = 1;
res = PQexecPrepared(conn,
"",
1,
paramValues,
LengthValues,
FormatValues,
1);
testres(res);
j'ai l'erreur suivante, et je ne sais pourquoi :
longueur invalide dans la valeur externe ½ numeric
si je comprend bien il rale sur le fait que la longeur est mauvaise mais bon , c'est la longueur d'un double
je sais pas si cela a avoir mais voici comment la table est creer
CREATE TABLE tab_3 (col_1 numeric(53,2), col_2 BIGINT, col_3 TEXT)
si qqn a une idée.??
merci
a++
Hors ligne
#2 27/11/2008 15:22:21
- gleu
- Administrateur
Re : [libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
Un "double" n'a pas forcément un format 51.2. Je suppose que ParamValues[0] est la valeur de col_1. Que donne un printf de cette valeur ? Et quelle est la requête associée au PQexecPrepared ?
Guillaume.
Hors ligne
#3 27/11/2008 15:29:45
- elekis
- Membre
Re : [libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
salut et merci
la requete est ceci
res = PQprepare (conn,
"",
"INSERT INTO tab_3 VALUES ($1, 2, 'kk')",
1, /* one param */
NULL);
et le printf donne ceci
2.200000 8
les données sont declaré comme ceci
double realvalue[5];
merci
a++
Dernière modification par elekis (27/11/2008 15:35:44)
Hors ligne
#4 27/11/2008 15:40:56
- gleu
- Administrateur
Re : [libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
Deux autres questions :
* quelle version de PostgreSQL ?
* quelle valeur pour LengthValues[0] ?
Guillaume.
Hors ligne
#5 27/11/2008 15:47:02
- elekis
- Membre
Re : [libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
c'est la version 8.3 de postgres
et lenthtvalues[0] = 8 c'est le second chiffre imprimé par
printf("%f %d\n",realvalue[0],LengthValues[0]);
et donc 2.200000 8
merci
a+++
Dernière modification par elekis (27/11/2008 15:48:53)
Hors ligne
#6 27/11/2008 16:27:30
- elekis
- Membre
Re : [libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
Hors ligne
#7 28/11/2008 09:20:35
- elekis
- Membre
Re : [libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
chtit up :-(
Hors ligne
#8 28/11/2008 11:57:04
- elekis
- Membre
Re : [libpq] ERREUR: longueur invalide dans la valeur externe ½ numeric
bon alors, j'avance
la ou je comprend pas, c'est que si je met
intValues[0] =5;
dans la db, j'ai 83886080
et si je met
intValues[0] =83886080;
dans la db, j'ai 5.
ha vi et 83886080 en hexa , cela donne 5000000
KEZAKO???? comprend plus trop :-(
merci
a++
Dernière modification par elekis (28/11/2008 12:11:17)
Hors ligne