viernes, 31 de julio de 2009

Recetario T-SQL

Ejecución de un lote X veces. ¿Cómo lo conseguimos?
Muy sencillo, a partir de SQL Server 2005, se introdujo la posibilidad de ejecutar un batch x veces mediante el comando GO X (siendo X el número de veces que queremos que se ejecute).
Ejemplo:

SELECT GETDATE() AS FechaActual
GO 10

Cargar RSS en un DataGridView con LINQ to XML

Vamos a cargar las rss de mi blog en un datagridview, para ello creamos una clase Feed tal como esta:


Ahora el resultado de los feeds en una consulta sencillita en LINQ to XML la pasamos a nuestro datagridview:




Y el resultado final lo vemos aquí:

martes, 14 de julio de 2009

El juego SIMON


¿Quién no ha jugado con este juego? Bueno seguro que la gente más joven no sepa ni lo que es, pero era un juego basado en la memoria visual y sonora. Personalmente adictivo (como para otros el cubo de Rubick), me lo regalaron de pequeño y siempre he guardado un grato recuerdo del juego.
El juego consiste en visualizar una secuencia de colores (aleatorios) y luego repetirlos. Cada vez que acertemos la secuencia, empezará otra más difícil y así sucesivamente hasta que fallemos.
El motivo del post, es que he encontrado en CodePlex este juego hecho en WPF, Silverlight (2 y 3) y Surface. Te lo puedes descargar desde aquí:
http://simon.codeplex.com/ (sección downloads)
Lo mejor de todo es que viene con sus fuentes y así puedes disfrutar doblemente, una con el juego y otra con el código.
El autor del juego es David J Kelley (http://hackingsilverlight.blogspot.com/ o bien http://www.hackingsilverlight.net/ (para poder acceder a esta página necesitas tener instalado Silverlight 3).

sábado, 11 de julio de 2009

Recetario T-SQL

Este es un SP (procedimiento almacenado o stored procedure en el idioma de Shakespeare) no documentado por los BOL de SQL Server, pero que puede ser de gran utilidad a la hora de eliminar todos los datos de nuestras tablas, etc.

exec sp_MSforeachtable 'TRUNCATE TABLE ?'

Otra utilidad menos maligna es usar este SP para obtener todos los nombres de nuestras tablas, y por ejemplo almacenarlas en una tabla temporal para luego ... (lo dejo abierto a la imaginación de cada uno y la utilidad que quiera darle). Así nos evitamos los puñeteros cursores xDDD

exec sp_MSforeachtable 'SELECT "?" AS Tabla'

Configuración básica de SQL Server a nivel de OS

A nivel de sistema operativo es importante realizar la siguiente comprobación:

1.- Click con el botón derecho en MiPC y seleccionamos Propiedades, luego seleccionamos la pestaña de Opciones Avanzadas, en esta pestaña hacemos click en el botón Configuración de la opción Rendimiento. La opción que debemos seleccionar es Ajustar para el mejor rendimiento de: Servicios en segundo plano.

2.- Si es posible, lo mejor es situar el archivo de paginación del sistema en una unidad diferente a la de las BD de SQL Server.

3.- Servicios de Windows no necesarios, tendremos que parar aquellos servicios que no nos hagan falta. Aquellos servicios necesarios los configuraremos de manera que se arranquen automáticamente.

4.- Conectividad, sólo usaremos los protocolos que necesitemos para conectar con SQL Server. Para deshabilitar los no necesarios lo haremos a través del Configuration Manager de SQL Server.

5.- Firewall, es muy importante configurarlo adecuadamente para que podamos conectar con SQL Server sin problemas. Si tenemos configurado SQL Server de forma que la conexión con los puertos sea aleatoria, lo mejor es añadir una excepción en el firewall que incluya el ejecutable Sqlserv.exe y Sqlbrowser.exe