Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-11-2004
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
Talking Ejecutar formula almacenada en tabla

Hola compañeros,
Tengo mis inquietudes con respecto a esto.
Tengo varias formulas almacenadas en una tabla con el mismo nombre FORMULAS, en las cuales las tengo almacenadas para su posterior ejecución y ser implementadas en cualquier momento en la misma BD.

Quisiera que por ejemplo la formula siguiente almacenada sea ejecutada y almacenar el valor en el campo que indica la formula.
El problema de todo o la complicación esta en que necesito hacerlo en la misma BD y no mediante el lenguaje que se que es facil o menos complicado.

Como bien se sabe, en SQL se puede mencionar el campo en cuestion como si fuese un objeto de la tabla, esto para aclarar la formula:

Cita:
Tabla1.Campo1 = Tabla1.Campo2 * (Tabla2.Campo2 / 100)
Esta formula es solo un ejemplo asi como podría ser otra para cálculos de cualquier tipo pero que los valores sean tomados de las tablas existentes si son variables y los valores fijos o constantes asignarlos manualmente o si estos también se encuentran almacenados en una tabla lo mismo.

Lo que no se es si tengo que almacenar toda la estructura de la formula, es decir si para esto tengo que almacenar una select u otro tipo de operación para que esta misma sea ejecutada ya sea por un procedure.
Si paso esto como cadena al procedure, hay alguna forma de que se ejecute, tengo que hacer referencia a la dirección de la variable o parámetro que la contiene??

Gracias de antemano y espero que me ayuden con este tema o me aporten ideas las personas que son expertos en BD ya que esta parte no soy muy experimentado y creo que es algo avanzado, por lo menos para mí.

Había olvidado un detalle importante, uso Firebird 1.5

Última edición por mosorio fecha: 10-11-2004 a las 09:31:25.
Responder Con Cita
  #2  
Antiguo 10-11-2004
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por mosorio
...problema de todo o la complicación esta en que necesito hacerlo en la misma BD y no mediante el lenguaje que se que es facil o menos complicado...
...Había olvidado un detalle importante, uso Firebird 1.5...
El tener que hacer lo "en la BD" complica mucho, pero que mucho las cosas, hasta el punto de que no se si va a ser posible implementar la evalución de expresiones en un SP;
La única solución viable que se me ocurre es crearuna UDF (aprovechando que estás usando FB); Una UDF es una función (dentro de una DLL) que puedes crear en un lenguaje de alto nivel (por ejemplo Delphi), de forma que después de instalarla puedes llamarla desde una sentencia SQL.
Se trataría de crear una función de evalución dentro de una UDF y llamarla desde el SQL.

Para crear UDF's en FireBird desde Delphi puedes mirar ésta dirección:

How do I create a UDF in Delphi


Si busca en Internet seguro que encuentras más info.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 28-06-2007
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
Hola mosorio, oye estoy intentando hacer lo mismo me podrias comentar como solucionaste tu problema.

Gracias
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 16:48:51.


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
Copyright 1996-2007 Club Delphi