Bienvenidos

Recuerda que tus comentarios son importantes y recuerda agradecer si te fue útil algun artículo publicado aquí.

L1f3 15 a D@nc3 Flo0r

jueves, 14 de febrero de 2019

Query para ver los objetos modificados en la base de datos

Para ver los objetos creados y/o modificados en una base de datos de SQL Server podemos utilizar el siguiente query:

declare @ano int
set @ano = 2019 
declare @mes int
set @mes = 01
select name, [type], [type_desc], create_date, modify_date
from sys.objects
where type not in ('SQ','D','F','IT','PK','S')
  and (year(modify_date) = @ano or year(create_date) = @ano)
  and (create_date <> modify_date or create_date = modify_date)
ORDER BY modify_date, [TYPE], [NAME]

En este caso estamos filtrando  por año y mes y estamos excluyendo algunos objetos.

Listado de objetos disponibles:

D :  DEFAULT_CONSTRAINT
F :  FOREIGN_KEY_CONSTRAINT
FN :  SQL_SCALAR_FUNCTION
IT :  INTERNAL_TABLE
P :  SQL_STORED_PROCEDURE
PK :  PRIMARY_KEY_CONSTRAINT
S :  SYSTEM_TABLE
SQ :  SERVICE_QUEUE
U :  USER_TABLE
V :  VIEW

Repetir el encabezado de una tabla en un reporte en cada página (RDLC)

Si estamos diseñando un reporte en visual studio con una tabla y queremos que la fila del encabezado (header) de la tabla se repita en todas las paginas del reporte, debemos seguir estos pasos:

1. Seleccionar la tabla completa y activar la propiedad RepeatRowHeaders



2. Hacer click en la flecha pequeña que aparece en la esquina inferior derecha del reporte y hacer click en la opcion Advanced Mode




3. Cuando se activa el modo avanzado se despliega un detalle que representa las filas de la tabla en la seccion Row Groups, aqui seleccionamos la primera fila que representa el encabezado (Static) y al seleccionarla activamos las propied RepeatOnNewPage. Si queremos que además el header permanezca siempre visible mientras nos deslizamos hacia abajo en el reporte, activamos la opción FixedData. En caso de tener un grupo en la tabla y querramos que todas las filas que componen el encabezado se repitan en todas las páginas, las vamos seleccionando en Row Groups y le activamos la opción a todas.


jueves, 22 de diciembre de 2016

Log de correos enviados desde Database Mail

Visualizar el log de correos enviados desde el servicio de correos de SQL SERVER.

Para ver los correos enviados podemos usar el siguiente query. La parte del WHERE sería para ver solo los del día actual, asi que se puede eliminar si queremos ver todos los correos.

USE msdb ;  
GO  
  
SELECT     mailitem_id, 
    recipients, 
    copy_recipients, 
    blind_copy_recipients,
    [subject],
    body,
    send_request_date,
    send_request_user,
    sent_status,
    sent_date,
    last_mod_date
FROM  sysmail_allitems
WHERE convert(varchar, sent_date,101) = convert(varchar, getdate(),101)

GO

miércoles, 21 de diciembre de 2016

Secuencia numérica (Identity) en un query SELECT de sql server

Para retornar una secuencia numérica como un campo dentro de un SELECT de SQL Server podemos usar el siguiente código.
select ROW_NUMBER() OVER (ORDER BY fecha) as Sec,Nombre, Apellido, Fecha 
from usuarios
En el query anterior estamos creando un campo que no existe en la tabla llamado Sec donde se va a desplegar una secuencia numérica por cada fila que retorne la consulta.
Luego se esta mostrando el campo nombre, apellido y fecha de la tabla Usuarios

Resultado:

Sec Nombre Apellido Fecha
1 Juan Perez 10/10/2013
2 Laura Martinez 10/10/2013
3 Lucas Pena 7/7/2014
4 Maria Diaz 11/13/2014
5 Jose Castillo 12/1/2014

domingo, 27 de noviembre de 2016

Visualizar la descripción de las tablas y campos de una base de datos en SQL SERVER

Escribir la descripción de las tablas y los campos de una base de datos de SQL SERVER es una buena práctica y facilita el trabajo en el futuro cuando no recordemos exactamente lo que se guarda en cada lugar.

Además sirve para generar automáticamente la documentación de la base de datos. En otras palabras, las herramientas de documentación de bases de datos, buscan lo escrito en la descripción y automaticamente la pasan a la documentación,

Ejemplo que he utilizado de estas herramientas son: SQL Doc, ApexSqlDoc y DBDoc

Para visualizar rápidamente la descripción de las tablas y campos, podemos usar este query. Espero que les ayude.

SELECT      u.name + '.' + t.name AS [table],
            td.value AS [table_desc],
            c.name AS [column],
            cd.value AS [column_desc]
FROM        sysobjects t
INNER JOIN  sysusers u
    ON      u.uid = t.uid
LEFT OUTER JOIN sys.extended_properties td
    ON      td.major_id = t.id
    AND     td.minor_id = 0
    AND     td.name = 'MS_Description'
