Plik .mdf w c++

0

Cześć!
Od kilku dni męczę się z programem, który wyciągnie tabele z bazy i zapisze ją do excella. Jeden program już taki napisałem tylko, że jako nie doświadczony programista nie spytałem jakiego formatu jest baza i zrobiłem to w c++ z biblioteką sqlite3 dla .db, natomiast gdy poprosiłem o bazę żeby sprawdzić czy wszystko działa dostałem plik .mdf i .ldf. Uznałem że bułeczka z masełkiem i ogarnę szybciutko, a okazuje się to trudne.
Parę pytań,
-Czy jest możliwość wykonać to w c++, czy jednak muszę użyć c#?
-Czy te dwa pliki mi wystarczą? mam problem z otworzeniem tego w visualu(cały czas walczę!),
-Czy istnieją jakieś darmowe biblioteki, które mi pomogą?
-Jakaś rada?
Dzięki! :)

Edit: support SQLAPI++ napisał mi dosłownie po tym jak napisałem post, że ich biblioteka mi w tym pomoże, ale nadal poproszę o jakąś poradę :)

0

Ale gdzie dokładnie jest problem? Zaimportuj tą bazę do MSSQLa a potem z twojego programu za pomocą SQLa wyciągnij co ci potrzebne.

0

Problem w tym że nie chcę tego importować do mssqla, tzn chcę aby mój program automatycznie każdego dnia otwierał bazę i ją zapisywał jako raport z poprzedniego dnia, a Pan Heniu z recepcji nie musiał wchodzić w excella i klikać. w takim przypadku Pan Heniu musiałby otwierać program do bazy i następnie importować ją do mojego programu, czy się mylę?

0

Ale skąd się niby biorą te pliki mdf w takim razie? o_O

0

Twierdzisz że to już jest wyciągnięty plik z bazy? Bo takowy otrzymałem od kolegi, któremu to robię w ramach podszkolenia się myślałem że dał mi plik główny bazy... :<

0

Ale co ty rozumiesz przez "plik główny bazy"? To są pliki z danymi oraz z logami z bazy, w sensie pliki w których MSSQL zapisuje sobie dane. Jeśli twój program miałby fizyczny dostęp do aktualnych plików to znaczy że równie dobrze mógłby się po prostu łączyć z tą bazą bo stoi ona na tej samej maszynie.

0

W sqlite3 wystarczy że wpiszę polecenie
sqlite3_exec(bazaDanych, "SELECT * FROM tabela;", SQLite_Records, 0, &SQLite_err);
Pobawię się z SQLite_Records i problem mam z głowy, natomiast w mssql nie mogę znaleźć sposobu żeby wydostać dane z tego mdf'a. Ja myślałem że mdf to baza w której są tabele i mogę sobie taką konkretną tabelkę wyciągnąć jak w sqlite3, z tym że nie wiem których bibliotek użyć żebym mógł to zrobić w c++ i tak jak w sqlite3 chciałbym sobie otworzyć bazę ścieżką, a baza będzie na stacji lokalnej gdzie program. W sqlite3 można zrobić sqlite3_open("C:/raporty/baza.db", &bazaDanych); ale niestety nie obsługuje tego formatu.

0

Tak sie nie da bo sqlite to zabawka a MSSQL nie ;] SQLite trzyma dane w dość prosty sposób bo to zabawkowa baza na małe rzeczy. MSSQL sluży do powaznych zastosowań więc dane są składowane w bardziej efektywny sposób. Nie kombinuj tylko łącz się z serwerem bazodanowym po prostu i tam wysyłaj selekty.

0

W takim razie w czym mogę to napisać? support z SQLAPI++ napisał mi że stosując ich bibliotekę da radę to zrobić, szukam już długo rozwiązania, natknąłem się też że można napisać skrypt w języku sql'a (*.sql?) to z takim planem mógł bym napisać program który odpali taki skrypt, .sql zapisał by to do jakiegoś prostszego dla mnie formatu np .db i dalej przetworzyć już byłoby łatwo...
Czy tak się da? jak nie to proszę mi podpowiedzieć jakie mam możliwości :)

1

Trudno powiedzieć bo cały czas nie powiedziałes jak to dokładnie ma działać. Bo jak dla mnie to najprościej byłoby się po prostu z tą bazą połączyć (choćby za pomocą tego sqlapi) a potem po prostu możesz ciągnąć dane z bazy zwykłymi zapytaniami, czyli możesz potem robić select tak samo jak z tego sqlite.

Pacz: http://cplusplus.happycodings.com/algorithms/code1.html

0

Dziękuje :) Wygląda spoko, dzisiaj nie mogę już sprawdzić, ale pewnie zadziała :)

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