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
  #1  
Antiguo 06-07-2003
Avatar de mlara
[mlara] mlara is offline
Miembro Premium
 
Registrado: jun 2003
Ubicación: Colombia
Posts: 667
Poder: 21
mlara Va por buen camino
Referencias circulares aparentes con SPs

Hola de nuevo. Ahora entiendo bien lo del código BLR y el mensaje de error de IBConsole. Había comentado que tenía una solución, la puse en práctica y todo funcionó muy bien, pero siempre sucede algo nuevo, como lo que les voy a contar:

Supongamos que tengo el SP1 y el SP2.

1. El SP1 evalúa uno de sus parámetros (un código) y devuelve el valor calculado.

2. El SP2 evalúa una expresión matemática, pero en la cual algunos de los términos son códigos.

Ahora, veamos:

Ejecuto el SP1 pasándole como parámetro el código X, y él mismo determina que el código X que debe evaluar es de tipo fórmula, por lo cual llama a SP2.

El SP2 recorre los términos de la expresión correspondiente al código X. Luego, cuando encuentra un código Z en dicha expresión, llama al SP1 para que éste lo evalúe.

El SP1 evalúa el código Z, y es probable que éste sea nuevamente un código de tipo fórmula...

...

Es claro que esta es una referencia circular pero siempre y cuando se repita en alguna llamada uno de los códigos anteriores.

En mi caso, esto no sucede ya que una aplicación cliente verifica que no existan códigos repetidos, por lo cual nunca habrá un desbordamiento de pila o numérico.

El problema que tengo, es que, aunque esto no suceda siempre, sobre todo con expresiones cortas, InterBase no me deja ejecutar los SPs.

El error es el siguiente:

"arithmetic exception, numeric overflow, or string truncation on line 1 : SELECT out_result FROM "PayFormValue"('X', ...)

Pensé que de nuevo podría ser IBConsole, y lo probé desde Delphi 7. Generó de nuevo el mismo error.

Intenté usar un procedimiento intermediario, pero tampoco funcionó.

De nuevo, debo decir que estos procedimientos los estoy migrando de MS SQL Server a InterBase, y en SQL Server funcionaban bien.

Quisiera saber si alguien ha tenido algún problema similar y cómo lo ha podido resolver.

Muchas gracias por su colaboración.
__________________
...y mañana caminaré por las calles pasando inadvertido, como siempre.
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


La franja horaria es GMT +2. Ahora son las 16:39:32.


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