Ver Mensaje Individual
  #1  
Antiguo 05-09-2007
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Reputación: 22
sitrico Va por buen camino
Almacenar y usar consultas vistas y procedimientos en campos blob

Anoche entre una resaca de vodka y la indigestión de una cena opulenta se me ocurrio la idea de poder almacenar en un campo blob (memo) el texto de una consulta (vista ó procedimiento) para ejecutarlo en ciertos campos "calculados". me explico (que dolor de cabeza...)

Supongamos una aplicaciíon de Nómina, la misma usará conceptos de asignaciones y deducciones que deberán ser calculados por formulas que deberá personalizar el cliente, por ejem:

La siguiente formula:

SalarioDiario = SalarioMes / 30


Se expresaria como:

Código SQL [-]
SELECT SALARIOMES/30 SALARIODIA FROM TABLASALARIOS WHERE IDTRABAJADOR = :IDTRABAJADOR

Esa fórmula se podría almacenar en un campo memo y al ejecutar un procedimiento generico: (ojo el código es para referencia no se supone que funcione)

Código SQL [-]
CREATE PROCEDURE APLICAR_FORMULA_MAGICA(
    IdFormula integer)
as
declare variable FORMULASQL BLOB SUBTYPE 0;-- TEXTO
begin
  FOR
  -- primero leer la formula SQL
  Select  FORMULASQL FROM FORMULAS WHERE IDFORMULA = :IdFormula
  Into :FORMULASQL --CAMPO MEMO
     DO
     BEGIN
     -- Aqui se podria asignar el codigo SQL almacenado en FORMULASQL
     -- a "Algo" y luego ejecutar dichas sentencias para arrojar como resultado
     -- el valor de la formula???  
     suspend;
     End
end

Claro todo desde dentro de firebird (2.0.1) con procedimientos almacenados y eso, la intención es permitir al usuario ejecutar algunos cálculos especiales que arrojen resultados dentro de otras consultas.

Ni yo entiendo bien el último parrafo.

En resumidas: ¿ Se puede almacenar y ejecutar codigo SQL dentro de campos memo en una base de datos firebird ?
__________________
Sitrico
Responder Con Cita