viernes, 8 de julio de 2011

IsSys en SQL Server Compact 4.0 es peligroso!

Hoy hemos recibido una inesperada sorpresa cuando hemos visto que Dormammu también anida en la entrañas de SQL Server CE 4.0.

Si quieres comprobarlo tú mismo, basta con que crees una nueva base de datos SQL Server CE 4.0 y agregues un campo a una tabla con un campo cuyo nombre comience por el literal ‘IsSys’.

Por ejemplo, en nuestro caso, tenemos una tabla [Users] con un campo [IsSystem], pues bien, comienza la fiesta…

Con la herramienta oficial de Microsoft (digo oficial, pero realmente quiero decir la herramienta que un par de becarios desarrollaron en un par de días… con todo el respeto a los becarios) esta columna no se ve, está missing, bueno está missing sólo en algunos sitios…

·         Se ve cuando editamos el esquema de la tabla

·         NO se ve cuando mostramos datos de la tabla

·         NO se ve en la conexión de datos desde el explorador de servidores

clip_image002

clip_image003

clip_image004

Para complicarlo aún más, si en vez de “mostrar datos de la tabla”, creamos una nueva consulta y seleccionamos la tabla [Users], aparece lo siguiente (sigue perdida la columna):

clip_image005

Sin embargo, sí podemos escribir la siguiente consulta, pero el campo aparece como de sólo lectura… yo no entiendo nada…

clip_image006

Sin embargo, si utilizamos la herramienta SQL Server Compact Toolbox de ErikEJ, todo funciona correctamente ¿Por qué no contrata Microsoft a ErikEJ?

Finalmente, mi recomendación (imposición) está clara: No utilices el literal IsSys como comienzo en el nombre de un campo en una base de datos SQL Server CE 4.0.

Un saludo!

1 comentario:

  1. Madre mia, si es que además de programadores, parecemos cazafantasmas!
    Pues menudo "bug", para volverse loco unos cuantos días...

    Gracias por encontrar una solución!

    ResponderEliminar