Gracias Rui Pinto (Rapinto)
COBOL Foro
Foro dedicado a COBOL, a la Programación y a la Informática.
Retroceder   COBOL Foro > IDE-s y compiladores COBOL > MicroFocus COBOL > AcuCobol
AcuCobol IDE y Compilador AcuCobol
Noticias y Avisos
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Error sintaxis ADODB Mariadb variables host dmosca PowerCOBOL (ActiveX, v4 - v11) 17 28 de julio de 2017 23:19
Resalto de sintaxis Kuk Novedades 4 14 de diciembre de 2016 02:06
[Información] Error SQL "02000 - Data not found" Josber MySQL 13 20 de mayo de 2015 19:57
Respuesta
 
Herramientas

  #1
Antiguo 4 de enero de 2019, 15:58
IDENTIFICATION DIVISION
GabrielACE
Novato Junior
ENVIRONMENT DIVISION
Avatar de GabrielACE
DATA DIVISION
Forero desde (Registrado)abril 2018
Argentina
Última Actividad11.04.2019 13:16
PROCEDURE DIVISION
PostsPosts: 32
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 4
Mejores respuestasSoluiones: 0
ReputaciónReputación: 0
GabrielACE is an unknown quantity at this point
Base de datos Error de sintaxis SQL

hola gente, tengo microfocus acucobol 9.11 y dbmaker

actualmente uso las tablas como si fueran archivos indexados, pero necesito acceder ahora
usando desde el mismo cobol a tablas mediante consultas tipo SQL


el tema es que cuando compilo me tira error de sintaxis

Código COBOL:
  1.      EXEC SQL
  2.          SELECT au_lname INTO :lastname FROM authors
  3.           WHERE au_id = '124-59-3864'
  4.      END-EXEC

pero se que la sintaxis esta bien, me parece que el problema es que no configure el compilador para ejecutar con SQL

alguien sabe si estoy en lo correcto? y de ser asi como modificar el compilador?
GabrielACE no ha iniciado sesión   Responder Con Cita
  #2
Antiguo 4 de enero de 2019, 20:08
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad34 años
Última Actividad18.06.2019 20:18
PROCEDURE DIVISION
PostsPosts: 1.392
Ha dicho GraciasEnviado: 304
Ha recibido agradecimientosRecibido: 525
Mejores respuestasSoluiones: 85
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

GabrielACE, no es END-EXEC sino END EXEC con espacio entre END y EXEC.


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #3
Antiguo 7 de enero de 2019, 15:14
IDENTIFICATION DIVISION
GabrielACE
Novato Junior
ENVIRONMENT DIVISION
Avatar de GabrielACE
DATA DIVISION
Forero desde (Registrado)abril 2018
Argentina
Última Actividad11.04.2019 13:16
PROCEDURE DIVISION
PostsPosts: 32
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 4
Mejores respuestasSoluiones: 0
ReputaciónReputación: 0
GabrielACE is an unknown quantity at this point
Predeterminado

Cita del post de Kuk Ver Mensaje
GabrielACE, no es END-EXEC sino END EXEC con espacio entre END y EXEC.
NOP

tampoco funciono
Código COBOL:
  1.  
  2.      159 00000A      DISPLAY "PRUEBA DE RUTINA PARA ALEATORIO"
  3.      160                     LINE 2 COL 1 ERASE
  4.      161                     "NUM MAXI: " LINE 5 COL 35.
  5.      162
  6.      163             EXEC SQL
  7. -->ERROR: Verb expected, EXEC found
  8.      164 000021            SELECT AT_NUCHASIS INTO :WS-NUCHASIS FROM autos
  9.      165                   WHERE AT_COAUTO= 123456;
  10.      166             END EXEC.
  11.      167
GabrielACE no ha iniciado sesión   Responder Con Cita
  #4
Antiguo 7 de enero de 2019, 18:18
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad34 años
Última Actividad18.06.2019 20:18
PROCEDURE DIVISION
PostsPosts: 1.392
Ha dicho GraciasEnviado: 304
Ha recibido agradecimientosRecibido: 525
Mejores respuestasSoluiones: 85
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

GabrielACE, es que esto depende del dialecto. En Enterprise COBOL de IBM creo recordar que es como he dicho antes. Pero mirando la documentación de Micro Focus por ejemplo, es como lo habías hecho tú al principio, con guion.

A ver, ¿puedes publicar el error que te daba exactamente al principio, con END-EXEC?


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #5
Antiguo 7 de enero de 2019, 20:42
IDENTIFICATION DIVISION
GabrielACE
Novato Junior
ENVIRONMENT DIVISION
Avatar de GabrielACE
DATA DIVISION
Forero desde (Registrado)abril 2018
Argentina
Última Actividad11.04.2019 13:16
PROCEDURE DIVISION
PostsPosts: 32
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 4
Mejores respuestasSoluiones: 0
ReputaciónReputación: 0
GabrielACE is an unknown quantity at this point
Predeterminado

Cita del post de Kuk Ver Mensaje
GabrielACE, es que esto depende del dialecto. En Enterprise COBOL de IBM creo recordar que es como he dicho antes. Pero mirando la documentación de Micro Focus por ejemplo, es como lo habías hecho tú al principio, con guion.

A ver, ¿puedes publicar el error que te daba exactamente al principio, con END-EXEC?
daba el mismo error.

estoy seguro de que tengo varios errores, el problema es que no tengo un ejemplo de microfocus con tablas SQL

por ejemplo, se que tengo que definir en la working el diseño de la tabla para que la reconozca

que en IBM se ponia
Código COBOL:
  1.           EXEC SQL BEGIN DECLARE SECTION
  2.          
  3.           CAMBIO TABLE
  4.           (
  5.  
  6.             CAM_FECHA     DECIMAL(8 ,0) NOT NULL,          
  7.             CAM_CAMBIO    DECIMAL(5, 4) NOT NULL          
  8.          
  9.           )
  10.           END-EXEC.

pero aqui me dice que es un error porque le falta el nivel 01

estoy complado con este tema :-S
GabrielACE no ha iniciado sesión   Responder Con Cita
  #6
Antiguo 7 de enero de 2019, 21:38
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad34 años
Última Actividad18.06.2019 20:18
PROCEDURE DIVISION
PostsPosts: 1.392
Ha dicho GraciasEnviado: 304
Ha recibido agradecimientosRecibido: 525
Mejores respuestasSoluiones: 85
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

GabrielACE, no, olvídate de IBM. No tienes que declarar la tabla en formato SQL. En esa sección tienes que declarar las variables Host que vas a usar en tus querys.

¿Has activado el precompilador de SQL ?

Echa un vistazo a los ejemplos de SQL embebido que hay en el foro, te van a servir mucho.


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #7
Antiguo 8 de enero de 2019, 12:07
IDENTIFICATION DIVISION
Xavier
Acabo de llegar...
ENVIRONMENT DIVISION
Avatar de Xavier
DATA DIVISION
Forero desde (Registrado)enero 2016
España
UbicaciónValencia
Última Actividad09.01.2019 07:01
PROCEDURE DIVISION
PostsPosts: 14
Ha dicho GraciasEnviado: 9
Ha recibido agradecimientosRecibido: 2
Mejores respuestasSoluiones: 0
ReputaciónReputación: 0
Xavier is on a distinguished road
Predeterminado

Hola GabrielACE
Yo trabajo con PowerCobol, pero creo que la sintaxis es la misma.
En la WORKING-STORAGE debes definir las variables que vas a utilizar para "recoger" los datos de la Base de Datos, Por ejemplo:
Código COBOL:
  1. * Declarar las variables de las Tablas
  2.      EXEC SQL BEGIN DECLARE SECTION END-EXEC.
  3.          01 TablaClientes GLOBAL.
  4.               02 wCodigoCliente PIC S9(9) COMP-5.
  5.               02 wNombreCliente PIC X(40).
  6.      EXEC SQL END DECLARE SECTION END-EXEC.
En la PROCEDURE DIVISION.
Código COBOL:
  1.      MOVE 1 TO wCodigoCliente
  2.      EXEC SQL
  3.              SELECT NombreCliente
  4.                 INTO :wNombreCliente
  5.                FROM TablaClientes
  6.               WHERE CodigoCliente = :wCodigoCliente
  7.      END-EXEC

Espero que te sirva
Xavier no ha iniciado sesión   Responder Con Cita
  #8
Antiguo 8 de enero de 2019, 20:22
IDENTIFICATION DIVISION
GabrielACE
Novato Junior
ENVIRONMENT DIVISION
Avatar de GabrielACE
DATA DIVISION
Forero desde (Registrado)abril 2018
Argentina
Última Actividad11.04.2019 13:16
PROCEDURE DIVISION
PostsPosts: 32
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 4
Mejores respuestasSoluiones: 0
ReputaciónReputación: 0
GabrielACE is an unknown quantity at this point
Predeterminado

Cita del post de Kuk Ver Mensaje
GabrielACE, no, olvídate de IBM. No tienes que declarar la tabla en formato SQL. En esa sección tienes que declarar las variables Host que vas a usar en tus querys.

¿Has activado el precompilador de SQL ?

Echa un vistazo a los ejemplos de SQL embebido que hay en el foro, te van a servir mucho.
eso de activar el precompilador se que es una de las muchas cosas que me faltan

pero no tengo ni idea como activarlo, sabes como se hacer?
GabrielACE no ha iniciado sesión   Responder Con Cita
  #9
Antiguo 9 de enero de 2019, 20:11
IDENTIFICATION DIVISION
Kuk
Administrador
ENVIRONMENT DIVISION
Avatar de Kuk
DATA DIVISION
Forero desde (Registrado)diciembre 2014
España
UbicaciónMadrid
Edad34 años
Última Actividad18.06.2019 20:18
PROCEDURE DIVISION
PostsPosts: 1.392
Ha dicho GraciasEnviado: 304
Ha recibido agradecimientosRecibido: 525
Mejores respuestasSoluiones: 85
ReputaciónReputación: 10
Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road Kuk is on a distinguished road
Predeterminado

GabrielACE, si no activas el precompilador, que convierte la sintaxis SQL en CALL-s de Cobol, el programa te va a dar errores de sintaxis.

Habrá que mirar las propiedades del proyecto. En Micro Focus Visual COBOL es así:
Imágenes Adjuntas
Tipo de Archivo: png VC_SQL_Prepro.png (170,5 KB, 9 descargas)


NORMAS DEL FORO - obligatorias de conocer para TODOS.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale Pinchando en su Nick:

Kuk no ha iniciado sesión   Responder Con Cita
  #10
Antiguo 29 de enero de 2019, 12:19
IDENTIFICATION DIVISION
GabrielACE
Novato Junior
ENVIRONMENT DIVISION
Avatar de GabrielACE
DATA DIVISION
Forero desde (Registrado)abril 2018
Argentina
Última Actividad11.04.2019 13:16
PROCEDURE DIVISION
PostsPosts: 32
Ha dicho GraciasEnviado: 0
Ha recibido agradecimientosRecibido: 4
Mejores respuestasSoluiones: 0
ReputaciónReputación: 0
GabrielACE is an unknown quantity at this point
Predeterminado

Gracias por la data, el problema es que es la version 9.11, asi que no tengo ninguna ventaja visual para esas cosas
GabrielACE no ha iniciado sesión   Responder Con Cita
Respuesta


Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes)
 
Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado



La franja horaria es GMT +1. Ahora son las 22:35.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2019, Jelsoft Enterprises Ltd.