Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: c++ a mysql [vyřešeno]  (Přečteno 1291 krát)

Dragonn

  • Návštěvník
  • Příspěvků: 86
c++ a mysql [vyřešeno]
« kdy: 16 Února 2010, 19:47:30 »
Ahoj všichni!

Snažím se udělat program, který bude vytvářet prostředníka mezi serivou linkou a mysql databází.
Nejprve jsem řešil jak poslouchat na seriovém portu a sbírat příchozí hodnoty (pouze postupné sčítání čísel) a jednou za určitý čas provést akci (uložit do DB). Hledal jsem vlákna, nebo asynchronní přístup k seriovém portu, ale nakonec jsem využil systémového časovače alarm() a zpracování signálu SIGALRM a funguje to jak jsem si představoval.

Teďko když jsem vyřešil komunikaci na seriové lince, řeším komunikaci s mysql a nedokážu si s tím nějak poradit. Nainstaloval jsem libmysql++-dev a program kompiluju s argumentem -lmysqlclient. Průběh g++ nevypíše nic a vytvoří soubor tak, jak má, ale při spuštění vypíše jenom 'Segmentation fault'. Když zakomentuju všechny mysql_* funkce, tak vše ostatní funguje. Vůbec nevím v čem je chyba...

Celý kód zde: http://pastebin.com/d3d8bad33

Děkuju všem za pomoc.

EDIT: Pro ty, kdo se chystají studovat můj kód bych rád vysvětlil chování zařízení připojeném na seriové lince... Zařízení počítá externí pulzy a když dosáhne určitého počtu, odešle nasbíranou hodnotu. Pokud mu pošlete libovolnou hodnotu, odpoví aktuální hodnotou počítadla a začne počítat zase od nuly
« Poslední změna: 16 Února 2010, 23:05:50 od Dragonn »
Pokud něco alespoň trochu funguje, je lepší se v tom nešťourat.
Ntb: MSI EX300X, Core 2 duo 2GHz, 4GB RAM, ATI HD3450 256MB, Ubuntu 9.10

jfoot

  • Aktivní člen
  • *
  • Příspěvků: 197
  • ..nemožné ihned, zázraky do tří dnů...
Re: c++ a mysql
« Odpověď #1 kdy: 16 Února 2010, 22:53:17 »
Nazdar Dragonne,

řekl bych, že Ti v programu chybí tohle : conn = mysql_init(NULL);  , čili  obdržení connect handleru.  Teprve až je v proměnné conn hodnota NOT null, můžeš teprve použít ono mysql_real_connect(conn, "localhost", "server", "mozaika", "server", 0, NULL, 0)
Po šesté atomové válce  povrch planety Rogoz nevypadal pěkně...

Dítě nevinné...Co ty můžeš vědět...o sadomasochistické derivaci oidipovského komplexu...(O.Neff, K. Saudek, Arnal & Dva dračí zuby)

Dragonn

  • Návštěvník
  • Příspěvků: 86
Re: c++ a mysql
« Odpověď #2 kdy: 16 Února 2010, 23:04:40 »
díky moc :-) přesně tenhle jeden příkaz mi tam chyběl, pak už to funguje
Pokud něco alespoň trochu funguje, je lepší se v tom nešťourat.
Ntb: MSI EX300X, Core 2 duo 2GHz, 4GB RAM, ATI HD3450 256MB, Ubuntu 9.10

 

Provoz zaštiťuje spolek OpenAlt.