Archivo

Archive for 27 enero 2010

Remover la hora en una variable DateTime usando SQL SERVER

enero 27, 2010 4 comentarios


Aveces utilizamos variables DateTime y guardamos fecha y hora, por ejemplo en una tabla de LOG, pero el problema es que luego deseamos realizar un filtro solo por la fecha y tendremos problemas les podre un ejemplo:
Registro1 01/01/2010 01:01:12
Registro2 02/01/2010 12:50


Si quiero realizar un filtro que devuelva todos los registros del 2 de diciembre al 2 de enero seria asi:

SELECT Registro FROM Registros 
WHERE Fecha BETWEEN ‘02/12/2009’ AND ‘02/01/2010’ 


Solo me traerá el registro uno, ya que al tomar la hora toma la Fecha de registro2 con una fecha mayor a la ingresada en el filtro .
La solución es realizar una doble conversión primero a Varchar y luego a DateTime

SELECT Registro
FROM Registros 
WHERE CONVERT(DateTime,CONVERT(varchar, Fecha , 101),103)
BETWEEN ‘02/12/2009’ AND ‘02/01/2010’ 


De esta manera pueden quitar la hora, tanto para comprar como para algún dato que entre como parámetro algún procedimiento almacenado o función. pueden jugar con el formato de la conversion si quieren otro tipo de resultados.
Espero que a todos les sirva, si les sirve me cuentan :).

Anuncios

Utilizar % y _ en una sentencia LIKE con SQL SERVER

enero 27, 2010 4 comentarios


Bueno cuando utilizamos la clausula LIKE para realizar búsquedas en una base de datos no podemos usar campantemente los caracteres ‘%’ y ‘_’ esto se complica un poco ya que los utilizamos generalmente como parámetros para configurar nuestra búsqueda.
Quiero dejarles una pequeña solución, ejemplo:

SELECT Nombre FROM Usuario Where  Nombre LIKE '%' + @VALOR + ‘%’


Si usamos este SELECT, indicamos que queremos todos los nombres de usuarios que empiecen o terminen por el @VALOR, si @VALOR llega con un ‘%’ o un ‘_’ este devolverá todos los registros lo cual sería un problema de seguridad y además una falla lógica del software.
Pues bueno lo que debemos hacer es usar la clausula ESCAPE para cuando se ingrese un ‘%’ o un ‘_’ , de la siguiente manera:

SELECT  Nombre  FROM  Usuario
WHERE Nombre LIKE '%\' + @ VALOR + '%' ESCAPE '\' OR
 Nombre LIKE '%_' + @ VALOR + '_%' ESCAPE '_'


Espero les sirva a todos, dejen el comentario si les sirvió. 🙂


Agradecimientos a: Camilo jaramillo

¿Cual es mi lenguaje de programación favorito?

enero 18, 2010 6 comentarios


Hace algunos años era difícil hablar de escoger un lenguaje de programación favorito por que había poco de donde escoger pero hoy en día hay de todo y para todos los gusto, este espacio es para invitarlos a discutir sobre cuál es el lenguaje de programación favorito entre tantos desarrolladores que somos .
Si en la encuesta no aparece su lenguaje puede colocarlo como comentario, espero que todos participen por mi cuenta les digo que mi favorito es C++ aunque sé que para ciertas aplicaciones ya no es conveniente usarlo por eso pues si no lo puedo usar preferiría usar alguno de sus 2 hijos C# o Java.
Saludes a todos y no olviden dejar su comentario.


Enviar correo desde Visual Basic .Net – Usando System.Net.Mail.MailMessage

enero 14, 2010 70 comentarios

En .Net existen muchas clases que nos facilitan la vida y nos permiten hacer código más legible, de igual manera pasa con el envió de correo.
Para poder utilizar el envió de correo con .Net necesitamos utilizar los siguientes namespace:

-	System.Net.Mail
-	System.Net

En el siguiente ejemplo quiero mostrarles una pequeña aplicación de escritorio en donde aplico un sistema básico de envió de correo:

Básicamente la interfaz nos permite ingresar los valores básicos para enviar un correo
– Servidor SMTP – Servidor de donde se enviara el correo
– Puerto – Puerto por el cual se conectara al servidor
– Usuario — Usuario para conectarse al servidor SMTP
– Contraseña — Contraseña para conectarse al servidor SMTP
– Para – A quien se le enviara el correo
– Asunto – El asunto del correo
– Contenido: Lo que llevara el correo
Bueno básicamente lo que hacemos es crear un método para hacer un poco más ordenados, capturamos en una variable cada uno de los valores ingresados a la aplicación:

Dim SMTP As String = txtSMTP.Text
Dim Usuario As String = txtUsuario.Text
Dim Contraseña As String = txtContraseña.Text
Dim A As String = txtA.Text
Dim Contenido As String = txtContenido.Text
Dim Asunto As String = txtAsunto.Text
Dim Puerto As Integer = Integer.Parse(txtPuerto.Text)

En el resto de la aplicacion trabajaremos con estas variables, bueno ahora lo que ahcemos es simplemente preparar el correo creando un objeto tipo Mail y un objeto tipo Address para colocarle al correo de quine va remitido de esta manera:

'Declaro la variable para enviar el correo
Dim correo As New System.Net.Mail.MailMessage()
correo.From = New System.Net.Mail.MailAddress(Usuario)
correo.Subject = Asunto
correo.To.Add(A)
correo.Body = Contenido

Luego en el mismo método realizamos la configuración del servidor para ello utilizaremos una credencial para conectarnos al servidor para el caso de .Net es NetworkCredential y para configurar el servidor SmtpClient, de la siguiente manera:

'Configuracion del servidor
Dim Servidor As New System.Net.Mail.SmtpClient
Servidor.Host = SMTP
Servidor.Port = Puerto
Servidor.EnableSsl = True
Servidor.Credentials = New System.Net.NetworkCredential(Usuario, Contraseña)
Servidor.Send(correo)

Por ultimo podemos agregar un mensaje de confirmacion al usuario:

MessageBox.Show("Correo enviado!", "Correo", MessageBoxButtons.OK, MessageBoxIcon.Information)

Como ven es muy fácil y además algo muy usado es casi necesario en las aplicaciones empresariales realizar este proceso espero le sirva y a todos gracias por estar al tanto del blog.

Les dejo las fuentes:

Codigo fuente Enviar correo

Feliz año 2010 – Mteheran (Miguel Teheran)

Les deseo a todos los lectores y seguidores de mi blog un feliz año 2010 que todas sus metas se cumplan y que por favor siempre diseñen sus metas pensando social y ecológicamente recuerden que de nuestros actos depende el bienestar de todo lo que nos rodea.
De paso les doy las gracias por el apoyo que me han brindado los comentarios que han realizado, los cuales me han permitido mejorar y me han dado satisfacción porque siento que mi objetivo es cumplido.

FELIZ AÑO .