FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Variables Globales
Hola, Estoy utilizando FireBird 1.5 y me gustaria saber si
Es posible Crear un variable de tipo global. En otras palabras una variable que pueda contener un valor el cual pueda ser modificado o almacenado en distinos procedimientos ? Ejemplo: Tengo un Procedimiento al cual deseo que reciva como parametro una variable esta variable la quiero almacenar en esta variable de tipo Global, el cual a su vez cuando el un triger por ejemplo el de update de una tabla se ejecute se pueda leer el valor de la variable Global y asi tomar un desicion en el procedimiento Update. Es posible hacer esto ? Gracias por su ayuda... |
#2
|
||||
|
||||
Podes hacerlo con un generador, si la varibale que queres almacenar es un entero.
O podes crear una tabla con varibles de configuración y almacenarla ahi. Que es lo que queres realizar exactamente, por ahi se puede solucionar de otra forma, como con new y old?
__________________
[Crandel] |
#3
|
|||
|
|||
Gracias Crandel
Como podria lograrlo utilizando Un Generador, de echo si es una variable entera la que deseo guardar, esta es solo para poder bifurcar en el codigo de el Update de la tabla. Gracias |
#4
|
||||
|
||||
un generator se puede crear asi:
le podes asignarle un valor directo: incrementar o decrementar su contenido tomar el valor:
__________________
[Crandel] |
#5
|
|||
|
|||
Otra vez muchas gracias Crandel
Solo me queda un duda mas : en mi procedimiento como puedo ejecutar esta sentensia: // DDL set generator VAR_GLOBAL to valor; es un procedimiento de Firebird 1.5 y me manda error de compilacion cuando intento insertarla en el codigo del procedimiento ? O como podria ejecutarla desde mi procedimiento , por ejemplo en el procedimiento de Update de la tabla para resetear el Generador. |
#6
|
||||
|
||||
Justamente no se puede porque es DDL (Data Definition Language) o Lenguaje
de Definición de Datos. Solo se puede usar cuando uno lo esta definiendo. por eso te puese una segunda opción DML (Data Manipulation Language), que puedes ejecutar dentro de tu procedimiento, donde VAL es una variable definida dentro del procedimiento, puede ser el valor de return o definida asi: y valor es el valor que le queres asignar. Dado que no hay una forma directa de modificar un generador hago uso de una función interna gen_id. En resumen lo que hace esta forma es sumarle el valor que queres menos el valor que tenia = valor que queres
__________________
[Crandel] |
|
|
|