Portál AbcLinuxu, 11. května 2024 18:08


Dotaz: C++ a promeny

29.12.2006 12:15 Rycmond | skóre: 10 | Úpice
C++ a promeny
Přečteno: 281×
Odpovědět | Admin
Dobry den, nevim jestli sem tenhle dotaz patri jde uz primo o problem s programovanim.

mam takovyto program vse funguje. kdyz dam do dotazu na databazi misto promene teplota1 primo cislo , tak se do databaze zapise ale kdyz tam dam promenou teplota tak se nezapise. Potreboval bych poradit ja to zapsat aby to fungovalo.

predem dekuji za rady =:-)

float teplota1=111;

if(!mysql_real_connect(&m,"localhost","jmeno","heslo","databaze",0,NULL,0)) printf( "Nepodarilo se pripojit kdatabazi: %s\n",mysql_error(&m)); else printf("Pripojeno...\n");

printf("xxxxxxx");

if (mysql_query(&m, "insert into teploty (cidlo1)values('teplota1');")) { printf("chyba pri vykonavani dotazu...\n"); } else{ printf("Dotaz vykonan...\n"); }
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.12.2006 12:22 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: C++ a promeny
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi byste si měl především uvědomit, jaký je rozdíl mezi kompilovaným a interpretovaným jazykem, tohle samozřejmě v C++ principiálně fungovat nemůže. Buď budete muset použít parametrizované dotazy (pokud už to interface MySQL podporuje) nebo tu hodnotu převést na string a zakomponovat do dotazu (fuj). Mimochodem, všiml jsem si toho u MySQListů už víckrát, co je to za strašný zlozvyk insertovat do číselného sloupce string?
29.12.2006 13:02 cynik
Rozbalit Rozbalit vše Re: C++ a promeny
Odpovědět | | Sbalit | Link | Blokovat | Admin
v C++ se musi delat striktni rozdil mezi typama promennych. Program funguje tak, ze se nahodi typy promenych a pak se s nima delaji nejaky veci...promene jsou v podstate jen nazvy cisel, ktery se muzou menit a ty delas to, ze volne zamenujes nazev promene teplota1 s jejim obsahem.

Navic, cislo float neni totez co string. Takze pokud skutecne programujes v C++ (ne jen v cistem C), pak se dela rucni prevod typu float na string timle zpusobem:
float teplota1 = 111;
string teplota;
stringstream oss;
oss << teplota1;
oss >> teplota;

string dotaz = "insert into teploty (cidlo1)values('"+teplota+"';";
if(mysql_query(&m,dotaz)) {...}
29.12.2006 14:34 Rycmond | skóre: 10 | Úpice
Rozbalit Rozbalit vše Re: C++ a promeny
tak jsem pouzil ten prevod ale pri kompilaci to vypise tyhle chyby

gameport.c: In function `int main()': gameport.c:153: error: cannot convert `std::string' to `const char*' for argument `2' to `int mysql_query(MYSQL*, const char*)'

na radku 153 je prave if(mysql_query(&m,dotaz)) {
29.12.2006 14:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: C++ a promeny
c_str()
29.12.2006 14:55 podlesh | skóre: 38 | Freiburg im Breisgau
Rozbalit Rozbalit vše Re: C++ a promeny
Odpovědět | | Sbalit | Link | Blokovat | Admin
Asi by bylo lepší začít nějakým Hello, world a pak pokračovat pomalu dál, než se pokoušet o programování bez elementárních znalostí.
29.12.2006 14:59 Rycmond | skóre: 10 | Úpice
Rozbalit Rozbalit vše Re: C++ a promeny
jojo to mate pravdu , myslel jsem ze to bude o neco jednodusi.

Ale jinak diky vsem za pomoct uz to funguje =:-).

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.