Crystal Reports 10 & MySQL

Las grandes dificultades que uno se encuentra al hacer un proyecto.
Como comentaba en una entrada anterior estamos en un proyecto que necesita generar a través de CR10 unos PDF’s y XLS’s. Todo marcha a la perfección, los archivos se generan ok pero el único detalle es que ahora en vez de funcionar con MS-SQL Server funcionarán con MySQL. La muda de base es transparente, no hay problemas de ningún tipo y los script de ABC funcionan correctamente. El problema viene al conectar los reportes de CR!
Qué sucede? bueno primero CR no soporta MySQL de manera directa así que se conecta a través del ODBC de MySQL que se puede descargar de aquí:

http://dev.mysql.com/downloads/connector/

Aparentemente todo funciona ok con este odbc pero oh sorpresa, en caso de que el SQL generado por CR10 sea más complicado y utilice Outer Joins entra en escena una pesadilla!
Sucede que CR10 cuando utiliza Outer Joins genera un script con una sintáxis que el ODBC de MySQL no entiende!, son unas pocas letras en cuestión:
{oj …… }
Aquí truena el query y CR10 es incapaz de traer un registro.
Cómo solucionarlo?! me estaba generando una cantidad enorme de canas verdes, lo que debería de ser una adecuación transparente se estaba convirtiendo en mi peor pesadilla.
No encontré manera alguna de desactivar eso!
Gracias a dios en Google encontré la respuesta adecuada y los caminos por los que me llevó eran totalmente sorprendentes.
El string de búsqueda fue:
“{oj” mysql crystal reports
Tal cual con dobles comillas y todo. en fin el primer y segundo resultado de la búsqueda me llevaron a la solución. La lectura no fue del todo sencilla, decenas de colegas tenían el mismo problema y a pesar de que lo resolvieron de repente dejaban semanas sin reportar nada jajaja pero aquí mi determinación por encontrar una respuesta me llevó por el camino correcto.
Caí en esta página:
http://bugs.mysql.com/bug.php?id=18563
Como bien lo hace notar MySQL NO es un error/bug de ellos, más bien es un asunto de CR10.
El chiste es que después de leer encontré esta liga:

http://technicalsupport.businessobjects.com/KanisaSupportSite/search.do?cmd=displayKC&docType=kc&externalId=c2016114&sliceId=&dialogID=16742671&stateId=1%200%2016744519

En pocas palabras es el tema en cuestión y la respuesta que da es que hay que agregar un registro a CR para que omita esa sintáxis al usar el MyODBC.
Hay que seleccionar entre varias opciones:

Para Crystal Reports 10:
------------------------

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Crystal Decisions\10.0\
Crystal Reports\Database\QueryBuilder\OuterJoinEscSeq]
"NoOuterJoinEscSeq"="MyODBC3"

Para Crystal Reports XI Release 1:
-----------------------------------

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Business Objects\Suite 11.0\
Crystal Reports\Database\Querybuilder\OuterJoinEscSeq]
"NoOuterJoinEscSeq"="MYODBC3, libmyodbc3"

Para Crystal Reports XI Release 2:
-----------------------------------

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Business Objects\Suite 11.5\
Crystal Reports\Database\Querybuilder\OuterJoinEscSeq]
"NoOuterJoinEscSeq"="MYODBC3, libmyodbc3"

Cualquiera ingresarla en un block de notas y guardarla con la extensión .reg, darle doble click y esperar que se agregue el registro.
Ahora bien, hice lo anterior y seguía apareciendo la sintáxis!!!! bueno ya un poco más tranquilo decidí revisar si acaso el registro estaba bien agregado… sorpresa!!! no estaba bien así que lo agregué a manita.

Cerré y ejecuté de nuevo CR10 y voilá! todo ok!
Ahora sí, a continuar con mi trabajo y terminarlo rápidamente. Espero que quien lea esto solucione su problema.
Saludos & happy coding!

Tags: ,

Comments are closed.