Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Micro Focus COBOL AcuCobol
AcuCobol IDE y Compilador AcuCobol
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
Error SQL "02000 - Data not found" Josber Bases de datos 14 21 de mayo de 2024 19:20
[Sintaxis] COBOL Y SQL jjcol Fujitsu COBOL 8 30 de septiembre de 2021 08:53
[Sintaxis] Error sintaxis ADODB Mariadb variables host dmosca PowerCOBOL (ActiveX, v4 - v11) 17 29 de julio de 2017 00:19
[Sintaxis] Sql Embebido Hrmcobol PowerCOBOL (ActiveX, v4 - v11) 23 28 de junio de 2017 01:09
Resalto de sintaxis Kuk Funcionamiento del Foro 4 14 de diciembre de 2016 03:06

Respuesta
 
Herramientas

  #1
Antiguo 4 de enero de 2019, 16:58
GabrielACE
Forero Junior
Última Actividad 11.04.2019 14:16
Posts Posts: 32
Likes enviados Enviados: 0
Likes recibidos Recibidos: 4
Base de datos Error de sintaxis SQL
0 Inactivo Inactivo

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 is offline   Responder Con Cita
  #2
Antiguo 4 de enero de 2019, 21:08
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #3
Antiguo 7 de enero de 2019, 16:14
GabrielACE
Forero Junior
Última Actividad 11.04.2019 14:16
Posts Posts: 32
Likes enviados Enviados: 0
Likes recibidos Recibidos: 4

Citación 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 is offline   Responder Con Cita
  #4
Antiguo 7 de enero de 2019, 19:18
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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 - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #5
Antiguo 7 de enero de 2019, 21:42
GabrielACE
Forero Junior
Última Actividad 11.04.2019 14:16
Posts Posts: 32
Likes enviados Enviados: 0
Likes recibidos Recibidos: 4

Citación 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 is offline   Responder Con Cita
  #6
Antiguo 7 de enero de 2019, 22:38
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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 - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #7
Antiguo 8 de enero de 2019, 13:07
Xavier
Forero Junior
Última Actividad 17.11.2021 12:04
Posts Posts: 24
Likes enviados Enviados: 13
Likes recibidos Recibidos: 3

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 is offline   Responder Con Cita
  #8
Antiguo 8 de enero de 2019, 21:22
GabrielACE
Forero Junior
Última Actividad 11.04.2019 14:16
Posts Posts: 32
Likes enviados Enviados: 0
Likes recibidos Recibidos: 4

Citación 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 is offline   Responder Con Cita
  #9
Antiguo 9 de enero de 2019, 21:11
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

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í:

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  VC_SQL_Prepro.png
Vistas: 164
Tamaño:  170,5 KB  



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #10
Antiguo 29 de enero de 2019, 13:19
GabrielACE
Forero Junior
Última Actividad 11.04.2019 14:16
Posts Posts: 32
Likes enviados Enviados: 0
Likes recibidos Recibidos: 4

Gracias por la data, el problema es que es la version 9.11, asi que no tengo ninguna ventaja visual para esas cosas
GabrielACE is offline   Responder Con Cita
Respuesta



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

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:51.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.