Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Microsoft SQL Server / MSDE _ Zapytanie XML lub CSV czy możliwe?

Napisany przez: dudek1989 11.03.2016, 08:36:51

Witam serdecznie,

Posiadam urządzenie które jest swobodnie programowalne w języku C (dokładnie to TinyC - okrojone C) i posiada funkcje pozwalające obsługiwać formaty takiej jak XML czy CSV.
Jako że z bazami danych nie miałem dotychczas wiele wspólnego, a chciałbym zacząć używać ich w swoich aplikacjach na tym urządzeniu, mam do Państwa pytanie, czy jest możliwość komunikowania się z bazą danych MS SQL Server za pomocą któregoś z wyżej wymienionych formatów ?

Chciałbym za pomocą tego urządzenie bezpośrednio np. pobierać i wpisywać nowe rekordy do tabel w bazie danych na komputerze serwerowym.

Z góry dziękuję za pomoc w temacie

Pozdrawiam.

Napisany przez: zegarek84 11.03.2016, 18:43:52

choć nie jestem "programistą" z zawodu i miałem pisać co innego, to mimo to musisz doprecyzować pytanie... zanim zapodam link to komunikacja z bazą wymaga połączenia internetowego - jeśli możesz je nawiązać w dowolny sposób (z bazą) to (no jak nie masz bibliotek trochu zachodu by było) nie o to chodziło... a jeśli nie możesz nawiązać połączenia z BD to i poniższy link nic nie da... jednak wrzucam go, gdyż może chodziło Ci właśnie o to (by na google Cię nakierować):
http://stackoverflow.com/questions/10344553/how-can-i-query-a-value-in-sql-server-xml-column
mysql:
http://dev.mysql.com/doc/refman/5.7/en/xml-functions.html

Napisany przez: dudek1989 12.03.2016, 09:08:36

Urządzenie posiada złącze ethernetowe a ustawienia karty sieciowej można konfigurować.

Właśnie nigdy nie łączyłem się z bazą danych i zastanawiam się czy za pomocą tego urządzenia i np wygenerowanego pliku XML (załóżmy skopiowanego w odpowiednie miejsce w SQL Server mogę odpytać bazę danych, która zwróci mi odpowiednie wartości w postaci pliku XML.
Czytałem o XQuery ale nie wiem czy dobrym kierunku idę...

Bibliotek z rozszerzeniem *.c oraz *.h nie posiadam... o ile takie istnieją...

Napisany przez: zegarek84 12.03.2016, 15:22:39

doprecyzowałeś i stwierdzam, że idziesz w złym kierunku...

jak bardzo to C jest okrojone?? gdyż potrzebujesz właśnie jakiegoś klienta do bazy danych, o ile chciałbyś skorzystać z lokalnej bazy danych np. SQLite to nie potrzebowałbyś nawet połączenia internetowego...

do MSSQL bibliotek musisz sobie sam poszukać, ja jedynie mogę próbować Cię nakierować... jeśli na urządzeniu masz baaardzo ograniczone zasoby jak np. na mikro-kontrolerach AVR to całość można obejść np. komunikując się z innym urządzeniem po TCP lub UDP i w dowolnym innym języku odpytać bazę danych (DB) np.:
http://www.homeguard24.pl/arduino-i-mysql/

co prawda nie MSSQL ale:
http://zetcode.com/db/mysqlc/
https://dev.mysql.com/doc/refman/5.7/en/c-api.html

w sumie to możesz też zmienić kompilator na inny i w wielu przypadkach kompilować na innym urządzeniu (poczytaj)...
a o ile nie masz baardzo ograniczonych zasobów i system tego urządzenia jest na liście wspieranych przez C++ Qt http://doc.qt.io/QtSupportedPlatforms/index.html to polecałbym skorzystać z ich API w C++, nie musisz korzystać od razu z całego GUI a mają dobrą dokumentację...

[EDIT]
jeśli to C masz baaardzo okrojone i wciąż chcesz pisać w TinyC to poszukaj bibliotek do komunikacji sieciowej i by było łatwiej rozwiązanie oprzyj poprzez komunikacje z innym urządzeniem/serwerem jak w pierwszym linku Arduino i MySQL...

Napisany przez: dudek1989 12.03.2016, 18:54:53

Okrojone jest na tyle że nie posiada np. struktur, przedrostka extern oraz static, nie posiada oczywiście funkcji windowsowskich itp. i pewnie coś by się jeszcze znalazło...

Zależy mi na bazie MS SQL Server, gdyż jest ona bardzo często spotykana jako serwer bazy danych w różnych zakładach przemysłowych a MySQL to bardziej strony www

Myślę że faktycznie najlepszym rozwiązaniem będzie stworzenie warstwy pośredniej pracującej na komputerze serwerowym kontrolującej przepływ między tymi warstwami, czyli taki układ: URZĄDZENIE <--->PROGRAM NA PC (np. SERWEROWYM) <---> BAZA DANYCH.
Komunikować ze światem zewnętrznym za pomocą TCP czy RS232,RS485 lub innych przemysłowych standardów potrafię, natomiast póki co nie potrafię programować na PC i dlatego chciałem jakby pominąć ten etap, ale myślę że będzie to dobra motywacja do nauki C# i Visual Studio smile.gif


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)