Informix - El programa ignora algunas sentencias <NEXT FIELD>

 
Vista:
sin imagen de perfil

El programa ignora algunas sentencias <NEXT FIELD>

Publicado por Sahib Salazar (4 intervenciones) el 28/11/2014 22:55:42
Hola.
Tengo un programa 4gl que hice en Informix 7.30.UC6 en el cual hay un formulario al que debo validarle los campos. Por ello, hay un <AFTER FIELD> para cada campo. Si los datos ingresados en un campo no son válidos, debe permanecer el cursor allí y para lograrlo utilizo la sentencia <NEXT FIELD>. El programa funciona perfectamente.
La compañía actualizó los servidores y por ende, la versión del Informix a la 7.51.FC1. Ese mismo programa (luego de compilar todo, por supuesto), solo tiene en cuenta el primer <NEXT FIELD> encontrado, los demás son ignorados literalmente.... como si no estuvieran.
Extraigo una porción del programa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
AFTER FIELD codigou
    if   val_coduser(s_cambio_clave.codigou) then              # Si existe el código del usuario
        let e_usuario = 's'
        let s_cambio_clave.nombre = pusuarios.nom_user
        message ""
        display by name s_cambio_clave.nombre                    # Muestro el nombre del usuario
    else                                                                                           # Si no existe el código del usuario
        let e_usuario = 'n'
        let s_cambio_clave.nombre = ""
        message "El usuario <", s_cambio_clave.codigou clipped,
                "> no existe." attribute(yellow)
        # Volver al campo
        NEXT FIELD codigou   -------------------------------> Esta sentencia si la tiene en cuenta
    end if
AFTER FIELD clave_a
    if s_cambio_clave.clave_a is null or
        s_cambio_clave.clave_a = "" then
        message "Campo nulo o vacio..." attribute(yellow)
        sleep 2
        message ""
        NEXT FIELD clave_a   -------------------------------> Esta sentencia es ignorada
    else
        if s_cambio_clave.clave_a <> pusuarios.cod_clav then
        message "Clave incorrecta." attribute(red)
        sleep 2
        message ""
        let s_cambio_clave.clave_a = ""
        NEXT FIELD clave_a   -----------------------------> Esta sentencia es ignorada... y las que siguen
        end if
    end if

A alguien le ha sucedido?
No entiendo el porqué. Agradezco la ayuda.
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
sin imagen de perfil

El programa ignora algunas sentencias <NEXT FIELD>

Publicado por Sahib Enrique (4 intervenciones) el 07/01/2015 17:55:55
Me respondo.
El problema se debe a una incompatibilidad que presenta el Informix cuando se instalan el iSQL y el i4GL en la misma carpeta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve

El programa ignora algunas sentencias <NEXT FIELD>

Publicado por xve (4 intervenciones) el 07/01/2015 23:51:16
Gracias por compartirlo Sahib!!!
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