viernes, 12 de noviembre de 2010

Desarrollador 5 Estrellas - 4ta Estrella Cardspace

Hola amigo, para aquellos que están dando las pruebas de la certificación desarrollador 5 estrellas, y van por la 4ta en este momento, aqui les dejo el link de la prueba correspondiente a Cardspace, yo me base en esta y obtuve el 80%. http://ring0a.blogspot.com/2010/09/desarrollador-cinco-estrellas-4-1.html, en un proximo post les publicaré las respuestas.


Espero les sirva
Saludos.

miércoles, 10 de noviembre de 2010

Balsamiq Mockups:Creación de bosquejos sobre interfaces gráficas

Hola amigos, saben que hace unos meses atras necesitaba un software que me permitiera realizar bosquejos sobre interfaces gráficas de paginas web o de aplicaciones de escritorio que en mi trabajo me toca desarrollar.
Y por ahi encontré esta herramienta llamada Balsamiq Mockups
Bueno para poder instalar el programa (que es muy liviano) tenés que instalar el programa de Adobe Air. Está todo comprimido en el archivo Megaupload. Obviamente no es gratuito pero después de tanto buscar consegui el serial para que todos los T! lo puedan utilizar ilimitadamente...

http://www.megaupload.com/?d=142MQMNA

Organization name: leexij@gmail.com
Serial Key: eNrzzU/OLi0odswsqslJTa3IzHJIz03MzNFLzs+tMTQyNrcwsTQyAIEa5xpDAIFxDy8=


viernes, 5 de noviembre de 2010

BEGIN TRAN, COMMIT, ROLLBACK & GOTO

En muchas ocaciones tenemos que llevar un control sobre las transacciones que se realizan en la base de datos. Y TRAN nos permite poder ejecutar nuestras instrucciones SQL como una unica instrucción, donde todas fracasan o todas tienen exito y se completan.

Si alguna de las operaciones de una transacción falla hay que deshacer la transacción en su totalidad para volver al estado inicial en el que estaba la base de datos antes de empezar. Esto se consigue con la sentencia ‘ROLLBACK TRAN’.

Si todas las operaciones de una transacción se completan con éxito hay que marcar el fin de una transacción para que la base de datos vuelva a estar en un estado consistente con la sentencia ‘COMMIT TRAN’.

Otra sentencia muy útil es GOTO, el cual nos permite ejecutar un camino alternativo de existir un error o una condición no cumplida, en SQL Server 2005 existe una nueva funcion de TRY y CATCH (el cual trataremos en otro Post).

Bueno aqui les muestro un ejemplo de como utilizarla en SQL Server (en mi caso SQL Server 2000).

ALTER PROCEDURE [DBO].[SP_Biotoscana_PreAviso]
@ACCION INT = 0,
@ERRORID INT OUTPUT,
@MSGReturn INT OUTPUT,
---------------------------------------------------------
@IDLINEA CHAR(5) = '1',
@IDPROD CHAR(30) ='',
@DESTINO CHAR(10) = '',
@LOTE CHAR(25) = '',
@FECVENC SMALLDATETIME = NULL,
@NUMOC CHAR(10) = '',
@NUMIMP CHAR(10) = '',
@PAIS CHAR(3) = '',
@CANTIDAD FLOAT = 0,
@UNIDAD CHAR(10) = '',
@PRECUNIT FLOAT = 0,
@MONEDA CHAR(4) = '',
---------------------------------------------------------
@NUMREF CHAR(15) = '',
@TIPOCOMPRA VARCHAR(15) = '',
@RUTPROV VARCHAR(100) = ''
AS
BEGIN
DECLARE @CORR CHAR(10)
SET @CORR = ''

IF @ACCION = 1
BEGIN
BEGIN TRAN

SET @CORR = (SELECT Lastbatnbr7+1 from SETUPWEB)
SET @MSGReturn = CAST((SELECT Lastbatnbr7+1 from SETUPWEB) AS INT)

update SETUPWEB set Lastbatnbr7= @CORR