INNER JOIN  syscolumns c
    ON      c.id = t.id
LEFT OUTER JOIN sys.extended_properties cd
    ON      cd.major_id = c.id
    AND     cd.minor_id = c.colid
    AND     cd.name = 'MS_Description'
WHERE t.type = 'u'
ORDER BY    t.name, c.colorder


Fuente: http://stackoverflow.com/questions/887370/sql-server-extract-table-meta-data-description-fields-and-their-data-types

miércoles, 16 de noviembre de 2016

Hacer funcionar un plugin de Jquery dentro de un UpdatePanel de Ajax

En el siguiente ejemplo vamos a hacer funcionar el plugin DatePicker de Jquery en una página con un Master Page y un UpdatePanel de Ajax.

La razón por la que los plugins de Jquery no te funcionan cuando el master page tiene Ajax es porque la función del Update Panel es precisamente refrescar solamente secciones de la página, mientras que los plugins de Ajax se envian a ejecucion cuando se hace el post back completo.

Este sería el codigo en el master page:
Codigo de la página
Con esta solución ya funcionan los plugins de Jquery en una página con Master Page y UpdatePanel de Ajax

sábado, 12 de noviembre de 2016

Quiero aprender a programar

Durante la parte de mi vida en que me ha tocado la función de desarrollador de aplicaciones, varias personas me han hecho la misma pregunta: ¿Qué debo hacer para aprender a programar?

Esta es una pregunta compleja y al mismo tiempo halagadora ya que normalmente los desarrolladores de software son vistos como “nerds” encerrados en una habitación todo el día sentados frente a un computador escribiendo códigos que mágicamente la computadora interpreta y aparece en la pantalla un sistema o una página web.

Muchas personas prefieren mantenerse lo más alejado posible de todo lo que ocurra en ese mundo desconocido de los desarrolladores de software así que cuando alguien pregunta ¿Qué debo hacer para aprender a programar? Más vale darles la respuesta correcta.

El mundo actual funciona en casi todos sus aspectos con tecnología, la podemos encontrar en todos los ámbitos de la vida cotidiana, desde un computador, los Smartphone, los televisores, las neveras, todo ya tiene alguna especie de software, esto nos da el primer paso para aprender a programar. Tenemos mucho campo en el desarrollo de software así que lo primero es decidir para qué quieres programar.

Muchos tienen la idea de que para ser programador hay que ser un genio matemático, esto es completamente falso, aunque dominar las matemáticas es una ventaja, lo más importante en la programación es la lógica. Esa lógica es la que nos permitirá solucionar los problemas, entender lo que desean o necesitan los usuarios, realizar aplicaciones más sólidas, eficientes y user friendly, es decir que sean de fácil uso para las personas.

Entonces, si ya sabes para qué plataforma quieres programar o ya sabes las situaciones de la vida que quieres mejorar con la tecnología y ya tienes conceptos de lógica, debes elegir un lenguaje de programación que sea óptimo para el fin que deseas.

Existen cientos de lenguajes de programación diferentes, con diferentes complejidades, pero también para diferentes usos. Así como avanza la tecnología de uso cotidiano, también avanza la tecnología para los desarrolladores de software, por lo que cada día es más fácil “programar”. Existen frameworks o plataformas que interpretan códigos de programación de lenguajes que utilizan funciones y etiquetas muy similares al lenguaje humano y los convierten a lenguaje de máquina y cada día esto se vuelve más eficiente.

Existen también lenguajes de programación muy similares, por lo que aprendiendo uno podrás dominar otros en muy poco tiempo. Dependiendo el área en la que quieras desarrollarte, algunos lenguajes de ejemplo podrían ser: Para aplicaciones comerciales o de oficina puedes investigar sobre .NET, Java, Python y SQL. Para aplicaciones móviles te interesará investigar sobre C++ (C plus plus) o Java. Si te interesa el desarrollo web te interesará investigar sobre HTML, PHP, CSS, JavaScript, Ruby, Python, .NET o SQL. Si lo que deseas es entrar a lo que llamamos lenguajes de bajo nivel y medio nivel es decir códigos que pueden ejecutar funciones más cerca del hardware puedes investigar sobre C o Assembly.

En internet existe información ilimitada sobre los diferentes lenguajes de programación, así como páginas web que enseñan a programar de manera rápida y divertida, existen videos y muchos libros sobre programación. Lo más importante en tomar en cuenta es que la programación nunca se aprende completamente, cada día se aprende algo nuevo. Es posible que el día de hoy no entiendas un concepto, pero si sigues practicando e investigando llegará un día en que te darás cuenta que eso que ayer no entendías hoy se vuelve sencillo, ya que el aprendizaje de la programación es por niveles, lo que aprendes hoy será la base para entender lo del futuro. Busca un programador experimentado que te sirva como mentor y como decimos en este mundo, la programación entra por los dedos así que programa todos los días.

Imágenes desde:
https://tctechcrunch2011.files.wordpress.com/2013/09/keep-calm-and-learn-to-code-2.png?w=400