Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 06-09-2007
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Cita:
Empezado por sitrico Ver Mensaje
Código SQL [-]
CREATE PROCEDURE APLICAR_FORMULA_MAGICA(IdFormula integer)
as
declare variable FORMULASQL BLOB SUBTYPE 0;-- TEXTO
begin
  -- primero leer la formula SQL
  FOR 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.

En resumidas: ¿ Se puede almacenar y ejecutar codigo SQL dentro de campos memo en una base de datos firebird ?
Prueba con EXECUTE STATEMENT

Código SQL [-]
CREATE PROCEDURE APLICAR_FORMULA_MAGICA(IdFormula integer)
as
declare variable FORMULASQL BLOB SUBTYPE 0;-- TEXTO
-- Según el ejemplo, pero debes conocer el tipo de dato al que pertenece.
declare variable ResultadoFormula DOUBLE PRECISION;
begin
  FOR Select  FORMULASQL FROM FORMULAS WHERE IDFORMULA = :IdFormula 
  Into :FORMULASQL
  DO BEGIN
     EXECUTE STATEMENT :FORMULASQL
     INTO :ResultadoFormula; -- si siempre devuelve 1 campo
    -- Operar con ese resultado almacenado en ResultadoFormula
     suspend;
  End
end

Pero el problema está en qué es lo que devuelve esa FORMULA, porque solo con ejecutarla dentro del procedimiento, no creo que sirva de mucho...no se.
¿Esa FORMULA devuelve siempre 1 campo o devuelve más de 1?
¿de que tipo es el dato devuelto?
Me acabo de dar cuenta que la sentencia EXECUTE STATEMENT solo funciona con <string>,
con lo que si falla, (porque no lo he comprobado) deberias pasar de blob a string (creo).
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 06-09-2007 a las 11:47:15.
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
consultas a procedimientos almacenados.... Kenobi SQL 4 23-03-2007 20:43:46
Problemas al almacenar imagen en campo blob Manuel Gráficos 4 15-06-2006 22:52:02
donde almacenar los procedimientos y funciones olbeup MS SQL Server 2 16-04-2006 20:56:07
Consultas dinámicas en procedimientos almacenados sur-se Firebird e Interbase 1 15-11-2004 18:04:24
Consultas anidadas en procedimientos almacenados Choclito Firebird e Interbase 7 18-07-2004 22:06:33


La franja horaria es GMT +2. Ahora son las 13:03:56.


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