Como obtener el ID del CPU en vb.net

Estoy protegiendo un software para lo cual necesito obtener el id único del cpu de la máquina que lo utilizará, para esto desarrollé esta pequeña función:

Solución:

Imports System.Management

Private Sub obtener_id()
Dim objMOS As ManagementObjectSearcher

Dim objMOC As Management.ManagementObjectCollection

Dim objMO As Management.ManagementObject

objMOS = New ManagementObjectSearcher(“Select * From Win32_Processor”)

objMOC = objMOS.Get

For Each objMO In objMOC

lbl_id.Text = objMO(“ProcessorID”)

Next

objMOS.Dispose()

objMOS = Nothing

objMO.Dispose()

objMO = Nothing
End Sub

Cómo darle formato a una fecha (datetime) en MySql

Al utilizar la salida de MySql para generar un reporte me topé con el problema de formatear un la data que venia de los campos tipo datetime.

La manara más fácil que encontré sin tener que utilizar funciones internas en mi programa fue utilizando la función date_format y aplicarla directamente al select que estaba ejecuntado.

Ejemplo:

La sentencia select date_format(poli_fecha_inicio, ‘%d/%m/%Y’) from polizas

debe devolverme 28/11/2009 por ejemplo

Para mas formatos visita este link

Cómo desplegar todas las tablas en MySql

En una aplicación para corredores de seguros debe verificar en cada “nueva versión” la estructura de la base de datos para que esta sea exactamente igual a la final.

Para esto utilizo la siguiente sentencia al igual que un select:

show tables

Este simple comando me permite realizar incluso consultas filtradas como

show tables where Tables_in_mibasededatos = ‘usuarios’


Cómo convertir un archivo html a PDF desde vb.net

Después de muchas horas de búsqueda logré encontrar un programa que me permitiera convertir un archivo html o un sitio web a PDF de una manera fácil, rápida y lo mejor sin costo.

Encontré una herramienta llamada wkhtmltopdf que la puedes bajar aqui.

Esta es la forma en que la implementé utilizando vb.net 2008 declaré una variable tipo system.xml.linq.xelement de la siguiente forma

Dim archivo_html = <html><body>ejemplo</body></html>

Luego salvo el archivo en la carpeta donde está corriendo la aplicación

archivo_html.Save(Application.StartupPath & “\test.html”)

Y por ultimo con un shell llama la aplicación para que haga su trabajo.

Shell(Application.StartupPath & “\wkhtmltopdf test.html test.pdf”)

El proceso es limpio y sin complicaciones.

Cual es el máximo tamaño para un campo TEXT en mysql

Después de tener problemas de espacio a utilizar una aplicación que guarda la estructura de un XML en un campo tipo TEXT usando MySql 5.0 me toco averiguar cuales eran los limites para cada uno de los campos TEXT.

TINYTEXT 256 bytes
TEXT 65,535 bytes ~64kb
MEDIUMTEXT 16,777,215 bytes ~16MB
BIGTEXT 4,294,967,295 bytes ~4GB

Espero les sea de utilidad

Como crear una función (stored function) en MySql

Estoy elaborando un programa para corredores de seguros en el cual necesitaba crear un reporte de morisidad de pagos por lo que necesitaba extraer de la base de datos los montos atrasados para 30 días, 60 días y más de 90 días.

Una de las forma de hacerlo es identificar cada póliza atrasada y llamar una función (stored function) que me devuelva el monto para cada periodo de días.

Este es el código para crear un función:

CREATE FUNCTION `saldo_30_dias`(par_poli_id INTEGER(11))
RETURNS decimal(10,2)
NOT DETERMINISTIC
SQL SECURITY DEFINER
COMMENT ”
Begin
Declare saldo decimal(10,2);
select sum(pole_monto-pole_abono) into saldo
from polizas_letras a
where a.poli_id=par_poli_id
and pole_fecha_letra>=adddate(now(), interval -30 DAY)
and pole_fecha_letra<now()
and pole_estatus=0;
return saldo;
end;

Como pueden ver la función recibe un parámetro (par_poli_id) que es el código de la póliza.

Returna un valor decimal(10,2) que utilizó en el select

Ejecuto el select y el valor obtenido es insertado en saldo, utilizando la sentencia “into” que es la única diferencia de un select regular.

Como obtener el valor de un combobox en un gridview en Asp.Net

