Variables globales pierden su valor

hice un link entre 2 aplicaciones un grid y un form para editar los registros de un atabla pero al momento de darle en editar en el grid me lleva al form sin embargo no me muestra nada, todos los campos estan vacios, habilite el modo depuracion y me dicuenta que mi variable global pierde su valor i se reinicia a cero, aqui el codigo:

aqui el valor d el avarable es correcto
(firebird): SELECT count(*) AS countTest from SERVICIOS where ID_EMPRESA =1

aqui es cuendo pierde su valor
(firebird): SELECT ID_SERVICIO, NOMBRE_SERVICIO, “DESCRIPCION SERVICIO” as sc_field_0, PRECIO, ID_EMPRESA, ID_TIPO_SERVICIO, ID_FAMILIA from SERVICIOS WHERE (ID_EMPRESA =1) AND (ID_SERVICIO = 1 and ID_EMPRESA = 0) order by ID_SERVICIO, ID_EMPRESA

va revise toda mi aplicacion y la volvi a hacer varas veces para saber si en algun punto reasigne el valor de la variable pero nada sigue igual.

espero m epuedan ayudar, gracias!!!

Hola Alan,
has puesto algo en la condiciĂłn WHERE del form?
puedes pegarlo aqui?

cual es la clave, idempresa o idempresa + idservicio?

revisa que en SQL del form tengas todos los campos clave marcados como tal

Puede mostrar de que forma estas pasando los parametros para el link de la app?

Hola

la condicion WHERE del form es esta: ID_EMPRESA =[EMPRESA]

la clave es id_servicio+id_empresa

no tenia marcados los campos claves ya los marque y ahora la sentecia se muestra de esta forma

(firebird): SELECT count(*) AS countTest from SERVICIOS where ID_EMPRESA =1

(firebird):SELECT ID_SERVICIO, NOMBRE_SERVICIO, “DESCRIPCION SERVICIO” as sc_field_0, PRECIO, ID_EMPRESA, ID_TIPO_SERVICIO, ID_FAMILIA from SERVICIOS WHERE (ID_EMPRESA =1) AND (ID_SERVICIO = 1 and ID_EMPRESA = 0) order by ID_SERVICIO, ID_EMPRESA

los paso mediante el link entre aplicaciones, asi es como lo asigno

es extraño, tienes
WHERE (ID_EMPRESA =1) AND (ID_SERVICIO = 1 and ID_EMPRESA = 0)
ademas de los dos parámetros tienes otro id_empresa=1 que quizás sea porque tienes algo en el campo where en el form, mira “clausula where” del form

también comprueba los eventos onscriptini, onload, onapplicationinit por si tienes algún codigo que haga algo

por ultimo en onapplicationinit lee esos parámetros y mira que valor está llegando
esto se ejecuta antes del sql del form, asĂ­ veras y aquĂ­ llega correcto o es un problema del grid

ya revise los eventos y solo uso idempresa en un after insert pero uso el campo de la base de datos no l avariable
Captura de pantalla 2022-01-06 100454
hice la prueba en el onaplicationinit y si llega bien la variable


y esa es la sentencia d emi clausula WHERE

2 cosas:

  • comprueba que en la base de datos la clave sean los dos campos
    -elimina ID_EMPRESA=[EMPRESA] del where clause

y prueba.

ya revise la base de datos y si son los mismos campos la clave.

y al quitar la clausula WHERE del from aparece esto:


:sweat:

Hola, gracias por tu ayuda, logre resolver el problema, lo que hice fue eliminar ambas aplicaciones y volver a crearlas juntas, es decir cree el grid y marque la opcion de crear el from para editar, con eso desaparecio el error, cabe mencionar que este fue un proyecto que tenia en script case 8.1 y lo migre a 9, quiza ahi fue donde se provoco el error, aunque ya habia vuelto a general las alicaciones antriormente, lo habia hecho por separado no juntas.

:partying_face: :partying_face: :partying_face: :partying_face:

me alegro
te iba a decir, que eliminaras el enlace y lo crearas de nuevo, pero mejor asĂ­.

bye

1 Like