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
[Compilador] Acesso direto Fujitsu Cobol / MariaDB/ MySql Joseg PowerCOBOL (ActiveX, v4 - v11) 2 1 de octubre de 2024 15:35
[Sintaxis] Consulta sobre Function Key drvedia1981 PowerCOBOL (ActiveX, v4 - v11) 5 11 de mayo de 2022 19:53
[Componente] Aplicación en PWC9 lenta en Windows Server 2016 JuanJuan77 PowerCOBOL (ActiveX, v4 - v11) 3 8 de octubre de 2018 19:44
[Sintaxis] Error sintaxis ADODB Mariadb variables host dmosca PowerCOBOL (ActiveX, v4 - v11) 17 29 de julio de 2017 00:19

Respuesta
 
Herramientas

  #1
Antiguo 7 de junio de 2024, 13:30
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
Predeterminado Diferencia resultados consulta en MariaDB y PWC9
0 Inactivo Inactivo

Resulta que una misma instrucción ejecutada desde PWC9, (mediante un EXEC SQL), o desde un gestor de BD de MariaDB, (una versión "libre" de MySql), da distintos resultados, ¿alguien tiene una idea de por qué puede ser?

La instrucción es ésta:

Código SQL:
  1. SELECT COUNT(CLICOD) FROM CLIENTES WHERE CLICOD > TRIM(     333) AND CLIORG LIKE CONCAT_WS('','%',TRIM('ZACIÓN                                            '),'%') AND CLINOM LIKE CONCAT_WS('','%',TRIM('ENTE                          '),'%')"

En en gestor, el resultado es 140, (que es el correcto) y en PWC, el resultado es 0, (sin errores en SQLSTATE, ni nada por el estilo), con otras instrucciones no pasa, pero cuando hay varios "AND", falla.

Muchas gracias
Josber is offline   Responder Con Cita
  #2
Antiguo 7 de junio de 2024, 20:49
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, lo de las comillas dobles al final imagino que es el copy/paste...

Por lo pronto se me ocurre una sintaxis más ligera:

Código SQL:
  1. SELECT COUNT(CLICOD)
  2.   FROM CLIENTES
  3.  WHERE CLICOD > TRIM(     333)
  4.    AND CLIORG LIKE '%' || TRIM('ZACIÓN                                            ') || '%'
  5.    AND CLINOM LIKE '%' || TRIM('ENTE                          ') || '%'

Me parece que va a ser problema de codificación de caracteres, es decir que en este caso el valor "ZACIÓN" lleva tilde y puede que no se pase correctamente en la consulta y se interprete por otro caracter en el lado BBDD.

Intenta la misma consulta pero donde ambos valores alfanuméricos son letras sin acentos y compara a ver. Si el resultado es correcto (el valor es el mismo), eso es que hemos encontrado el problema.



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 junio de 2024, 22:11
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

Gracias @Kuk, sí lo de las comillas, ha sido el copy/pega, y lo tengo que hacer así de largo, porque es un montaje con un string, por eso está el tema de CONCAT_WS, en cuanto al acento, pues no he probado a no ponerlo, mañana hago la prueba a ver, todas las tablas las creo con COLLATE='utf8_spanish_ci, porque de lo contario, se da de bofetadas con las Ñs, acentos y demás

Un saludo
Josber is offline   Responder Con Cita
  #4
Antiguo 8 de junio de 2024, 10:49
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, UTF8 es una codificación Unicode, multi-byte, cosa que se puede tratar en PowerCOBOL únicamente con PIC N (N=National) y se configura la codificación a nivel de proyecto y trae alguna que otra complicación a nivel código. Es un tema que pocos hacemos mucho caso pero es importante.

El caso es que existe codificación mono-byte para el Español y no necesitas para nada Unicode como UTF8.

Pon el cotejamiento en latin1_spanish_ci

Echa on ojo a esto: https://blog.unreal4u.com/2012/08/so...rset-en-mysql/

Citación del post de Charset y Collation
Una de las primeras cosas que se deben saber es el cómo un CHARSET u otro guarda la información. Para ser muy breves y concisos, utf8 ocupa hasta 3 bytes en cada caracter, mientras que latin1 siempre ocupará 1 solo byte.
Y eso de 1 byte es lo que necesitamos justamente en Cobol para poder tratar el dato de manera natural que es con PIC X.

Estoy casi seguro que el problema viene de ahí.



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 8 de junio de 2024, 13:24
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, una cosa importante que se me olvidaba: cuando los datos ya están dentro de la BBDD creo que cambiando la codificación no cambia cómo el dato está guardado (es decir que seguirían en UTF8). Así que hay que tener cuidado con esto si se confirma que con los datos sin tildes no hay problema, habría que mirar cómo convertir los datos ya existentes.



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
  #6
Antiguo 8 de junio de 2024, 18:17
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

@Kuk, cuando ya están, el formato no cambia pero, como es una tabla de pruebas y los C.P., están en una hoja de Excel que me bajé de la página de Correos, creo recordar, sin problemas para "cepillarme" la tabla y volver a crearla.

Gracias por todo
Josber is offline   Responder Con Cita
  #7
Antiguo 11 de junio de 2024, 09:28
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, qué tal? Has hecho las pruebas?



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
  #8
Antiguo 11 de junio de 2024, 11:58
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 Kuk Ver Mensaje
@Josber, qué tal? Has hecho las pruebas?
Las hice ayer tarde, borré la tabla, la cree cambiando el COLLATE por latin1_spanis_ci y me sigue pasando lo mismo, en cuanto pongo un acento en PWC, ya no funciona la consulta, sin embargo, directamente en el gestor de BDs, funciona perfecto.

Sigo investigando ....
Josber is offline   Responder Con Cita
  #9
Antiguo 11 de junio de 2024, 17:17
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Josber, no sé qué versión de Power estás utilizando. Qué tienes como valor en RCS cuando haces clic en el Proyecto?

Yo creo que es cuestión de ir probando. Prueba con latin1_general_ci

Mientras yo voy mirando a ver si encuentro más info.



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 11 de junio de 2024, 20:31
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 Kuk Ver Mensaje
@Josber, Qué tienes como valor en RCS cuando haces clic en el Proyecto?.

Prueba con latin1_general_ci
No sé que es exactamente lo de RCS, la versión es PWC 9, he probado con latin1_general_ci, latin1_sweedish_ci, y varios más y el resultado siempre es el mismo, incluso he puesto BINARY, para que tome en cuenta las mayúscula y minúsculas.

Yo también sigo buscando, más que nada porque no es lo mismo buscar, por ejemplo, continuo que continuó y como los campos de búsqueda que tengo definidos incluye las observaciones, ahí puede haber de todo escrito, porque si fueran sólo los nombres y apellidos o direcciones, me daría igual.

*PD, me acabo de dar cuenta que con las Ñs, tampoco funciona, y eso ya es más importante, así que tiene que ser cuestión de elegir el "COLLATE" correcto, lo que me fastidia, es que tengo otras tablas en otros programas con latin1_spanis y utf8_spanish y funciona perfectamente. Voy a borrar la BD por completo y crear de nuevo las tablas a ver si tengo suerte y es un fallo en la creación

Muchas gracias.-
Josber 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 16:31.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.