viernes, 29 de mayo de 2009

Google Chrome 2

Ha sido lanzada la nueva versión del navegador de Google,  Chrome 2 disponible de momento solo para sistemas Windows. En su Blog podemos leer que han introducido numerosas mejoras como el modo a pantalla completa pulsando F11, la gestión de las miniaturas en la pestaña inicial, autorelleno en los formularios, ha aumentado la estabilidad reparando más de 300 bugs que causaban cuelgues y ha aumentado la velocidad, en lo que dicen que es su principal enfoque, gracias a una nueva versión  de WebKit con una actualización de su motor de JavaScript.

Sois ya un 5% los que entráis con Chrome a este Blog, desde Google nos informan que en breve se actualizara este navegador para los usuarios, si no lo utilizas puedes descargartelo desde aquí . 

Os animo que lo probéis, a mi en particular me gusta mucho, lo único que no lo utilizo es para descargar, creo que su gestor de descarga no es óptimo, espero que con esta versión lo mejoren, ya os contare.

lunes, 18 de mayo de 2009

Comparacion fechas Javascript

Para el que se pelee con las fechas en Javascript.
Os dejo una función que hice hace poco, trasforma en objeto la cadena de una fecha obtenida de un formulario y la compara con la fecha del sistema.

//script
function fechas(){
var fc = document.getElementById("fcadu").value.split("/");
var fcadu = new Date(parseInt(fc[2]),parseInt(fc[1]-1),parseInt(fc[0]));
var hoy = new Date();
var fechamincadu = new Date(hoy.getFullYear(), (hoy.getMonth()+1), hoy.getDate());
alert("fecha de minima: "+ fechamincadu.getFullYear()+"/"+(fechamincadu.getMonth())+"/"+fechamincadu.getDate()+" - "+
"fecha cadu: "+fcadu.getFullYear()+"/"+fcadu.getMonth()+"/"+fcadu.getDate());
if (document.getElementById("fcadu").value != "" && fcadu <>
alert("fecha caducidad no superior a la minima");
return false;
}
return true;
}

martes, 12 de mayo de 2009

Comparación de nulos en PL/SQL, función NVL

Cuando tenemos variables o parámetros que pueden valer nulo y los comparamos pueden producir resultados que no esperamos, por ejemplo:

declare
   v_variable1 varchar2(20):=null;
   v_variable2 varchar2(20):=null;
begin
   if v_variable1 = v_variable2 then
         --salida estandar de texto
         dbms.output.put_line('Bien');
   else 
         dbms.output.put_line('Mal');
   end if;
end;

ó tenemos

declare
   v_variable1 varchar2(20):=null;
   v_variable2 varchar2(20):='hola';
begin
   if v_variable1 <> v_variable2 then
         --salida estandar de texto
         dbms.output.put_line('Bien');
   else 
         dbms.output.put_line('Mal');
   end if;
end;

Fijaros que en segundo caso se ha cambiado el valor de la v_variable2 y el operador igual "=" por distinto "<>".
En ambos casos saldrá por la salida estándar el mensaje "Mal" esto es debido a que la comparación que contenga nulos siempre devuelve NULL y siempre se ejecutara la sentencia del "else".
Para arreglar esto podemos utilizar la función NVL, que teneis su sintaxis en la entrada de funciones integradas.

Para el ultimo caso:

declare
   v_variable1 varchar2(20):=null;
   v_variable2 varchar2(20):='hola';
begin
   if NVL(v_variable1,' ') <> NVL(v_variable2 then,' ')
         --salida estandar de texto
         dbms.output.put_line('Bien');
   else 
         dbms.output.put_line('Mal');
   end if;
end;

Ahora si que se ejecutara la sentencia del IF. El primer caso se soluciona de la misma forma.