La historia del ODBC y el Concat
diciembre 3, 2009 Publicado en Software y HardwareEtiquetas: odbc
Había una vez un programador que había recorrido el bosque de Internet buscando el árbol de las columnas de MySQL para concatenar tres frutos -dos partes de enteros y una parte de cadena- y así llenar una canasta que su abuelita le había pedido con la información de los visitantes de su host. Como su abuelita prefería las hojas de Bill el programador debía guardar aquella concatenación en una canasta de ODBC, y para su sorpresa la canasta parecía no llenarse por más que pusiera en ella los frutos una y otra vez. Por un día entero se recorrió los bosques de hipertextos de Sun y no encontró una respuesta a su situación, hasta que ya entrada la noche -algo a lo que estaba acostumbrado el programador, si se me permite la aclaración, así que no debería sorprender el que le tocara olvidarse de sus necesidades fisiológicas por una noche- un hierofante en la blogósfera en un rincón poco iluminado por los soles de Google le explicó que en ODBC la función de concatenación solo acepta frutos de cadena, y que los frutos enteros hacen que se desintegren en el aire y no llenen las canastas como uno esperaría. El hierofante le recomendó al pobre desdichado que pasara por un cast los frutos enteros antes de concatenarlos. El programador volvió donde su abuela, pasó por un cast los frutos enteros, los concatenó y los cocinó con ODBC. La abuelita se alegró mucho al ver su lista de invitados poblarse con cada visita a su host.
Pasaron los días y el programador volvió donde la abuelita que lo había mandado llamar, muy preocupada porque un feroz incendio se había comido los datos de su hosting, y como la última copia de seguridad no tenía la información de la concatenación con ODBC era necesario volver al bosque de Internet a buscar los frutos enteros y de cadena. Pero el programador no había documentado aquella visita al bosque y no recordaba las palabras del hierofante, que ya se perdían en la niebla de los proyectos pasados, así que tuvo que recorrer de nuevo el bosque de Internet hasta encontrar el punto olvidado por los soles de Google, donde el hierofante con voz burlona le recordó al programador lo que había olvidado, y de paso le enseñó el mantra que no debía olvidar jamás en su vida: Documentar.
Moraleja: no documentar puede hacer que tengas que volver a inventar la rueda, o peor aun, tener que perderte un día entero buscando en Internet lo que se supone que ya habías aprendido.
Así que solo por referencia, y porque no quiero repetir la misma búsqueda en Internet, tomo nota de la solución que encontré para una situación que viví usando la función concat() en una conexión ODBC.
La función concat() solo acepta cadenas, y por lo tanto no vizualisará las columnas que correpondan a concatenaciones que tengan por lo menos una variable numérica entre sus elementos a concatenar. Si entre las variables hay un número se deberá convertir a una cadena, usando para ello la función cast(var as char).