![]() |
Formulas en registros de una tabla
Hola a todos
Tengo una pregunta espero me la puedan llegar a contestar 1.- Estoy elaborando un sistema de nomina-rol de pagos 2.- Base de datos firebird 1.5.4 y delphi 6 La idea de guardar la formula en un registro de la tabla X es porque hay veces las leyes cambian y es hai donde este concepto funciona a las mil maravillas Ejemplo Campo : FORMULA dato : T.VALOR*10/100 Entiendase por T.valor el alias de la tabla tal como lo escribiriamos en un select comun Manana ese dato ya no sera t.valor si no t.valor2 ahi solamente yo cambiaria el dato en la tabla y no en mi aplicacion Tabla 1 campo key_u = Integer Formula = Char(300) Tabla 2 campo key_u = integer valor=numeric(15,2) valor2=numeric(15,2)
Espero me entiendan y de antemano gracias por su respuesta |
Hola
Algo asi: Tabla 1 campo key_u = Integer Formula1 = numeric(2) Formula2 = numeric(3) Tabla 2 campo key_u = integer valor=numeric(15,2) valor2=numeric(15,2) Saludos |
Si a lo que te referís es a la interpretación de la fórmula desde el propio select, me temo que no será posible de manera fácil.
Podrías hacer un UDF que reciba la fórmula, la interprete, se conecte de vuelta a la base de datos y obtenga los valores necesarios para evaluarla, pero lo veo complicado. En cambio, si dejas esa intepretación a Delphi, podrías valerte de algún componente para evaluar expresiones, que hay variedad de estos. No se si en la sección de componentes del club, pero seguro en torry encontrás mas de uno. Hasta luego. ;) |
¿Procedimientos almacenados de ejecución?
Te verás limitado al PSql, pero quizás te sirva. Si necesitas funciones que no están soportadas, puedes apoyarte en las UDFs, rfunc es una biblioteca buena, pero no la única.
Porcentaje(10,100) sería dicho procedimiento. De memoria con bastantes errores, para hacerte una idea.
En el caso que necesites algo muy especial, puedes hacer un procedimiento almacenado de selección. Cuando cambien las leyes, entras a la base de datos y modificas el interior del procedimiento almacenado. Saludos |
Creo que hay confusión acá.
El asunto por el que IVAND pregunta no es si puede realizar ciertos cálculos. Es sobre si puede evaluar una fórmula almacenada como texto en un campo de la base de datos y devolver el resultado de dicha evaluación. por ejemplo: Código:
tabla
obtener un resultado como: Código:
a b c evaluar(formula) formula |
Cita:
Lo ideal es como dices, que busque un componente de tercero que realize esta tarea (si es que existe) o sino deberá hacerlo. Saludos, |
Bueno que puedo decir , gracias a todos por su respuesta
La idea que tiene jachguate es justo la mia es evaluar una formula que esta en un campo texto , buscare en torry como un componente para evaluar formulas Gracias nuevamente por su apoyo y si alguien ya lo ha echo me gustaria que compartiera su experiencia Atentamente Ivan Davila |
Cita:
Comenté las "rfunc" porque FB 1.5 carece de ciertas funciones integradas, y para realizar mi sugerencia, seguro necesitará de LPad, power, sqrt, etc. Saludos |
La franja horaria es GMT +2. Ahora son las 09:19:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi