Error manejando archivos relativos
Publicado por Jhoany (3 intervenciones) el 25/11/2012 15:11:13
Buenos días,
Soy novato programando en RM/COBOL.
Estoy elaborando una tarea para la universidad consistente en un programa para llevar el control de ventas de una farmacia.
El registro de los clientes se debe almacenar en un archivo relativo cuya clave es el número del documento de identidad del cliente.
El archivo es creado en un pequeño programa auxiliar que además crea e inicializa con campos vacíos los 317 registros. Funciona bien (verificándolo con otro programa auxiliar para leer el contenido del archivo CLIENTES.DAT).
Posteriormente, en el programa principal, se realiza el trabajo de registro propiamente dicho.
Con el primer cliente aparentemente funciona bien, pero luego al intentar registrar un segundo cliente se genera un error de entrada/salida cód. 23. Este error se presenta cuando el registro solicitado no existe. Pareciera como si al escribir los datos del primer cliente se dañara la integridad del archivo externo.
Estaría muy agradecido si alguien me pudiera ayudar con las posibles causas de este error. Llevo dos días tratando de resolver este asunto.
A continuación, la estructura del archivo:
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ARCH-CLIENTES ASSIGN TO
'C:\RMCOBOL\CLIENTES.DAT'
ORGANIZATION IS RELATIVE
ACCESS MODE IS RANDOM
RELATIVE KEY IS DIREC-REL-CLTE
FILE STATUS IS ESTATUS-CLTE.
DATA DIVISION.
FILE SECTION.
FD ARCH-CLIENTES
LABEL RECORD STANDARD
DATA RECORD REG-CLIENTE.
01 REG-CLIENTE.
05 NRO-CEDULA-CLTE PIC 9(8).
05 NOMBRES-CLTE PIC X(20).
05 APELLIDOS-CLTE PIC X(25).
05 DIREC-RESID-CLTE PIC X(45).
05 NRO-TELEF-FIJO-CLTE PIC X(11).
05 NRO-TELEF-CEL-CLTE PIC X(11).
05 SITUACION-REG-CLTE PIC X.
88 REG-CLTE-LIBRE VALUE ' '.
88 REG-CLTE-OCUPADO VALUE '*'.
Cualquier información adicional que sea de utilidad, la puedo remitir por esta vía o por correo.
Gracias enormes.
Soy novato programando en RM/COBOL.
Estoy elaborando una tarea para la universidad consistente en un programa para llevar el control de ventas de una farmacia.
El registro de los clientes se debe almacenar en un archivo relativo cuya clave es el número del documento de identidad del cliente.
El archivo es creado en un pequeño programa auxiliar que además crea e inicializa con campos vacíos los 317 registros. Funciona bien (verificándolo con otro programa auxiliar para leer el contenido del archivo CLIENTES.DAT).
Posteriormente, en el programa principal, se realiza el trabajo de registro propiamente dicho.
Con el primer cliente aparentemente funciona bien, pero luego al intentar registrar un segundo cliente se genera un error de entrada/salida cód. 23. Este error se presenta cuando el registro solicitado no existe. Pareciera como si al escribir los datos del primer cliente se dañara la integridad del archivo externo.
Estaría muy agradecido si alguien me pudiera ayudar con las posibles causas de este error. Llevo dos días tratando de resolver este asunto.
A continuación, la estructura del archivo:
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT ARCH-CLIENTES ASSIGN TO
'C:\RMCOBOL\CLIENTES.DAT'
ORGANIZATION IS RELATIVE
ACCESS MODE IS RANDOM
RELATIVE KEY IS DIREC-REL-CLTE
FILE STATUS IS ESTATUS-CLTE.
DATA DIVISION.
FILE SECTION.
FD ARCH-CLIENTES
LABEL RECORD STANDARD
DATA RECORD REG-CLIENTE.
01 REG-CLIENTE.
05 NRO-CEDULA-CLTE PIC 9(8).
05 NOMBRES-CLTE PIC X(20).
05 APELLIDOS-CLTE PIC X(25).
05 DIREC-RESID-CLTE PIC X(45).
05 NRO-TELEF-FIJO-CLTE PIC X(11).
05 NRO-TELEF-CEL-CLTE PIC X(11).
05 SITUACION-REG-CLTE PIC X.
88 REG-CLTE-LIBRE VALUE ' '.
88 REG-CLTE-OCUPADO VALUE '*'.
Cualquier información adicional que sea de utilidad, la puedo remitir por esta vía o por correo.
Gracias enormes.
Valora esta pregunta


0