Autor Wątek: Różnice miedzy rozwiązaniami w SQL a Sferą  (Przeczytany 1962 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline mareksz

  • Nowy użytkownik
  • *
  • Wiadomości: 1
  • Reputacja +0/-0
  • Wersja programu: Subiekt GT 1.47 SP1
Różnice miedzy rozwiązaniami w SQL a Sferą
« dnia: Marzec 17, 2021, 21:50:51 »
Witam,
Znam SQL bardzo dobrze i jak dotąd w firmie pisałem wszystkie rozwiązania na bazie danych - triggery, joby, funkcje itd. i ew. łączę to np. z rozszerzeniami SQL do komponentu w PK. Nie znam żadnego innego języka programowania ani Sfery.
Ostatnio z powodu braku mojego czasu, zleciliśmy napisanie kilku rozwiązań zewnętrznej firmie. Z tego co udało mi się dowiedzieć wszystkie rozwiązania zostały napisane w C# wykorzystując Sferę.
Zlecone rozwiązania mogłyby być napisane równie dobrze z poziomu bazy danych w SQL a zauważyłem że zastosowali się do zasady że SQL służy tylko do odczytu a Sfera/C# do całej reszty. Jedynie w jednym rozwiązaniu wywołują procedurę w SQL przekazując parametry zaczytane wcześnie poprzez Sferę. Stąd pojawia się moje pytanie.

Jakie są różnice między rozwiązaniami w SQL a Sferą? Pytam głównie o aspekty, wydajnościowe oraz bezpieczeństwa(np. w SQL dam RAISERROR przy określonych warunkach a gdybym stworzył to poprzez Sferę byłaby mniejsza szansa że coś się wysypie - pytam hipotetycznie nie znam Sfery).

Jedyne co udało mi się wyszukać na forum http://forumsubiekta.pl/dodatki-zestawienia/sfera-jak-wydobyc-stan-towaru/msg107628/#msg107628 to odpowiedź, że ogólnie Sferą się zapisuje a SQL'em odczytuje. Dlaczego tak jest? Jeśli robię wszystko poprzez SQL to czy to jest źle?

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17249
  • Reputacja +800/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Różnice miedzy rozwiązaniami w SQL a Sferą
« Odpowiedź #1 dnia: Marzec 17, 2021, 22:21:34 »
Jakie są różnice między rozwiązaniami w SQL a Sferą? Pytam głównie o aspekty, wydajnościowe oraz bezpieczeństwa(np. w SQL dam RAISERROR przy określonych warunkach a gdybym stworzył to poprzez Sferę byłaby mniejsza szansa że coś się wysypie - pytam hipotetycznie nie znam Sfery).

Nie ma prostej odpowiedzi, zależy to od konkretnej operacji, ale ogólnie SQL będzie wydajniejszy, ale naturalnie mniej bezpieczny.

Jedyne co udało mi się wyszukać na forum http://forumsubiekta.pl/dodatki-zestawienia/sfera-jak-wydobyc-stan-towaru/msg107628/#msg107628 to odpowiedź, że ogólnie Sferą się zapisuje a SQL'em odczytuje. Dlaczego tak jest? Jeśli robię wszystko poprzez SQL to czy to jest źle?

Co do odczytu to przed wszystkim Sfera nie obsługuje wielu obiektów, więc nie ma wyboru, trzeba korzystać z SQL'a...

Co do zapisu to wszystko zależy od znajomości działania programu, jeśli dane zostaną zapisane w takim sam sposób jak robi to program to będzie taki sam, poprawny efekt, niestety większość osób, która zabiera się za takie rozwiązanie nie ma wystarczającej wiedzy, często nie zna podstawowych założeń i doprowadza do logicznych uszkodzeń bazy danych.

Kolejna kwestia to sens i opłacalność tworzenia rozwiązań w perspektywie korzystania z nich przez kolejne lata - w przypadku SQL'a odpowiedzialność za ewentualne błędy oraz kompatybilność z nowymi wersjami programów Insertu ponosi i będzie musiał utrzymywać autor rozwiązania, przy Sferze odpowiada za to i realizuje InsERT - rozwiązanie raz zrealizowane, raz opłacone i koniec. Oczywiście w Sferze też zdarzają się błędy, ale rzadko i zwykle szybko poprawiane przez - InsERT.
Daniel, Białystok.

Forum Użytkownikow Subiekt GT

Odp: Różnice miedzy rozwiązaniami w SQL a Sferą
« Odpowiedź #1 dnia: Marzec 17, 2021, 22:21:34 »