Czy ktoś może orientuje się czy Microsoft ma coś przeciwko (czy może wręcz przeciwnie), aby stosować bazę danych MS Access w programach komercyjnych. Program Płatnik domyślnie oparty jest o bazę Access'ową, ale nie wiadomo czy Prokom, a później Asseco musiało wykupywać u nich jakąś licencję, albo podpisywać stosowne umowy. Macie jakiś pogląd na ten temat ?
Przy takiej ilości wolnych/darmowych baz danych, pchać się w coś, co jest problematyczne w sieci, kompatybilne tylko ze sobą itd?
Rzekłeś o płatniku. Próbowałeś choć raz w życiu konwersji na MS-SQL ?
Jakbym już musiał się uzależniać od konkretnie MS, to w linii embeded-MSSQL -> Express SQL -> płatne
*) właściwa nazwa marketingowa embedded mi uleciała z głowy
Chciałem napisać program do budżetu domowego. Tego typu programy bazują na prostych bazach danych.
MS Access ma następujące zalety:
- jest popularny,
- znaki kodowane w Unicode,
- nie wymaga instalowania serwera bazodanowego i jego konfigurowania w sieci,
- zapewnia pełne wsparcie dla SQL i typów danych,
- daje możliwość dostępu do bazy danych wielu procesom (operacja zapisu do bazy danych blokuje plik),
- od biedy umożliwia pracę na wielu stanowiskach po udostępnieniu pliku w sieci,
- cała baza danych mieści się w jednym pliku, który można swobodnie kopiować z miejsca na miejsce bez ryzyka uszkodzenia danych.
Zna ktoś bazę danych która daje podobne możliwości ? Chętnie przemyślę wasze sugestie.
Jeśli chodzi o SQLite to muszę powiedzieć, że ta baza ma pewien problem, który mnie od niej odpycha - nie można wykonać polecenia modyfikacji kolumny (ALTER TABLE MODIFY). Aby zmodyfikować kolumnę np. rozszerzyć pole tekstowe należy zmienić nazwę tabeli, utworzyć nową tabelę z prawidłową definicją kolumny i skopiować dane pomiędzy nimi. Kiepskie to, a wcześniej, czy później ten problem się pojawi.
A ja polecę https://firebirdsql.org/ jest to serwer który ma również wersję Embedded. Zatem mając gotową aplikację możesz bez problemu łączyć się do pełnoprawnego serwera (kwestia zmiany w parametrach programu lokalizacji bazy) oraz do wersji embedded która nie wymaga instalacji, a tylko wrzucenia odpowiednich plików do katalogu programu.
Nie trzeba mieć licencji, tyle że na komputerze na którym będzie uruchamiany program musi być zainstalowany odpowiedni sterownik by móc operować na tej bazie danych w przypadku braku accessa z offica. I jak na komputerze jest office 32 bitowy bez accessa to nie zainstalujemy 64 bitowego sterownika, ogólnie jest mnóstwo problemów i zabawy z tym. Już nie wspominając że dialekt sql obsługiwany przez bazy *.mdb jest trochę inny od standardowego.
Zdecydowanie mniej problematyczny i bardziej zgodny ze standardem jest SQLite, którego również polecam.
Z tego co kojarzę, to w SQLite nie ma typu varchar
- jest tylko text
. Zatem nie musisz rozszerzać kolumny tekstowej, cokolwiek tam wpiszesz, to zostanie zapisane.
Zna ktoś bazę danych która daje podobne możliwości ? Chętnie przemyślę wasze sugestie.
oprócz instalacji silnika bazy, która jest bardzo prosta, to Firebird spełnia niemal wszystkie Twoje wymagania
a jeśli zrezygnujesz z pracy w sieci, to Embedded Firebird nie wymaga żadnej instalacji
Nie wiem co się ostatnio dzieje, ale kolejne poprawki do Office Win i coraz gorzej to działa. Ostatnio jak ulepszyli Accessa to przestały działać niektóre typy sqli z poziomu VBA ;-D i nie tylko... chyba :D
Mam niestety pod opieką jedną taką bazę Accessową i musiałem sqle na kursory przepisywać i to w trybie plinym ;->
Sqlite jakoś stabilniejsze jest :D choć oba w dużych zastosowaniach są takie sobie ;)
czarasd napisał(a):
Chciałem napisać program do budżetu domowego. Tego typu programy bazują na prostych bazach danych.
MS Access ma następujące zalety:
MS Access nie ma żadnych zalet w porównaniu do innych rozwiązań typu embedded.
- jest popularny,
Był popularny.
- znaki kodowane w Unicode,
A która baza tego nie ma?
- nie wymaga instalowania serwera bazodanowego i jego konfigurowania w sieci,
Nieprawda; żeby to działało poprawnie, to musi być dostępny JetEngine czyli konieczna jest instalacja MDAC.
Niektóre Windowsy to mają, inne nie - lepiej zawsze instalować.
Konfiguracja sieciowa jest bardziej upierdliwa, jakieś udziały dyskowe, uprawnienia itd.
A poza tym, Access po sieci działa gorzej niż źle.
- zapewnia pełne wsparcie dla SQL i typów danych,\
Ty naprawdę nie wiesz o czym mówisz...
Zapewnia, ale ze swoim własnym standardem.
A ten jego dialekt SQL to już w ogóle jest mało śmieszny...
- daje możliwość dostępu do bazy danych wielu procesom (operacja zapisu do bazy danych blokuje plik),
DBFy też na to pozwalają.
I wszystkie inne silniki bazodanowe.
- od biedy umożliwia pracę na wielu stanowiskach po udostępnieniu pliku w sieci,
Od biedy...
- cała baza danych mieści się w jednym pliku, który można swobodnie kopiować z miejsca na miejsce bez ryzyka uszkodzenia danych.
Tak jak i inne bazy danych, np. Firebird albo SQLite.
Zna ktoś bazę danych która daje podobne możliwości ? Chętnie przemyślę wasze sugestie.
Firebird.
PostgreSQL
MS SQL EXpress/LocalDB
Mogę tak cały dzień...
Ale prawda jest taka, że dziś Access to fatalne rozwiązanie.