Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Merci pour votre indication et la fonction "atol" qui rend bien le 'int' attendu. En revanche, lorsque j'essaie de l'utiliser pour des "float" seuls apparaissent les nombres avant la virgule. Par exemple sur la base de données j'ai le 'real' 12.45, avec lecture d'un code C j'obtiens '12.000000'.
Edit: Avec la fonction 'atof' mon 'real' 12.45 de la base de données se transforme en 12.4502... Y-a-t'il une astuce pour lire les "float" ?
Je vous remercie par avance pour votre aide,
Cordialement
Bonjour,
Merci pour votre aide ! J'ai retesté le code sans la ligne
binaryVal = (uint32_t) compteurI; //compteurI est un int
Soit le code suivant :
//binaryVal = (uint32_t) compteurI; //compteurI est un int
paramValues[0] = (char *) &compteurI;
paramLengths[0] = sizeof(compteurI);
paramFormats[0] = 1; /* binary */
res=PQexecParams(conn,"insert into input(\"T1\") values ($1::integer)",
1, // number parameters
NULL, // let the backend deduce param type
paramValues, //
paramLengths, //
paramFormats, //
1);
Et le codage persiste "1" correspond à 16777216 dans la base de données... ?! Est-ce que ça peut être lié à l'affichage des colonnes de ma base de données ?
Bonjour,
J'ai installé PostgreSQL 9.3 et souhaite à partir d'un code C communiquer (écrire et lire) dans ma base de donnée. La connexion avec la base de données fonctionne et je suis capable d'écrire dans la base de données mais une question subsiste : je cherche à écrire un "integer" (genre 1, 2, 3, 4...) et dans ma base de données, surprise j'obtiens : 16777216 (=2^24), 33554432 (=2^25), 50331648 (=2^24 + 2^25), 67108864 (=2^26)...
J'ai lu dans la doc de PostgreSQL que les integer sont associés au uint32, mais pourquoi le chiffre "1" est-il associé au 24ème bit ? Comment puis-je procéder pour effectivement lire le "1,2,3,4..." dans ma base de données et non "16777216", etc. ?
La partie de code que j'utilise :
binaryVal = (uint32_t) compteurI; //compteurI est un int
paramValues[0] = (char *) &binaryVal;
paramLengths[0] = sizeof(binaryVal);
paramFormats[0] = 1; /* binary */
res=PQexecParams(conn,"insert into input(\"T1\") values ($1::integer)",
1, // number parameters
NULL, // let the backend deduce param type
paramValues, //
paramLengths, //
paramFormats, //
1);
Je vous remercie par avance pour toute aide que vous pourrez me fournir !
Bonne journée !
Pages : 1