libpqxx posgres le type double et l'affichage ?
hello
Je ne parviens pas a afficher ce que je veux:
disons que j'enregistre dans un champ A de type : double precision la valeur 5000000000000000000
celon pgadmin3 et le shell ,le contenu est : 5e+18
donc comment afficher avec std::cout la valeur 5e+18 sous la forme de 5000000000000000000 ?
voila un petit bout de code (pas aux point mai pour donner une idée)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
void cSqlPqxx::AfficheAll(){
if (auto_transaction){ cSqlPqxx::StartTransaction(); } //permet la requette
const pqxx::result& r =(*p_work).exec(cSS.Get_AfficheFull());//Get_AfficheFull est la requette
for (pqxx::result::const_iterator cit = r.begin();
cit != r.end();//boucle sur le nombre de tuple (ligne renvoiyée)
++cit)
{
//boucle sur les collonnes
for (unsigned int countcol = 0; countcol < r.columns();countcol++){
//je gere de cette menière le type de donnée peut etre il y a mieux ?
switch ((*cit).column_type(countcol))
{
case 23: //std::cout << r.column_name(countcol) << " ===>" << (*cit).column_type(countcol) << std::endl;// int --> int
std::cout <<(*cit)[countcol].as(int ()) << std::endl;
break;
case 25://std::cout << r.column_name(countcol) << " ===>" << (*cit).column_type(countcol) << std::endl;//std::string -->text
std::cout <<(*cit)[countcol].c_str() << std::endl;
break;
case 20://std::cout << r.column_name(countcol) << " ===>" << (*cit).column_type(countcol) << std::endl;//long-->big int
std::cout <<(*cit)[countcol].as(int ()) << std::endl;
break;
case 700://std::cout << r.column_name(countcol) << " ===>" << (*cit).column_type(countcol) << std::endl; //float -->real
std::cout <<(*cit)[countcol].as(float ()) << std::endl;
break;
case 701://std::cout << r.column_name(countcol) << " ===>" << (*cit).column_type(countcol) << std::endl; //double -->real
std::cout << (*cit)[countcol].as(double ()) << std::endl;
break;
default:
std::cout << r.column_name(countcol) << "ERREUR type non gérer!===>" << (*cit).column_type(countcol) << std::endl; //float -->real
}
}
}
if (auto_transaction){ cSqlPqxx::Commit(); }
} |
la doc
http://pqxx.org/devprojects/libpqxx/...tml/Reference/
lien direct sur la fonction:
http://pqxx.org/devprojects/libpqxx/...ce/a00076.html
certainement un problème avec std::cout << (*cit)[countcol].as(double ()) << std::endl;
mai je ne voit pas ce que je peux faire ??