0

![]() |
![]() |
Junior |
Al leer un fichero indexado avanzando/retrocediendo registros (luego de START)...
READ ... NEXT RECORD NO LOCK ... me funciona a la perfeccion, pero la instruccion:
READ ... PREVIOUS RECORD NO LOCK me muestra solo el primer registro leido, y no retrocede de ninguna manera.
Pero si le quito la opcion "NO LOCK" funciona a la perfección.
Este inconveniente lo tengo desde hace mucho tiempo, pero necesitaria que el previous record tambien me mantuviera el registro sin bloquear.
Estaré haciendo algo mal o esa opcion no funciona con PREVIUS RECORD?
![]() |
![]() |
Super Moderador |
Yo tengo el siguiente código y funciona perfectamente
COBOL Código:
MOVE "Text" OF CAMPO1 TO ARTCOD. START ARTICULOS KEY LESS THAN XACOD INVALID KEY INVOKE POW-SELF "Alarm" ADD POW-DMICONERROR POW-DMOK GIVING ESTILO INVOKE POW-SELF "DisplayMessage" USING "*ERROR: Principio de fichero ..." WS-ATENCION ESTILO END-INVOKE INVOKE BTANT "SetFocus" EXIT PROGRAM END-START. READ ARTICULOS PREVIOUS RECORD WITH NO LOCK AT END INVOKE POW-SELF "Alarm" ADD POW-DMICONERROR POW-DMOK GIVING ESTILO INVOKE POW-SELF "DisplayMessage" USING "*ERROR: Principio de fichero ..." WS-ATENCION ESTILO END-INVOKE INVOKE BTANT "SetFocus" EXIT PROGRAM NOT AT END MOVE ARTCOD TO "Text" OF CAMPO1 CALL "EXISTE" END-READ.
Lo único que se me ocurre, es que no hagas correctamente el START, y en vez de LESS THAN, pongas GREATER THAN ...
Un saludo.-
![]() |
![]() |
Junior |
@Josber, El Start funciona a la perfeccion y el programa funciona perfectamente cuando le quito la opcion "NO LOCK" a la sentencia READ PREVIOUS RECORD.
Pero se la agrego, compilo y ejecuto y no retrocede ningun registro, solo me muestra el primer registro hallado!
Me falto decir que funciona en Powercobol V3.
Voy a probarlo en Netcobol 9, a ver si hace lo mismo...
![]() |
![]() |
Super Moderador |
Pues o es un fallo de la versión 3 o no se me ocurre qiue puede pasar, yo en FILE-CONTROL, inserto todos los ficheros con más o menos la misma estructura:
COBOL Código:
000001 SELECT OPTIONAL MENSAJES *> FICHERO DE MENSAJES 000002 ASSIGN TO FILEMEN 000003 000004 ORGANIZATION IS INDEXED 000005 ACCESS MODE IS DYNAMIC 000006 RECORD KEY IS MENCOD 000010 ALTERNATE KEY IS MENFEC WITH DUPLICATES 000020 ALTERNATE KEY IS MENREC WITH DUPLICATES 000999 LOCK IS AUTOMATIC WITH LOCK ON RECORD 001000 FILE STATUS IS STMEN.
Prueba a hacer la estructura más o menos así y nos comentas algo ...
Un saludo.-
![]() |
![]() |
Junior |
@Josber, Acabo de probar lo mismo en Netcobol V9 y el "NO LOCK" en Read Previous Record funciona perfectamente!
Asi que lamentablemente, es un error que tiene el Powercobol V3.
Una verdadera lastima...
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores