Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

viernes, 1 de agosto de 2014

JSSQL: Un motor de base de datos en javascript

ES un proyecto interesante llamado JSSQL. JSSQL es un motor de base de datos escrito en Javascript, el cual podemos ejecutar consutlas SQL desde nuestras páginas web. Sin necesidad de estar conectado a algún servidor.

JSSQL es un proyecto de Joaquín Becerra de la Universidad de Buenos Aires. Podéis encontrar más información en:

http://javascriptsql.sourceforge.net/ARCH/index.html

Pero vamos a ponernos manos a la obra...

Lo primero de todo es cargar la librería Javascript que implementa el motor de base de datos. Esta librería es JSSQL.js.




Una vez cargada la librería instanciaremos el objeto principal llamado JSSQL.


var myJSSQL= new JSSQL();


A partir del objeto JSSQL abriremos la base de datos a utilizar mediante el método open.


if (!myJSSQL.Open('mibasededatos')) {
  alert(myJSSQL.GetError()); //si falla que nos avise
}


Si falla la apertura de la base de datos, devolvemos el error del motor de la base de datos. Este error está accesible vía el método .GetError().

En el código vemos que abrimos una base de datos que se llama "mibasededatos". Pero ¿Dónde está la base de datos?

Las bases de datos están definidas en ficheros .jsdb bajo una estructura de directorios:

/bases/nombreBD/nombreBD.jsbd
El fichero JSDB tiene la siguiente estructura:


_bd={
  "paises":{
    "IdPais":"numeric",
    "Pais":"string",
  }
};
_bd_ind={
   'paises':[false,false]
};
_bd_pag={
   'paises':0
};


Vemos que contiene la definición mediante arrays de las bases de datos que contiene. A su vez, cada una de las tablas, tiene su fichero JSBD con el contenido. Por ejemplo la tabla de países tendría el siguiente contenido:


_aux['paises']=Array();
_aux['paises']=[
[1,"Noruega"],
[2,"Portugal"],
[3,"Francia"],
[4,"Italia"],
[5,"UK"]
];


JSSQL nos ofrece una herramienta de conversión desde las bases de datos hacía JSDB. Puedes acceder a ella desde:

http://javascriptsql.sourceforge.net/ARCH/JSBD/ConversorBD.php

Una vez que hemos visto como se definen las bases de datos pasamos a ejecutar la consulta mediante el método .Query(). La consulta una SELECT sencilla de paises.


sql="select Pais from paises" ; 
res=myJSSQL.Query(sql);


El resultado nos lo deja en un array, el cual recorremos de forma sencilla:


for (x=0;x");


La verdad es que JSSQL realiza un enfoque muy interesante sobre la necesidad de tener una BD en local. Algo que ya no parece estar muy lejos gracias a HTML5.

Fuente: http://godmurdoc.diosdelared.com/?coment=12577

martes, 20 de mayo de 2014

Verificar que las fechas de los programadores de tareas son correctas.

Buenas tardes.

Me encontraba verificando un programador de tareas cuando me encontré con la duda de "Si estará calculando correctamente la fecha futura?", es un interrogante que muchas veces nos suele pasar y mas cuando el cálculos de las fechas se vean afectadas por otros factores como las zonas horarias.

El problema actual era verificar que el software calculara correctamente a partir de unos días y horas que le ingresara el usuario para este con esta fecha calculara realizara la acción configurada.

Me di a la tarea de buscar algo similar para ahorrar tiempo de codificación pero no resulto, así que procedí a realizar el código para la verificación:

AbrirCode:
            int dias = Convert.ToInt16(textBox1.Text);
            int horas =  Convert.ToInt16(textBox2.Text);
            int minutos = Convert.ToInt16(textBox3.Text);
            DateTime respuesta = DateTime.Now.AddDays(dias).AddHours(horas).AddMinutes(minutos);
            textBox2.Text = Convert.ToString(respuesta);
CierraCode

Lo que hago es realizar el calculo a partir de la fecha actual suman días horas y minutos para tener la fecha final y comparar con el software auditado.

Espero sea de ayuda para cuando necesiten realizar algo similar.

Saludos jadcodianos.

Links de ayuda:

http://msdn.microsoft.com/es-es/library/system.datetime.now%28v=vs.110%29.aspx