Jaka alternatywa dla FireDAC?

0

Chodzą słuchy, że Embarcadero kombinuje z FireDAC jako AddOn. Mobile jest już włączony od wersji Pro, a FireDAC jest włączony od wersji Enterprise. Na stronie nie ma już czegoś takiego jak FireDAC. Jest tylko jako osobna cecha w rozpisce poszczególnych wersji. Opcją pozostania przy FireDAC jest zakup wersji Enterpsise, co zaczyna być już droższą zabawą. Z opcji, które oferuje wyższa licencja praktycznie nic mi się nie przyda (poza FireDAC):

  • RAD Server Deployment License - nie korzystam a jedna licencja (na zachętę chyba), w razie wykorzystania to trochę mało
  • DataSnap multi-tier SDK - z tego co się rozglądałem to są wydajniejsze rozwiązania
  • InterBase ToGo for Mobile license - nie korzystam z IB więc w razie przesiadki na mobile to też się raczej nie przyda
  • Linux compilation (64 bit, only commandline) - nie potrzebne

Przydałoby się jedynie FireDAC. Co możecie polecić w zamian. Potrzebuję połączyć się z: MS SQL, Oracle, SQLite, Access, Excel, DBF, CSV i ogólnie ODBC.
Widzę alternatywę w UniDAC albo ZeosLib. Dodatkowo mam dużo powiązań z DevExpress. Jakiś czas temu DevExpress pisał, że ich servermode nie jest przystosowany dla UniDAC i polecają FireDAC. Zależy mi na w miarę łagodniej przesiadce. Czy ktoś ma doświadczenie z prezsiadką z FireDAC i mógłby podzielić się obiektywną opinią?

1

UniDac.

embarcadero sobie kopie samemu grób...

1

Na dzień dzisiejszy też wybrałbym UniDac-a. UniDac obsługuje direct connection do kilku różnych baz, czyli nie potrzebuje dodatkowych bibliotek jak FireDac.

1

Osobiście też polecam UniDaca, chyba nie ma innej, ciekawej alternatywy, przynajmniej ja nie znalazłem. Tu najłatwiej przejrzeć co oferuje i w jakiej wersji: https://www.devart.com/unidac/editions.html

0

Dzięki za odpowiedzi. Czyli będą przenosiny na UniDAC-a.

UniDac obsługuje direct connection do kilku różnych baz, czyli nie potrzebuje dodatkowych bibliotek jak FireDac.

Super, nie wiedziałem a zawsze to dobra wiadomość. Do tego widzę, że jest integracja z niektórymi serwisami/bazami, które do FireDAC-a sprzedawane są jako Enterprise Connection czy dodatkowa kasa...
Pewnie cześć osób to widziała ale dla pozostałych wstawię porównanie wydajności UniDAC vs FireDAC:
https://www.board4all.biz/threads/firedac-unidac-fibplus-ibdac-zeoslib-dbexpress-which-shoud-be-use.611635/#post-1137737
Daje to pewny pogląd.

Czy ktoś jest po przesiadce FireDAC -> UniDAC i może się podzielić ewentualnymi problemami/trudnościami?

1
Clarc napisał(a):

Na dzień dzisiejszy brak realnej alternatywy...
Z OpenSource tylko ZEOS nadaje się do czegoś "na poważnie".

Dzięki za odpowiedzi. Czyli będą przenosiny na UniDAC-a.

UniDac obsługuje direct connection do kilku różnych baz, czyli nie potrzebuje dodatkowych bibliotek jak FireDac.

Super, nie wiedziałem a zawsze to dobra wiadomość. Do tego widzę, że jest integracja z niektórymi serwisami/bazami, które do FireDAC-a sprzedawane są jako Enterprise Connection czy dodatkowa kasa...

Pewnie cześć osób to widziała ale dla pozostałych wstawię porównanie wydajności UniDAC vs FireDAC:
https://www.board4all.biz/threads/firedac-unidac-fibplus-ibdac-zeoslib-dbexpress-which-shoud-be-use.611635/#post-1137737
Daje to pewny pogląd.

Pogląd na co?
Brak tam podstawowych założeń - nie wiem np. jak jest skonfigurowany każdy komponent.
To znaczy wiemy - nie ma żadnej konfiguracji, po prostu zmieniany jest SQL.
Do d**y z takim testem...
Dlaczego?
Ano dlatego, że FireDAC oczywiście działa po pacnięciu TFDQuery.
Ale może działać lepiej lub gorzej w zależności od wymagań.

