Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Compilador] Aplicacion CURD conectar servidor de MariaDB nbiker GnuCOBOL (OpenCOBOL) 8 30 de diciembre de 2024 15:48
[Duda] Diferencia resultados consulta en MariaDB y PWC9 Josber PowerCOBOL (ActiveX, v4 - v11) 27 2 de octubre de 2024 03:33
[Compilador] Diagnostica error para ciertas variables Tigre PowerCOBOL v3 (V3L10, Win32) 1 14 de agosto de 2024 17:33
[Sintaxis] Error de sintaxis SQL GabrielACE AcuCobol 10 29 de enero de 2019 20:14
Resalto de sintaxis Kuk Funcionamiento del Foro 4 14 de diciembre de 2016 03:06

Respuesta

  #1
Antiguo 21 de julio de 2017, 23:24
dmosca
Forero
Última Actividad 07.07.2022 13:19
Posts Posts: 69
Likes enviados Enviados: 32
Likes recibidos Recibidos: 3
Base de datos Error sintaxis ADODB Mariadb variables host
0 Inactivo Inactivo

Estimados
Estoy trabajando con powercobol v9

tengo error de sintaxis al transferir desde un "select...into..." información a variables de trabajo.

al ejecutar da error de sintaxis,

este es el codigo
Código COBOL:
  1.      invoke OBJ-CONNECTION "Open" using NAME-DB.
  2.      invoke COM "CREATE-OBJECT" using PROGID-RECORDSET
  3.                                 returning OBJ-RECORDSET.
  4.      STRING "SELECT Orden, Campo1, Campo2, Campo3 "
  5.             "INTO :WORDEN, :WCAMPO1, :WCAMP2, :WCAMPO3 "            
  6.             "FROM ejemplo WHERE Campo1 = 'manzana' "
  7.             "ORDER BY Campo1 ASC LIMIT 1;"
  8.             LOW-VALUE DELIMITED BY SIZE INTO ADO-OPEN-STRING.
  9.     invoke OBJ-RECORDSET "open" using ADO-OPEN-STRING  *> <======                                                                                      
  10.                                       OBJ-CONNECTION
  11.                                        WK-0
  12.                                        WK-1
  13.                                        WK-0.
  14.      invoke OBJ-RECORDSET "GET-EOF" returning IS-EOF.
da error en la linea resaltada.
si elimino la linea "INTO :WORDEN, :WCAMPO1, :WCAMP2, :WCAMPO3 " funciona ok.
dmosca is offline   Responder Con Cita
  #2
Antiguo 22 de julio de 2017, 21:45
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Pues aparte de que te sobra un asterisco en "invoke OBJ-RECORDSET "open" using ADO-OP"EN-STRING", lo veo bien, aunque, y no sé si será el caso, yo no monto la instrucción en ese orden, yo lo hago:
Código:
SELECT campos FROM tabla
WHERE condiciones LIMIT n
INTO :campos
ORDER BY campo_orden [ASC]/[DES]
Sé que en algunas cosas MariaDB, es muy puñetero y quizás el orden de la instrucción afecte en algo

Un saludo y suerte
Josber is offline   Responder Con Cita
  #3
Antiguo 22 de julio de 2017, 23:53
dmosca
Forero
Última Actividad 07.07.2022 13:19
Posts Posts: 69
Likes enviados Enviados: 32
Likes recibidos Recibidos: 3

Josber

estarán mal definidas las variables?
Código COBOL:
  1.  01 WEJEMPLO.
  2.     02 WORDEN   PIC S999.
  3.     02 WCAMPO1  PIC X(30).
  4.     02 WCAMPO2  PIC S99999.
  5.     02 WCAMPO3  PIC X.
dmosca is offline   Responder Con Cita
  #4
Antiguo 23 de julio de 2017, 20:14
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

En la WORKING, has definido WCAMPO2, y en el STRING, estás usando WCAMP2, ¿es así o es un fallo al postearlo aquí en el foro?, por lo demás, están bien definidas en la WK, para definir las alfanuméricas, no tienen nada en especial y las numéricas, han de ser con signo siempre y lo has puesto correctamente.

Un saludo.-
Josber is offline   Responder Con Cita
  #5
Antiguo 24 de julio de 2017, 03:46
dmosca
Forero
Última Actividad 07.07.2022 13:19
Posts Posts: 69
Likes enviados Enviados: 32
Likes recibidos Recibidos: 3

Gracias x la respuesta

creo que el problema está en la definición de las variables, modifique el select y sigue dando error en la variable de trabajo:

adjunto imagen con el codigo

error
B]You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':WORDEN Limit 1' at line


estoy empezando con sql y no por donde seguir buscando...

saludos

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  Error ADODB.JPG
Vistas: 118
Tamaño:  89,1 KB  
dmosca is offline   Responder Con Cita
  #6
Antiguo 24 de julio de 2017, 12:22
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

dmosca, Tienes mal montado el STRING, la sintáxis correcta sería:

Código COBOL:
  1. STRING "SELECT ORDEN, CAMPO1, CAMPO2, CAMPO3 FROM EJEMPLO WHERE ORDEN LIKE '%"
  2.            WORDEN
  3.            "%' LIMIT 1" DELIMITED BY SIZE INTO NAME-DB
  4. END-STRING".

y si ya quieres rizar el rizo y que sea más exacta la instrucción, puedes poner:

Código COBOL:
  1. STRING "SELECT ORDEN, CAMPO1, CAMPO2, CAMPO3 FROM EJEMPLO WHERE ORDEN LIKE CONCAT('%',TRIM("
  2.             WORDEN
  3.             "),'%') LIMIT 1'" DELIMITED BY SIZE INTO NAME-DB
  4. END-STRING.

Referenciar la variable con 2 puntos delante, (:WORDEN), sólo tienes que hacerlo cuando es una consulta directa y has de pasarle una variable al gestor de Sql, cuando lo haces con un STRING, no tienes que poner los dos puntos.

A ver si tienes suerte, y si sigue dando problemas dilo a ver que por donde podemos atacar.

Un saludo.-
Josber is offline   Responder Con Cita
  #7
Antiguo 24 de julio de 2017, 13:52
dmosca
Forero
Última Actividad 07.07.2022 13:19
Posts Posts: 69
Likes enviados Enviados: 32
Likes recibidos Recibidos: 3

Hola Josber

es una de los tantos intentos que he echo, pero sigo sin poder pasar la info al campo en la working...

si la variable no está definida, el mensaje de error es que no esta la variable definida.

cuando defino la variable en la working y hago referencia a ":variable" me da error de sintaxis

dmosca is offline   Responder Con Cita
  #8
Antiguo 24 de julio de 2017, 16:28
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

No he utilizado nunca ADODB, siempre Sql embebido, y ahí, cuando defines la variables en la WK, has de definirlas de esta manera:

Código COBOL:
  1. WORKING-STORAGE SECTION.
  2.             EXEC SQL
  3.                      BEGIN DECLARE SECTION
  4.             END-EXEC.
  5. 01  WCAMPO1                      PIC X(50)   IS GLOBAL.
  6. 01  WCAMPO2                      PIC S9(5)V999.
  7.             EXEC SQL
  8.                      END DECLARE SECTION
  9.             END-EXEC.

No sé si con ADODB hay que declarar las variables así.

Un saludo.-
Josber is offline   Responder Con Cita
  #9
Antiguo 24 de julio de 2017, 16:36
dmosca
Forero
Última Actividad 07.07.2022 13:19
Posts Posts: 69
Likes enviados Enviados: 32
Likes recibidos Recibidos: 3

Josber

hice esa prueba, pero sigue con el error

gracias x tu tiempo
dmosca is offline   Responder Con Cita
  #10
Antiguo 24 de julio de 2017, 17:45
Josber
Moderador Global
Activista del Foro: Activista del Foro - Issue reason: Por aportar manuales y enriquecer  Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos 
Última Actividad 20.09.2026 12:17
Posts Posts: 883
Likes enviados Enviados: 418
Likes recibidos Recibidos: 492

Citación del post de dmosca Ver Mensaje
Josber

hice esa prueba, pero sigue con el error

gracias x tu tiempo
No hay de qué, estamos para ayudarnos, aunque no he usado ADODB, ¿puedes pasarme el proyecto y le doy un vistazo a ver que puede pasar?

Un saludo.-
Josber is offline   Responder Con Cita
Respuesta


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

Saltar a Foro


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