Cobol - file indexed, acceso dynamic. _WRITE no genera datos

 
Vista:

file indexed, acceso dynamic. _WRITE no genera datos

Publicado por diego tuset (1 intervención) el 16/09/2022 13:09:02
programa GNUVCOBOL 4.7.. con un file indexed, acceso dynamic open I/O.
Primero hago el READ de la clave primaria, con status 23 continuo aceptando datos, y luego al hacer el WRITE sale con status 22 ( clave ya existente ). NO generando NINGUN registro en el file.
Agradezco sugrerencias. GRACIAS.
Esta instalado el OPEN COBOL IDE en Windows 10.
FILE-CONTROL.
SELECT INQUI ASSIGN TO DISK "C:\INQUILINOS2022\baseinqui.ext"
ORGANIZATION IS INDEXED
RECORD KEY IS INQUI-CEDULA
ALTERNATE RECORD KEY IS INQUI-CEDULA2
ALTERNATE RECORD KEY IS INQUI-CI-GARA-01
ALTERNATE RECORD KEY IS INQUI-CI-GARA-02
ALTERNATE RECORD KEY IS INQUI-CI-GARA-03
ALTERNATE RECORD KEY IS INQUI-APELLIDO
FILE STATUS IS ESTADO
ACCESS MODE IS DYNAMIC.
DATA DIVISION.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
FILE SECTION.
FD INQUI.
01 REG-INQUILINO.
02 INQUI-CEDULA PIC 9(9).
02 INQUI-APELLIDO PIC X(30).
02 INQUI-NOMBRE PIC X(30).
02 INQUI-MF PIC X.
02 INQUI-FECHA-NAC.
05 INQUI-FECHA-NAC-DD PIC 99.
05 INQUI-FECHA-NAC-MM PIC 99.
05 INQUI-FECHA-NAC-A4 PIC 9(4).
02 INQUI-FECHA-INGRESO.
05 INQUI-FECHA-ING-DD PIC 99.
05 INQUI-FECHA-ING-MM PIC 99.
05 INQUI-FECHA-ING-A4 PIC 9(4).
02 INQUI-FECHA-ULTCONSU.
05 INQUI-FECHA-ULTCON-DD PIC 99.
05 INQUI-FECHA-ULTCON-MM PIC 99.
05 INQUI-FECHA-ULTCON-A4 PIC 9(4).
02 INQUI-CEDULA2 PIC 9(9).
02 INQUI-FECHA-BLOQUEO.
05 INQUI-FECHA-BLOQUEO-DD PIC 99.
05 INQUI-FECHA-BLOQUEO-MM PIC 99.
05 INQUI-FECHA-BLOQUEO-A4 PIC 9(4).
02 INQUI-CI-GARA-01 PIC 9(9).
02 INQUI-CI-GARA-02 PIC 9(9).
02 INQUI-CI-GARA-03 PIC 9(9).
*
*-----------------------
WORKING-STORAGE SECTION.
*-----------------------
01 WREG-INQUILINO.
02 WINQUI-CEDULA PIC 9(9).
02 WINQUI-APELLIDO PIC X(30).
02 WINQUI-NOMBRE PIC X(30).
02 WINQUI-MF PIC X.
02 WINQUI-FECHA-NAC.
05 WINQUI-FECHA-NAC-DD PIC 99.
05 WINQUI-FECHA-NAC-MM PIC 99.
05 WINQUI-FECHA-NAC-A4 PIC 9(4).
02 WINQUI-FECHA-INGRESO.
05 WINQUI-FECHA-ING-DD PIC 99.
05 WINQUI-FECHA-ING-MM PIC 99.
05 WINQUI-FECHA-ING-A4 PIC 9(4).
02 WINQUI-FECHA-ULTCONSU.
05 WINQUI-FECHA-ULTON-DD PIC 99.
05 WINQUI-FECHA-ULTCON-MM PIC 99.
05 WINQUI-FECHA-ULTCON-A4 PIC 9(4).
02 WINQUI-CEDULA2 PIC 9(9).
02 WINQUI-FECHA-BLOQUEO.
05 WINQUI-FECHA-BLOQUEO-DD PIC 99.
05 WINQUI-FECHA-BLOQUEO-MM PIC 99.
05 WINQUI-FECHA-BLOQUEO-A4 PIC 9(4).
02 WINQUI-CI-GARA-01 PIC 9(9).
02 WINQUI-CI-GARA-02 PIC 9(9).
02 WINQUI-CI-GARA-03 PIC 9(9).
*
77 MAS-INQUI PIC XX.
77 ESTADO PIC 9(2) VALUE ZEROS.
77 W-CEDULA PIC ZZZZZZZZ9 VALUE ZEROS.
77 OPCION PIC X.
screen section.
*Pantalla inicial
01 PRINCIPAL.
03 LINE 05 col 10 VALUE "Prueba de Screen Section".
03 line 07 col 10 VALUE "Dame a una tecla la muestro: ".
03 line 17 col 10 VALUE "> ".
03 pic x using opcion.
* Borra la pantalla.
01 Limpiar-pantalla.
03 blank screen.
*
*
PROCEDURE DIVISION.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
* MAIN-PROCEDURE.
**
* The main procedure of the program
**
DISPLAY PRINCIPAL
ACCEPT OPCION AT 0505
DISPLAY ESTADO AT 0505
WITH BLANK SCREEN
END-DISPLAY.
DISPLAY "ALTAS INQUILINOS I-O INQUI" AT 0525
OPEN I-O INQUI
DISPLAY ESTADO AT 0540.
*****
CICLO-ALTA.
DISPLAY ESTADO AT 0505
WITH BLANK SCREEN
END-DISPLAY.
DISPLAY "CICLO ALTA" AT 0705
DISPLAY "REDIRECTION " AT 0805
DISPLAY ESTADO AT 0905
INITIALIZE REG-INQUILINO WREG-INQUILINO
DISPLAY "INITIALIZE REG-INQUILINO" AT 1005
DISPLAY "Nro de Cedula INQUILINO :" at 1105
*
ACCEPT W-CEDULA at 1135
DISPLAY W-CEDULA AT 1155
MOVE W-CEDULA TO WINQUI-CEDULA INQUI-CEDULA
READ INQUI RECORD KEY INQUI-CEDULA
INVALID KEY
DISPLAY "READ STATUS NO ESTA" AT 1335
DISPLAY ESTADO AT 1355
NOT INVALID KEY
DISPLAY "READ STATS EXISTE, VUELVO A CICLO-ALTA" AT 1355
GO CICLO-ALTA.
IF W-CEDULA = ZEROS GO CICLO-ALTA.
IF W-CEDULA = 999999999
* DISPLAY "CLOSE status " at 1305
* DISPLAY ESTADO AT 1315
* ACCEPT OPCION AT 1405
CLOSE INQUI
DISPLAY "CLOSE INQUI" AT 1505
DISPLAY ESTADO AT 1525
ACCEPT OPCION AT 1540
STOP RUN.
******-------------------------------------------
DISPLAY "ALTAS A BASE INQUILINOS" AT 1502
MOVE W-CEDULA TO INQUI-CEDULA WINQUI-CEDULA
DISPLAY "INQUI-CED " AT 1532
DISPLAY WINQUI-CEDULA AT 1545
*
READ INQUI RECORD KEY INQUI-CEDULA
INVALID KEY
DISPLAY "READ STAT " AT 1602
DISPLAY ESTADO AT 1615
DISPLAY "DATOS DEL INQUI" AT 1620
DISPLAY "APELLIDO :" AT 1702
ACCEPT WINQUI-APELLIDO AT 1725
DISPLAY "NOMBRE :" AT 1802
ACCEPT WINQUI-NOMBRE AT 1825
DISPLAY "FECHA NACIM" AT 1902
ACCEPT WINQUI-FECHA-NAC AT 1925
* END-READ
WRITE REG-INQUILINO FROM WREG-INQUILINO
INVALID KEY
DISPLAY "WRITE INQUI" AT 2002
DISPLAY ESTADO AT 2025
ACCEPT OPCION AT 2035
END-WRITE
GO CICLO-ALTA.
* ** add other procedures here
END PROGRAM COBOLALTAS.
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

file indexed, acceso dynamic. _WRITE no genera datos

Publicado por Luis (6 intervenciones) el 21/10/2022 20:31:00
Te mando un ejemplo con base a tu código

toma ideas de aqui:
https://github.com/TheHittosLab/COBOL-Files-Program
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