Skocz do zawartości

C++ I łączenie Do Bazy Danych


Mikołaj

Rekomendowane odpowiedzi

Witam

W php do łączenia z dowolną bazą danych można wykorzystać np ADODB, ma też swoje wbudowane funkcje update, getall itd itp. Szukam czegoś takiego ale dla C++. Musi się łączyć z MySQL i PostreSQL i oczywiście liczy się jak najlepsza wydajność takiego rozwiązania. Oczywiście też dobrze żeby była do tego dobra dokumentacja, żeby się nie zajechać przy tym.

Jak na razie znalazłem coś takiego: http://hk-classes.sourceforge.net/ i http://libdbi.sourceforge.net/.

Ktoś korzystał z jakiejś biblioteki uprzyjemniającej połączenia z bazami danych?

Odnośnik do komentarza
Udostępnij na innych stronach

Na pierwszy rzut oka wygląda przyjemnie. Pisałeś coś z użyciem tego? bo pierwsze pytanie jaki mi się nasuwa, to gdzie tam się podaje adres serwera do którego chce się połączyć, bo jakoś nie do końca jest to widoczne na przykładach. Jeszcze pytanie jak się sprawa ma z wydajnością, chociaż z racji tego że wygląda na prostą bibliotekę, wydajność powinna być dość wysoka.

Odnośnik do komentarza
Udostępnij na innych stronach

Połączenie: http://soci.sourceforge.net/doc/basics.html

Jak jeszcze w c++ pisałem, to próbowałem swoich sił z tą biblioteką i nawet coś mi zaczęło wychodzić. Niestety do linq to sql z .net frameworka się to nie umywa ;)

Co do wydajności, to ja się nie mogę wypowiedzieć. Podejrzewam, że na oficjalniej liście mailingowej już ktoś ten temat poruszył, więc możesz poszukać. http://sourceforge.net/mailarchive/forum.p...name=soci-users

Odnośnik do komentarza
Udostępnij na innych stronach

pewnie jak kazda biblioteka wrapujaca ma pewien narzut wydajnosci. ja uzywalem tylko czesciowo hibernate i jdbc. no i roznica jakas jest, ale wiadomo za wygode sie placi. mimo wszystko jednak sadze ze w c++ moze byc troche szybciej niz w javie.

Odnośnik do komentarza
Udostępnij na innych stronach

no chodzi też o to żeby było wydajne, co do funkcjonalności i wygody, hmm, myślę że to wystarczy ;]

co do połączenia: session sql(oracle, "service=orcl user=scott password=tiger");

to gdzie tu wstawić adres serwera ? w service? bo to jedyne miejsce gdzie bym to wstawiał

 

------- edit

jeszcze jedno pytanie, kiedyś miałem ten problem, doinstalowałem co trzeba i działało, teraz znowu mam to samo i nie pamiętam co miałem zrobić ....

mianowicie, nie mam bibliotek iostreams, cstdlib itp .... jaka paczka za to odpowiada w Fedorze 11? juz godzinę po pakietach wertuję i nic mi się nie przypomina ;/

Odnośnik do komentarza
Udostępnij na innych stronach

dzięki WalDo, znalazłem brakowało tego compat-gcc-34-c++, tylko jeszcze muszę symlinki zrobić bo w include se zrobiło folder c++ no ale to tylko szczegół.

lszk dzięki za opis, szkoda że go nie mieli gdzieś od razu na widoku, myślę że dla postgresql jest to samo. Swoją drogą raczej wybiorę inną bibliotekę, bo poszukałem na tej liscie mailingowej testów soci no znalazłem: http://art-blog.no-ip.info/cppcms/blog/post/12 (swoją droga ciekawy projekt gostek robi), wyszło na to że bardziej wydajne od soci jest dbi, bądź jak ktoś lubi soci to dbxx (trochę wolniejsze od dbi ale szybsze od soci) jako, że poszedłem jeszcze dalej to znalazłem taki test: http://logweaver.org/doc/index.php/OpenDBX/Comparison (i wyszło że openDBX jest szybszy od dbi i niewiele wolniejszy od MySQL native, jeszcze tylko muszę testy z postgresql'em poszukać)

Więc jak na razie najszybszy okazuje się OpenDBX, na pierwszy rzut oka (mojego ;]) nie taki przyjemny jak soci, ale też nie takie złe, poczytam dokumentację i będzie ok ;]

Odnośnik do komentarza
Udostępnij na innych stronach

[...] brakowało tego compat-gcc-34-c++, tylko jeszcze muszę symlinki zrobić bo w include se zrobiło folder c++ no ale to tylko szczegół.
Wg mnie nowsza i przez jak sądzę bardziej kompatybilna z gcc 4.x wersja jest w libstdc++-devel (/usr/include/c++/4.3.2/iostream) :unsure: Ale nie znam się za bardzo.

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Starsze programy wymagają takich paczek jak compat-gcc-34-c++ bo są mocno "zakurzone". Nie wnikałem nigdy o co chodzi, ale to jest jakiś "pomost" zapewniający kompatybilność ze starym gcc, który przetwarza instrukcje między współczesnym systemem, a instrukcjami zrozumiałymi dla starego programu. Czy jakoś tak ;) Jest też druga opcja: przepisać program na nowo.

Odnośnik do komentarza
Udostępnij na innych stronach

jeszcze nie mam co przepisywać na nowo, ale też mi będzie chodziło o kompatybilność z innymi, no ale to se już dogadamy. WalDo, masz rację nie wiedziałem że w include jest folder c++/wersja/, nie wiem po co oni to wrzucili do tego folderu, a jeszcze w dodatku szukałem złej nazwy pliku i nie znalazłem tego. Dobra temat z bibliotekami standardowymi można zakończyć, jak ktoś ma jeszcze jakieś uwagi i sugestie do bazy danych to bardzo chętnie poczytam ;]

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...