domingo, julio 29, 2007

Firebird Stored Procedures

Trabajando con los procedimientos almacenados de firebird. Algo interesante es la posibilidad de tener columnas con acumulados en los procedimientos, algo que no es facil de lograr con MS SQL Server (a menos que se usen tablas temporables o variables de tipo tabla). Y la posibilidad de ejecutar procedimientos por cada registro.

Este es un ejemplo de un procedimiento que regresa un dataset con los movimientos de una cuenta, mostrando el saldo en cada registro.

CREATE PROCEDURE EDO_CTA(DESDE DATE)
RETURNS(
FECHA DATE,
CONCEPTO VARCHAR(50),
ENTRADA DECIMAL(15, 2),
SALIDA DECIMAL(15, 2)
SALDO DECIMAL(15, 2)
)
AS
BEGIN
--Obtenemos el saldo inicial
EXECUTE PROCEDURE GET_SALDO_INICIAL(:DESDE)
RETURNING_VALUES :SALDO;

FOR SELECT
FECHA, CONCEPTO, ENTRADA, SALIDA
FROM
MOVIMIENTOS_CUENTA
WHERE
FECHA > :DESDE
INTO
:FECHA, :CONCEPTO, :ENTRADA, :SALIDA
DO BEGIN
SALDO = SALDO + ENTRADA - SALIDA;
SUSPEND;
END
END;


Esto ira calculando el saldo por cada registro.

jueves, junio 21, 2007

¿Por que Firebird?

En el proyecto que estoy trabajando estamos migrando de base a datos desde MySQL hacia Firebird. El problema con MySQL fue que aunque es gratis, no puede ser redistribuido a menos que se pague por cada redistribucion, ademas de que las versiones con las que trabajamos no soportaban llaves foraneas ni procedimientos almecenados.

Otro motor de base de datos que consideramos fue MS SQL Server 2005. Este tiene la ventaja de que lo conocemos bien por haberlo utilizado en la mayoria de los proyectos, pero el problema es el costo de las licencias -En realidad el problema no es el costo de la licencia sino el presupuesto para el proyecto :( - Pensamos entonces en la version Express, pero no cuenta con todas las ventajas de la version completa.

Entonces fue que pensamos en Firebird, que es un motor de base de datos en mi opinion mas completo que MySQL y comparable con MS SQL Server (para aplicaciones medianas), puede ser redistribuido sin restrincciones y el deployment de firebird es mas sencillo que el de MS SQL Server.

He aqui una tabla con comparaciones entre MS SQL Server Express y la version embeded de Firebird.

Estas son algunas de las razones por las que eleigimos Firebird.

sábado, mayo 19, 2007

De C++Builder a Delphi

Estoy trabajando en un proyecto en Delphi y he tenido la oportunidad de aprender mas del IDE y del lenguaje (Object Pascal). Ya conocia la VCL, por que he trabajado en C++ Builder.

Este proyecto me decidí por delphi, ya que al trabajar en C++ Builder siempre me senti como usuario de segunda comparado con el usuarios de Delphi a los que Borland y ahora CodeGear se enfocan mas, ademas de que solo estaba utilizando la VCL y no estaba aprovechando el potencial de c++ ni la facilidad de Delphi.

El lenguaje lo he encontrado muy parecido a C# (no en la sintaxis sino en los conceptos que maneja) se nota que tienen a Anders Hejlsberg en comun. Asi que casi solo tengo que enfocarme en el cambio de sintaxis lo cual no es gran problema.

Lo ventaja es que ahora disfruto de todas los avances que tiene el IDE el cual siempre tiene las mejoras primero para delphi que para C++ Builder.

jueves, febrero 01, 2007

Database Mail en MS SQL Server 2005

Configuración de Database Mail en MS SQL Server 2005

Primero se debe de habilitar, ya que por omisión el componente esta deshabilitado, Utilizando el SSMS (SQL Server Management Studio)


Si no esta habilitado aparecerá un mensaje preguntado si lo habilita, después aparece esta ventana donde se pregunta al usuario que es lo desea hacer.


Seleccionamos la primera opción para crear un perfil.


Configuramos el perfil y le agregamos por lo menos una cuenta.


Seleccionamos el perfil como public y default.


Para mandar correo se utiliza el procedimiento msdb.sp_send_dbmail por lo tanto el usuario que intente mandar correo debe de tener permiso para la base de datos msdb.

Referencias:
http://www.sqlservercentral.com/columnists/cBunch/introtodatabasemailinsql2005.asp

miércoles, enero 31, 2007

Cosas que aprendi en Coca-Cola

El viernes 2 de febrero es mi último dia como empleado de "Servicios ejecutivos del Noroeste". Gracias a todos por el apoyo que me dieron. Esta es una lista de algunas de las cosa que aprendi trabajando para Sistemas en Cdf (Coca-Cola).
  • El que te llames igual que tu superior no significa que lo puedas llamar tocayo
  • el signo "¿" se pronuncia "Pregunta".
  • La palabra "interface" o "interfase" no existe (la que existe es interfaz), pero si se usa.
  • El que haya muchos jefes no significa que exista gente a su cargo (algunos son jefes de ellos mismos solamente)
  • Solo los chilangos tienen oficina
  • El vino tinto es bueno para romper el hielo
  • Pagar derecho de piso es un mito

Estas son solo algunas, espero despues completar la lista.