miércoles, 19 de noviembre de 2014

Error al abrir Clarion 8 luego de un mal cierre de sesión de windows

Ayer cuando se me quedó sin batería la UPS luego de un corte de luz, justo estaba cerrando el Clarion 8 y se me apagó la PC. Cuando volvió la energía eléctrica, mi Clarion no iniciaba. Daba una lista sábana de errores de inicilización en un .xml que no encontraba. Tras reinstalar Clarion, Framework .NET, y demás seguía dando el mismo error.

El problema, tras googlear, se debe a que, como todo .NET Framework, al iniciar y cerrar el IDE, lee y escribe unos archivos XML de configuración de pantalla y del estado del IDE al cerrar. Se ve que al justo apagarse la PC se dañaron esos archivos.

La solución? Hay que resetear las preferencias nuevamente.




























Con lo que hay que poner el usuario y contraseña de registro, y registrar los templates nuevamente.

Otra cosa que hay que hacer el borrar las soluciones y proyectos (*.sln y *.cwproj) de la carpeta de trabajo para que se puedan  crear de nuevo al abrir un .app nuevamente.

Saludos y hasta la próxima!!

viernes, 21 de marzo de 2014

SQL Server - Listar Nombres de Columnas de Tablas Temporales

De vez en cuando, tenemos que trabajar con tablas temporales, ya sea que estamos en medio de cursores, trabajando con los nuevos operadores PIVOT y UNPIVOT, etc. para insertar, recuperar o transformar datos.

Si tenemos que hacer nada más que consultas de los datos de la tabla temporal, y suponiendo que mi tabla temporal se llama "temptable", solo hay que hacer

SELECT * FROM [tempdb].[dbo].[temptable]



Ahora bien, hay veces que necesitamos listar los nombres de las columnas de nuestra tabla temporal. Si fuera una tabla de nuestra base de datos, llamada "MiTablita", eso lo podríamos saber haciendo:

SELECT COLUMN_NAME
FROM information_schema.columns
INNER JOIN information_schema.tables ON (information_schema.columns.TABLE_NAME = information_schema.tables.TABLE_NAME)
INNER JOIN sysobjects ON (information_schema.tables.TABLE_NAME = sysobjects.name)
WHERE sysobjects.xtype = 'u' AND information_schema.columns.TABLE_NAME = 'Tablita'



Pero si es una tabla temporal no la vamos a encontrar en "information_schema" sino en "tempdb.information_schema" así:

SELECT COLUMN_NAME
FROM tempdb.INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'temptable'