Mysql API a Visual C++

0

Moja sytuacja:

  1. Aplikacja typu SDI 2. Dodalem klase do obslugi bazy Mysql (stworzylem polecenia: OpenDatabase, OpenRecordset, MoveNext, Move Prev itd. itd. ...) - o nazwie np. CMyDatabase
  2. W klasie dokumentu aplikacji wywoluje przy starcie programu CMyDatabase::OpenDatabase(...) - czyli inicjuje strukture *MYSQL i jest OK......
    DOPOKI ...
    nie s<ort>proboje</ort> otworzyc Recordsetu z klasy jakiegos okienka dialogowego,
    wywolywanego z menu...
    Wszystko dziala jesli w jakiejś n-tej klasie wykonam ponownie OpenDatabase ( w ktorej jest oczywiscie mysql_real_connect) - ale to chyba zle rozwiazanie - co chwila laczyc sie i rozlaczac z baza ????

Chodzi mi o to jak odwolywac sie do raz otworzonej bazy a nie ciagle ja otwierac i zamykac ....
Destruktor klasy CMyDatabase jest oczywiscie pusty.
Czy *MYSQL po pierwszym otworzeniu gdzies "zyje" i mozna sie do niego odwolac, czy jest wywalany z pamieci???

Pomocy !!!! - bo nie mam zadnego pomyslu!
moze macie jakies linki do programow na MySQL'u - ale nie takich trywialnych main() { .....} i koniec - tylko z wieloma klasami wykonujacymi operacje na MySQL'u ???
Cos jak np. zrodla do Pomocnik MySQL 1.1 ??? - albo innych tego typu rozbudowanych aplikacji ????

0

Rozwiązanie 1: zrób metody w swojej klasie CMyDatabase statycznymi;

2: umieść obiekt klasy CMyDocument globalnie, np. w CxxxApp; wtedy masz dostęp do bazy przez:

theApp.mojabaza.OpenDatabase(...);

[theApp jest standardowo tworzone przez kreatora, wystarczy na początku pliku .cpp zadeklarować:

extern CxxxApp theApp;

]

Może tak byś jeszcze zamykał połączenie z bazą? :> Destruktor to bardzo dobre miejsce...

1 użytkowników online, w tym zalogowanych: 0, gości: 1