Vous n'êtes pas identifié(e).
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
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
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
Deux autres questions :
* quelle version de PostgreSQL ?
* quelle valeur pour LengthValues[0] ?
Guillaume.
Hors ligne
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
Hors ligne
chtit up :-(
Hors ligne
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