Ver Mensaje Individual
  #1
Antiguo 30 de noviembre de 2021, 17:28
DestinedBroken
Forero Junior
Última Actividad 16.02.2022 11:57
Posts Posts: 28
Likes enviados Enviados: 16
Likes recibidos Recibidos: 4
Predeterminado I/O Error al ejecutar una base de datos
0 Inactivo Inactivo

Hola comunidad,

Estoy empezando a trabajar con bases de datos en Cobol y este es mi primer ejercicio. Es muy sencillo. Solamente se le pide al usuario que rellene una serie de campos para introducir una persona con sus atributos en un registro de la base. Lo extraño del código es que funcionar, funciona todo bien. Me introduce correctamente todo, pero al final, cuando le digo que no quiero seguir con el programa, es cuando me tira el error:



El código:

Código COBOL:
  1.        program-id. create-files as "primero bases de datos".
  2.  
  3.        environment division.
  4.        configuration section.
  5.        input-output section.
  6.  
  7.        file-control.
  8.        select optional empleados-archivo
  9.            assign to "f:\empleados.dat"
  10.            organization is line sequential.
  11.  
  12.        data division.
  13.        file section.
  14.        fd empleados-archivo.
  15.      *label etiqueta-antigua-para-cintas.
  16.        01 empleados-registro.
  17.          05 empleados-id pic x(6).
  18.          05 empleados-nombre pic x(25).
  19.          05 empleados-apellidos pic x(35).
  20.          05 empleados-edad pic x(3).
  21.          05 empleados-telefono pic x(9).
  22.          05 empleados-direccion pic x(35).
  23.  
  24.        working-storage section.
  25.        01 identificador pic x(36) value
  26.       -"Introduce un ID del nuevo empleado: ".
  27.        01 nombre pic x(33) value "Introduce un nombre de empleado:".
  28.        01 apellidos pic x(25) value "Introduce los apellidos:".
  29.        01 edad pic x(19) value "Introduce la edad:".
  30.        01 telefono pic x(33) value "Introduce un numero de telefono:".
  31.        01 direccion pic x(25) value "Introduce una direccion:".
  32.  
  33.        01 si-no pic x.
  34.        01 entrada pic x.
  35.  
  36.        procedure division.
  37.  
  38.        program-begin.
  39.            perform procedimiento-de-apertura
  40.            move "s" to si-no
  41.            perform agregar-registros
  42.              until si-no = "n"
  43.            perform procedimiento-de-cierre
  44.  
  45.            .
  46.  
  47.        procedimiento-de-apertura.
  48.            open extend empleados-archivo
  49.            .
  50.  
  51.        procedimiento-de-cierre.
  52.            close empleados-archivo
  53.            .
  54.  
  55.        agregar-registros.
  56.            move "n" to si-no
  57.            perform obtener-campos
  58.              until entrada = "s"
  59.            perform escribir-registro
  60.            perform reiniciar
  61.            .
  62.  
  63.        obtener-campos.
  64.            move space to empleados-registro
  65.            display identificador
  66.            accept empleados-id
  67.            display nombre
  68.            accept empleados-nombre
  69.            display apellidos
  70.            accept empleados-apellidos
  71.            display edad
  72.            accept empleados-edad
  73.            display telefono
  74.            accept empleados-telefono
  75.            display direccion
  76.            accept empleados-direccion
  77.            perform continuar
  78.  
  79.            .
  80.  
  81.        continuar.
  82.            move "s" to entrada
  83.            if empleados-nombre = space
  84.                move "n" to entrada
  85.            end-if
  86.            .
  87.  
  88.        escribir-registro.
  89.            write empleados-registro
  90.            .
  91.  
  92.        reiniciar.
  93.            display "Almacenar otro registro en la base de datos (s/n)??"
  94.            accept si-no
  95.            if si-no = "s"
  96.                move "s" to si-no
  97.            end-if
  98.            if si-no not = "s"
  99.                move "n" to si-no
  100.            end-if
  101.            .
  102.  
  103.        end program create-files.
DestinedBroken is offline   Responder Con Cita