Oracle - Problema con variable global en un pre-query

 
Vista:

Problema con variable global en un pre-query

Publicado por Felix (1 intervención) el 06/06/2008 10:47:48
Buenas, tengo una duda relacionada con el disparador pre-query y el uso de variables globales.

Tengo 3 tablas que se relacionan, una de embarcaciones (clave primaria matricula), una de amarres (clave primaria codigoamarre) y una que relaciona ambas con una fecha embamarre (clave primaria compuesta matricula, codigoamarre y fecha)

Me interesa tener la matricula de un barco y poder sacar su historico de amarres por fecha con lo cual tengo un formulario Lista_Embarcaciones que saca un tabulado de todos los datos de la tabla de embarcaciones y un boton al lado de cada fila que sirve para abrir un segundo formulario que seria el historico de amarres que consiste en un formulario con la matricula correspondiente y un tabulado de la tabla embamarre con las filas que contienen esa matricula.

El problema es que no se como declarar bien una variable global en el primer formulario que guarde la matricula correspondiente al boton para ver el historico de amarres, para usarla en el segundo formulario en un pre-query y sacar el historico.

Perdon por la explicacion pero estoy muy liado ya con esto XD

Saludos y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con variable global en un pre-query

Publicado por Rodolfo Reyes (445 intervenciones) el 09/06/2008 19:44:10
No es necesario que declares las variables Globales. A continuación te dejo un texto que me ayudo a entender un poco la utilización de variables Globales:


Sintaxis: :GLOBAL.nombre_mi_vble_gobal

Puedes declararla dentro de cualquier bloque PL/SQL

Para ver desde una forma B, una variable declarada en una forma A, tan solo tienes que acceder a ella

Una variable golbal se declara con su empleo, es decir, si p.e, hago:

….
:GLOBAL.mi_variable := ‘Hola’;


Ya tengo una variable global definida y con un valor dado.


Para ver su contenido me vale con:

Message(‘mi golbal vale ‘||:GLOBAL.mi_variable);

o :BLOQUE.CAMPO := :GLOBAL.mi_variable

o w_variable := :GLOBAL.mi_variable (donde w_variable es una variable definida anteriormente.



Existe dos Built-Ins para trabajar con globales,


ERASE: Se emplea para eliminar una variable global, con ello, ya no existira dicha global y se libera la memoria que ocupa (una variable global siempre ocupa 255 bytes)

p.e. ERASE(‘GLOBAL.mi_variable’);

DEFAULT_VALUE: Se emplea para darle un valor a una global (si no existe, la crea), siempre que la global este a Null (si la global ya tenia un valor no nulo, DEFAULT_VALUE no hace nada)

p.e. DEFAULT_VALUE(’Hola’, ‘GLOBAL.mi_variable’);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con variable global en un pre-query

Publicado por Filiberto Tocinero (2 intervenciones) el 10/06/2008 08:40:27
Es recomendable que las globales se declaren en el pre-form ya que si no controlas al 100x100 la lógica de porgramación , puede que hagas referencia a esa global y no la hayas declarado todavia.

Por otra parte, cuanto menos utilizes dichas variables, mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar