Szukam najlepszego sposobu na rozwiązanie tej sytuacji. Chcę zapisać harmonogram amortyzacji w tabeli databse. Każdy wiersz zawiera datę, bieżące saldo, płatność, wartość bieżącą, odsetki i nowe saldo. W przypadku typowego kredytu hipotecznego na 30 lat będzie to 360 wierszy lub wkładów do bazy danych.W Delphi należy używać wielu wstawień do bazy danych z pętli lub użyć procedury składowanej?
Czy powinienem wykonać obliczenia wewnątrz pętli za pomocą Delphi i zrobić wstawkę dla każdego wyniku, czy też wykonać te obliczenia w ramach procedury przechowywanej?
To byłby pojedynczy użytkownik, lokalny komputer, aplikacja na komputer.
Wracam ze świata klientów zablokowanych do Oracle DBMS więc zmiana jest prawie niemożliwe :) . IMHO, mając wszystkie operacje związane z danymi (SELECTs dla jednej, ale w większości specyficznych operacji, które obejmują modyfikowanie jednej lub więcej tabel) powinny znajdować się w bazie danych, do której należą. Przechowywanie reguł biznesowych w bazie danych i udostępnianie ich również za pomocą niestandardowych interfejsów API. Wprawdzie zwiększy to krzywą uczenia się dla programisty odpowiedzialnego, ale myślę, że warto. Przyznam, że to sprowadza się do wielkości aplikacji i preferencji osób, które nad nią pracują :) – phil
@Miho, tak, to jest osobiste preferencje, ale takie, które by mnie zabiły, gdyby ktoś zrobił to w jednym z moich projektów. Dla programisty aplikacji użycie procedur przechowywanych jest gniazdem żmii! Zasadniczo przenosi reguły danych poza zakres twórcy aplikacji i wypycha ich poza zasięg wzroku.Chciałbym wiedzieć, co dzieje się z danymi, nie ma tego tajemniczo dla mnie. – Misha
@Misha, Zgadzam się z Tobą odnośnie danych właśnie pojawiających się. Osoby pracujące z danymi muszą wiedzieć, co i jak są odzyskiwane lub przetwarzane. Problem polega na rozróżnieniu między twórcą aplikacji a deweloperem baz danych. Nie rozumiem, jak coś tajemniczo pojawia się w twoim kodzie. Jeśli umieścimy coś w procedurze przechowywanej, nie oznacza to, że programista aplikacji nie może zlokalizować i zmodyfikować/wyświetlić tej procedury? Dodaje tylko kolejny poziom abstrakcji. Dobry (choć uprzedzony przez DB) widok: http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2143974700346554115 – phil