Thursday, January 10, 2013

SQL: update con alias

La forma correcta de escribir una sentencia UPDATE utilizando un alias es como sigue:

UPDATE c set c.contrato_id=
w.nro_contrato=c.nro_contrato)
(SELECT DISTINC w.id FROM boveda.com.contrato w WHERE w.tipo_registro=1 and w.nro_contrato='2402/04')
FROM boveda.com.contrato c
WHERE c.tipo_registro=3 and c.nro_contrato='2402/04'

Sencillo después de saber el cómo, no? Yo no lo sabía e insistía que era algo como...

UPDATE    nombre_de_la_tabla    y_aqui_el_alias    SET    y_aqui_el_resto

Monday, December 17, 2012

Ayuda gatuna

Esta imagen realmente me hizo reír porque lo he experimentado muchas veces. Mi compañero de la vida, el que siempre estuvo conmigo todas las noches de desvelo, el que se caminaba por encima de mi teclado, se acariciaba el cuerpo con mi monitor... Mi gato querido que también chateaba... Este post va para vos!


Thursday, November 15, 2012

Restar dos fechas

Cómo restar dos fechas en Visual Basic .Net vb.net DateTimePicker

Problema: Dada dos fechas, cómo restarlas para saber cuántos días, horas, minutos o segundos han transcurrido.

En mi caso, yo tengo configurado en una tabla el número de días permitidos para tener acceso a ver cierto reporte a partir de la fecha actual. Por ejemplo, si hoy es 15/11/12 y el número configurado es 15 días, debo saber cuántos días hay entre la fecha que eligió el usuario a la fecha actual. Si esa resta es igual o menor al número de días que tengo configurado (15 en este caso), podrá visualizar el reporte.

Podemos hacerlo de dos maneras: utilizando "Subtract" (TimeSpan) y "DateDiff"

Dim resta1 As TimeSpan = Now.Date.Subtract(Me.dtpFechaInicial.Value.Date)

Dim resta2 As Integer = Now.Date.Subtract(Me.dtpFechaInicial.Value.Date).Days

Dim resta3 As Integer = DateDiff(DateInterval.Day, Me.dtpFechaInicial.Value.Date, Now.Date)

resta1 nos devuelve un objeto de tipo TimeSpan. Al darle resta1. nos lista los métodos disponibles y uno de ellos es Days. Eso devuelve resta2, un Integer. Significa el número de días que hay entre el rango de fechas. Por otro lado, resta3 nos devuelve asimismo el número de días que hay entre el rango de fechas dados que también es un Integer.

HaPPy Coding =)

Friday, October 12, 2012

SQL SERVER 2008: volver Una columna A identity

Recuerdo que en SQL Server 2005 era fácil volver una columna a identity. Solo tenías que hacer clic derecho sobre la columna en el Management Studio, Modificar/Modify y en la ventanita Collumn Properties bajo la propiedad Identity Specification: Yes, Identity Seed: el último ID.

Pero con el SQL SERVER 2008 no se puede. Los pasos para hacerlo serían:

1. Te creas una tabla auxiliar de la que quieres volver identity.

create table Boveda_Auxiliar(
 Cod_Boveda int primary key identity(1,1),
 Cod_Sucursal smallint,
 Descripcion varchar(50),
 Cod_Cobertura int,
 sLastUpdate_id varchar(16),
 dtLastUpdate_dt datetime,
 iConcurrency_id int,
 FechaCreacion datetime,
 Activo bit
)

2. Ponemos el Identity Insert en on


SET IDENTITY_INSERT Boveda_Auxiliar ON

3. Llenamos la tabla auxiliar con los datos insertados en la tabla original.

insert into Boveda_Auxiliar (Cod_Boveda, Cod_Sucursal,Descripcion, Cod_Cobertura,sLastUpdate_id, dtLastUpdate_dt, iConcurrency_id, FechaCreacion, Activo  ) 
select Cod_Boveda, Cod_Sucursal,Descripcion, Cod_Cobertura,sLastUpdate_id, dtLastUpdate_dt, iConcurrency_id, FechaCreacion, Activo from Boveda

5. Ponemos el Identity Insert en off

SET IDENTITY_INSERT Boveda_Auxiliar OFF

6. Eliminamos la tabla Original

drop table Boveda

7. Renombramos la tabla auxiliar con el nombre de la tabla original.

sp_rename 'Boveda_Auxiliar','Boveda'

8. Llevamos la semilla del Identity al último ID

DBCC CHECKIDENT('Boveda', RESEED, select max(Cod_Boveda) from boveda)

Fácil, no? Sí, fácil pero tedioso. No tengo idea por qué no se puede hacer este proceso como en el caso del Sql Server 2005.

HaPPy Coding! =)

Monday, October 8, 2012

Cómo descargar videos en flash .swf


Sin preámbulos ni nada, a continuación una forma fácil para que podás bajar a tu disco duro un vídeo .swf

Para empezar, debés tener el browser o navegador FireFox.

Luego, estando en la página donde se encuentra el video, dale clic derecho (no sobre el video) y selecciona la opción "Ver información de la página"

A continuación, se te desplegará una ventanita con las pestañas "General", "Medios", "Permisos" y "Seguridad". Elije "Medios" y busca el que tenga la extensión ".swf", lo seleccionas, copias y pegas en la barra de navegación de tu navegador (valga la redundancia). 

Una vez copiado el link completo, le das el famoso "Guardar como" y listo! Ya lo tienes ;)