JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Cómo devolver los resultados de una sub-consulta como un único campo de texto

Esta es una tarea bastante común pero que es muy complicada de conseguir con SQL Server. Imagínate que tienes la siguiente situación: Necesitas obtener un listado, en una cuadricula, con los datos básicos de cada cliente de tu base de datos, y con la fecha y el importe de cada pedido que ha realizado en el último año a continuación en la misma fila. Obtener un listado de clientes es un simple SELECT y obtener un listado de clientes con sus pedidos es un simple INNER JOIN. Lo complicado es que obtengamos para cada cliente toda la información de los pedidos como si fuera un campo más de la consulta. Cada cliente puede tener (y tendrá generalmente) un número de pedidos distinto: unos harán 1 pedido, otros 3 y otros 10, así que no podemos simplemente trasponer los resultados con PIVOT o UNPIVOT para devolverlos en columnas en lugar de en filas. Un listado de este tipo tendría un aspecto sim... [Más]

SQL Server Express: Hacer backups programados y con retención

SQL Server Express es una excelente opción para trabajar con SQL Server en proyectos pequeños y medianos sin tener que pagar licencias. Es una versión gratuita pero totalmente funcional del gestor de base de datos relacionales de Microsoft. A cambio tiene ciertas limitaciones. Por ejemplo, no permite utilizar más de 1 GB de RAM por instancia para caché de datos en memoria y el tamaño de cada base de datos gestionada no puede superar los 10 GB (que es un tamaño considerable para aplicaciones normales). Carece de otras características de alta disponibilidad y replicación, pero ofrece toda la funcionalidad habitual (incluyendo integración de datos y reporting) y las herramientas de administración. Aquí podrás encontrar una comparativa de todas las ediciones de SQL Server. Una de las cosas que no están disponibles con SQL Server es el Agente SQL. El agente nos permite programar tareas que se ejecutarán sobre las bases de datos cuando nosotros queramos. Esta carencia dificulta un poco, por... [Más]

Cómo extender/aumentar la partición del sistema en Windows Server

Hoy he tenido que redimensionar el disco de sistema de un servidor virtual y me ha dado un poco más de trabajo del que preveía, por lo que os cuento aquí como lo he solucionado por si le sirve de ayuda a alguien. Resulta que en una máquina virtual necesitaba duplicar el tamaño del disco principal virtualizado (con VMWare), así que simplemente desde la herramienta de administración le aumenté el espacio. Lo que yo esperaba ingenuamente era obtener el disco con el doble d eespacio ya disponible en C:\ pero por lógica esto no podía ser así. Lo que obtienes en realidad es una partición del disco con el espacio nuevo sin asignar, así: Esto es lo que se ve desde el gestor de almacenamiento al que llegamos desde Inicio y luego pulsando en “Administrar” en el menú contextual del equipo: Como vemos en la primera imagen, a la derecha y justo a continuación de la unidad actual, tenemos el espacio sin utilizar, por lo que cabría esperar que pulsando sobre C:\ con el botón derecho y eligiend... [Más]

Cómo funcionan las cookies y por qué es importante saberlo

De todos los personajes de Barrio Sésamo, cuando era pequeño los que más me gustaban eran el Conde Draco (que contaba todo lo que se le ponía por delante) y sin duda Triki, el monstruo de las galletas. Triki se pasaba el día comiendo galletas de forma desmesurada, rompiéndolas en mil pedazos mientras lo hacía. Creo que se le salían de la boca más que las que era capaz de procesar. Era un personaje muy divertido. Me he acordado de él hoy al pensar en escribir este post, ya que a algunos programadores web les pasa lo mismo que a Triki: procesan las cookies pero le sirven de bien poco o le hacen un flaco favor. Más o menos todos los programadores web tienen una idea aproximada de qué son las cookies en un navegador web y para qué se utilizan. Pero hay algún concepto básico que todavía no es bien conocido y que me parece interesante aclarar, así que me he decidido a escr... [Más]