Dandole seguimiento al post “como agregar un combo box a un gridview” les voy a mostrar como leer el valor seleccionado en el combobox.

Para esto utilizo un pequeño truco que consiste en agregar un botón tipo delete con el cual voy a acceder el indice de la línea del gridview que estoy tratando de leer.

Utilizando esta pequeña funcion podremos tener acceso al valor del combobox.

Protected Sub sacar_valor_combobox(ByVal sender As Object, ByVal e As GridViewDeleteEventArgs) _
Handles drg_queue.RowDeleting
Dim id As String
id = drg_queue.Rows(e.RowIndex.ToString).Cells(0).Text

Dim ddl As DropDownList = drg_queue.Rows(e.RowIndex.ToString).Cells(6).FindControl(“cmb_agentes_asignar”)

lbl_valor_combo.Text = ddl.SelectedValue.ToString

End Sub

Cómo usar internet en un simulador de BlackBerry

Desarrollando una aplicacion, básicamente un weblauncher, para BlackBerry, que lo único que tenía que hacer era llamar a una dirección web que tenia una aplicación. Todo iba bien hasta que quize probarla en un simulador (8900 para ser exactos) y me encontré con la sorpresa que no conectaba a internet, ni siquiera abría google, e investigando encontré la solución.

Les explico brevemente de que trata, los teléfonos BlackBerry usan un protocolo llamado MDS (Movil Data Service) y las pc’s TCP/IP lo que significa que BlackBerry no entiende TCP, pero RIM, fabricante de BlackBerry, pensó en todo y creo algo que se llama “BlackBerry Email and MDS Services Simulators” que convierte conexiones de MDS a TCP y viceversa.

Suponiendo que ya tienes el simulador instalado en tu máquina, lo primero que hay que hacer es descargar tu BlackBerry Email and MDS Services Simulators de aquí. Despues de instalarlo vas a buscar en “C:\Archivos de Programa\Research in Motion\BlackBerry Email and MDS Services Simulators” una carpeta llamada MDS y dentro de esta carpeta vas a ejecutar algo que se llama run o run.bat. Despúes solamente tienes que abrir tu simulador y voilá ya podrás usar internet desde tu simulador de BlackBerry.

–>Descargar Simuladores<—

Simulador de BlackBerry

Simulador de BlackBerry

Enviar correo gmail desde vb.net

En muchas ocasiones no queremos utilizar nuestro servidor para enviar correos por lo que recurrimos a nuestro viejo amigo google.

He aqui como enviar un correo utilizando una cuenta de gmail:

Solución:

Imports System.Net.Mail ‘referencia

Public Sub enviar_mail(ByVal i_de As String, ByVal i_para As String, ByVal asunto As String, ByVal mensaje As String)

Dim insMail As New MailMessage(New MailAddress(i_de), New MailAddress(i_para))
With insMail

.Subject = asunto
.IsBodyHtml = True ‘envia el mensaje como html
.Body = mensaje
.From = New MailAddress(i_de)
.ReplyTo = New MailAddress(i_de)

End With
Dim smtp As New System.Net.Mail.SmtpClient
smtp.Host = “smtp.gmail.com”
smtp.Port = 587
smtp.EnableSsl = True
smtp.UseDefaultCredentials = False
smtp.Credentials = New System.Net.NetworkCredential(“cuentagmail”, “contraseñagmail”)

smtp.Send(insMail)

End Sub

Como devolver 0 si sum() es null

En algunas ocasiones me a tocado realizar calcualos utilizando el sum() de una consulta o query a la base de datos.
El problema surge cuando este sum() no tiene registros y me devuelve NULL como valor. Aqui es donde entra COALESCE que funciona parecido a un case con el que puedo asignar 0 en el caso que la consulta me devuelva NULL

Ejemplo:

select COALESCE(sum(pode_monto),0) from polizas_descuentos

De no encontrar ningún registra obtendré 0 en lugar de NULL

qsql = “select pole_id, pole_fecha_letra ‘Fecha de pago’, pole_monto Monto, ”
qsql = qsql & ” pole_abono Abono, pole_recibo ‘Recibo Cassa’, ”
qsql = qsql & ” pole_recibo_aseguradora ‘Recibo Aseguradora’, pole_estatus ‘Est.’, ”
qsql = qsql & ” pole_comentario ‘Comentario’, popa_id, poli_id”
qsql = qsql & ” from polizas_letras where poli_id=’” & npoliza & “‘”