INSERT INTO PRE_WEBHEADER (
CodLab,Corr, Crtd_DateTime, Crtd_Prog, Crtd_User,
Lupd_DateTime,Lupd_Prog,Lupd_User,NoteId,
RefLab,Status,TranType,VendId
) VALUES (
'49', @CORR,GETDATE(),'INTZ', 'NFS',
GETDATE(),'INTZ', 'NFS', 0,
@NUMREF, 'H',@TIPOCOMPRA,@RUTPROV
)

INSERT INTO PRE_WEBLINE
(
Corr,Crtd_DateTime,Crtd_Prog, Crtd_User,
CuryId,ExpDate,InvtId, LineRef,
LotSerNbr, Lupd_DateTime, Lupd_Prog,Lupd_User,
OrdNbr,OpenLine,Pais,QtyOrig,RefNbr,SiteId,
ShipperId,Status_Muestreo,TranDate,Unid,UnitPrice, QtyRcvd
)
VALUES
(
@CORR, GETDATE(), 'INTZ', 'NFS',
@MONEDA,@FECVENC,@IDPROD,@IDLINEA,
@LOTE,GETDATE(), 'INTZ', 'NFS',
@NUMOC, 'A', @PAIS,@CANTIDAD,@NUMREF, @DESTINO,
@NUMIMP,0, GETDATE(), @UNIDAD,@PRECUNIT, 0
)

SELECT @ERRORID = @@ERROR
IF (@ERRORID <> 0) GOTO PROBLEM
COMMIT TRAN

PROBLEM:
IF (@ERRORID <> 0) BEGIN
ROLLBACK TRAN
END
END
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

Espero que sea de ayuda. Saludos.

jueves, 4 de noviembre de 2010

Enviar Email con C# (C Sharp)

Hola amigos! Aqui publico el código que utilizé hace unos días para poder enviar e-mail desde mi aplicacion en C#.

Lo primero, tenemo

s que hacer la llamada a la librería:



using System.Net.Mail;

Una vez hecho esto, nos creamos el objeto que enviara el mail:


MailMessage objMail;

Ahora empezamos a rellenar los datos necesarios. Vamos a incorporar un destinatario del correo, la dirección desde la que se envía, un email en copia, otro en copia oculta y un fichero adjunto:


//'Creamos el objeto del correo
objMail = new MailMessage();
objMail.From = new MailAddress("direccion@origen.com");
//Remitente

objMail.To.Add("direccion@destino.com");
//Email a enviar
objMail.CC.Add("copia@destino.com");
//Email a enviar copia
objMail.Bcc.Add("oculto@destino.com");
//Email a enviar oculto

Indicamos un asunto:


objMail.Subject = "Asunto";

Y añadimos el contenido:


objMail.Body = "contenido";

Aquí podemos indicar si debe mantener un formato de HTML o no:


objMail.IsBodyHtml = true; //Formato Html del email

Le añadimos un adjunto


objMail.Attachments.Add(new Attachment(Adjunto));

OJO: tiene que ser la ruta absoluta del fichero, no la relativa.

Ahora que tenemos el contenido del mensaje, establecemos los datos del servidor de correo:


SmtpClient SmtpMail = new SmtpClient();
SmtpMail.Host = Servidor;
//el nombre del servidor de correo
SmtpMail.Port = Puerto;
//asignamos el numero de puerto

Añadimos las credenciales si hace falta:


SmtpMail.Credentials = 
new
System.Net.NetworkCredential(Usuario, Clave);

Y ya solo nos queda enviar el e-mail:


SmtpMail.Send(objMail); //Enviamos el correo

Y con eso estamos listos!!! espero les sirva.

Saludos.

Leer XML con Linq y C#

Ayer me encontre con la situación de leer la siguiente estructura de xml enviado por uno de nuestros clientes. Este XML debe ser cargado en nuestra Base de Datos SQL Server. Me topé con el problema de como recorrer el detalle de los artículos ya que cada artículo puede estar compuesto de uno a varios lotes. (ver figura).


Y encontre la solución con este fragmento de código:

Formatear Números en SQL Server

Una duda que suele tener la gente es como formatear los datos numéricos en SQL Server. A veces tenemos la necesidad de formatear números completando con ceros hasta un número determinado de posiciones. El siguiente script nos muestra la forma más eficiente de conseguir este resultado:

y el resultado de la operacion será: 0000002002