Poza tym, polecam wczytanie się w ten test, ponieważ sam autor co nieco pisze, że przyjęta przez niego metodologia jest o kant kuli rozbić...
"The conclusion after these results is that UniDAC is better than FireDAC, but the secret behind the performance is simple. By default UniDAC loads all records at once, but FireDAC loads them on demand."
Właśnie! Ale co to właściwie znaczy?
Znaczy tyle, ze wg domyślnej konfiguracji UniDAC będzie zawsze szybszy od FireDAC dla małych zbiorów danych. Małych (czyli nie przekraczających powiedzmy 500 wierszy) ale przekraczających 25 wierszy.
Dla dużych zbiorów idących w tysiące wierszy, w takim samym teście pewnie FireDAC będzie domyślnie szybszy od UniDAC kilkukrotnie.
Ale przetrawiając jedną właściwość (a najlepiej kilka - np. te jego zwolnienie na open connection może mieć związek z pobieraniem i keszowaniem metadanych) wyniki nie będą takie oczywiste.
I o tym też tam coś pisze.

Ale generalnie to UniDAC był dość słaby kilka lat temu; przypatrywałem mu się bliżej, kiedy miałem podobne dylematy.
Wtedy nie miał startu do FireDAC.
W tej chwili zostało tam wiele zrobione na plus i bardzo, bardzo wiele się poprawiło, ale nie jestem na bieżąco z UniDAC, zatem nie znam szczegółów.
Zresztą, używałem kiedyś np. SDACa i wiem, ze Devart potrafi pisać kod i znają się na problematyce bazodanowej bardzo dobrze.
Generalnie można spokojnie polecać UniDAC i na pewno spełni wymagania.

Czy ktoś jest po przesiadce FireDAC -> UniDAC i może się podzielić ewentualnymi problemami/trudnościami?

A używasz jakiś nietypowych właściwości FireDAC?
Schodzisz z kodem niżej niż do DataSeta, a więc "pod maskę" FireDAC'a, czyli np do warstwy DatS; chodzi np. o coś takiego: FDQuery.Table.AddDataCallback())?
Jeśli nie, to nie powinno być żadnych problemów.

0

Panowie, zainstalowałem sobie do testów Delphi 11, w komponencie DBExpress nie mam w wyborze sterwonika MSSQL. Na stronie Delphi piszą, że połączenie do MSSQL jest wbudowane. Czy coś trzeba dograć? Czy pozostaje zakup zewnętrznych komponentów?

1

masz darmowy zeos, który działa z MSSQL: https://sourceforge.net/projects/zeoslib/files/Zeos%20Database%20Objects/
ostatnia stabilna wersja jest sprzed 2 lat, ale bez problemu możesz korzystać z bieżącej wersji rozwojowej, która działa ok: https://sourceforge.net/p/zeoslib/code-0/HEAD/tree/branches/8.0-patches/

0
601705223_wp.pl napisał(a):

Panowie, zainstalowałem sobie do testów Delphi 11, w komponencie DBExpress nie mam w wyborze sterwonika MSSQL. Na stronie Delphi piszą, że połączenie do MSSQL jest wbudowane. Czy coś trzeba dograć? Czy pozostaje zakup zewnętrznych komponentów?

A gdzie jest napisane, że jest?
https://www.embarcadero.com/products/delphi/features/feature-matrix
screenshot-20231012144432.png

0
Clarc napisał(a):
601705223_wp.pl napisał(a):

Panowie, zainstalowałem sobie do testów Delphi 11, w komponencie DBExpress nie mam w wyborze sterwonika MSSQL. Na stronie Delphi piszą, że połączenie do MSSQL jest wbudowane. Czy coś trzeba dograć? Czy pozostaje zakup zewnętrznych komponentów?

A gdzie jest napisane, że jest?

No właśnie tu jest napisane, że sterownik MSSQL jest dostępny w wersji Arch i Ent.
A trial, o ile pamiętam, to jest wersja Arch.
No chyba, ze wersja "do testów" to Community, wtedy nie będzie.

Poza tym, dla MSSQL zawsze jest dostępne ADO.

0

Community to Professional. Do Delphi 11 trzeba użyć Zeosa 8.x, działa bez problemu (7.x nie ma plików do 11). Należy pamiętać, że IDE jest 32-bitowe i takie sterowniki należy wgrać do katalogu ze środowiskiem, żeby Zeos dział w trakcie pisania kodu.

0

Na Twoim miejscu zrobił bym tak :

  • użyj mormota - zrób sobie jakiś prosty serwer do wymiany danych, który będzie odczytywał/zapisywał dane z/do bazy - do mssql-a standardowe funkcje mormota
  • na androidzie zrób sobie klienta, ktory będzie komunikował się z tym serwerem
    takie połaczenie jest proste, szybkie i działa.

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