Estoy buscando la mejor manera de manejar esta situación. Quiero almacenar un cronograma de amortización dentro de una tabla de databse. Cada fila contiene la fecha, el saldo actual, el pago, el pricipal, el interés y el nuevo saldo. Para una hipoteca típica de 30 años, esto sería 360 filas o insertos de bases de datos.En Delphi, ¿debo usar varias inserciones de bases de datos desde un bucle o utilizar un procedimiento almacenado?
¿Debo hacer los cálculos dentro de un bucle usando Delphi y hacer una inserción para cada resultado o debo realizar estos cálculos dentro de un procedimiento almacenado?
Esta sería una aplicación de escritorio de un solo usuario, máquina local.
vengo de un mundo de clientes bloqueados en Oracle DBMS lo que el cambio es casi imposible :) . En mi humilde opinión, tener todas las operaciones relacionadas con los datos (SELECT para una, pero en su mayoría operaciones específicas que incluyen la modificación de una o más tablas) deben estar en la base de datos a la que pertenecen. Almacenar las reglas de negocio en una base de datos y exponerlas a través de API personalizadas también. Es cierto que esto aumentará la curva de aprendizaje de un programador responsable, pero creo que vale la pena. Admito que esto probablemente se reduce al tamaño de la aplicación y las preferencias de las personas que trabajan en él :) – phil
@Miho, sí, es una preferencia personal, pero una que me mataría si alguien lo hiciera en uno de mis proyectos. Para un desarrollador de aplicaciones, el uso de procedimientos almacenados es un nido de víboras. Esencialmente mueve las reglas de datos fuera del alcance del desarrollador de la aplicación y las aleja de la vista.Me gusta saber qué está pasando con los datos, no hacer que aparezca misteriosamente para mí. – Misha
@Misha, estoy de acuerdo con usted acerca de los datos que acaban de aparecer. Las personas que trabajan con datos necesitan saber qué y cómo se recupera o procesa. El problema es la distinción entre el desarrollador de la aplicación y el desarrollador de la base de datos. No entiendo cómo algo aparece misteriosamente en tu código. Si ponemos algo en un procedimiento almacenado, eso no significa que un desarrollador de aplicaciones no pueda localizar y modificar/ver ese procedimiento. Simplemente agrega otro nivel de abstracción. Una buena vista (aunque sesgada de DB): http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2143974700346554115 – phil