En BTemplates están haciendo una recopilación de plantillas para blogger, ya llevan unos cuantos..Seguro que hay muchas plantillas útiles..

Autor : david           No hay Comentarios

Nueva funcionalidad del blog:anotaciones. Son pequeñas dosis de información de rápida redacción que ire poniedo día a día y que de otra forma no tendrían cabida.

Autor : david           No hay Comentarios

Control de flujo en procedimientos almacenados para MySQL 5

BBDD

18 de Marzo del 2008

Seguimos con los procedimientos almacenados. Vamos a ver como llevar a cabo el control de flujo de nuestro procedimiento. También es interesante observar el uso de las variables dentro de los procedimientos. Si se declara una variable dentro de un procedimiento mediante el código :

  1.        declare miVar int;
  2.  

Esta tendrá un ámbito local y cuando se acabe el procedimiento no podrá ser accedida. Una vez la variable es declarada, para cambiar su valor usaremos la sentencia SET de este modo :

  1.        SET miVar = 56 ;
  2.  

Para poder acceder a una variable a la finalización de un procedimiento se tiene que usar parámetros de salida.

Vamos a ver unos ejemplos para comprobar lo sencillo que es :

IF THEN ELSE

  1.  
  2. delimiter //
  3. CREATE procedure miProc(IN p1 int)     /* Parámetro de entrada */
  4.     begin
  5.         declare miVar int;        /* se declara variable local */
  6.         SET miVar = p1 +1 ;        /* se establece la variable */
  7.         IF miVar = 12 then
  8.             INSERT INTO lista VALUES(55555);
  9.         else
  10. INSERT INTO lista VALUES(7665);
  11.         end IF;
  12.     end;
  13. //
  14.  

SWITCH

  1.  
  2. delimiter //
  3. CREATE procedure miProc (IN p1 int)
  4.     begin
  5.         declare var int ;
  6.         SET var = p1 +2 ;
  7.         case var
  8.             when 2 then INSERT INTO lista VALUES (66666);
  9.             when 3 then INSERT INTO lista VALUES (4545665);
  10.             else INSERT INTO lista VALUES (77777777);
  11.         end case;
  12.     end;
  13. //
  14.  

Creo que no hacen falta explicaciones.

COMPARACIÓN DE CADENAS

  1.  
  2. delimiter //
  3. CREATE procedure compara(IN cadena varchar(25), IN cadena2 varchar(25))
  4.     begin
  5.         IF strcmp(cadena, cadena2) = 0 then
  6.             SELECT "son iguales!";
  7.         else
  8.             SELECT "son diferentes!!";
  9.         end IF;
  10.     end;
  11. //
  12.  

La función strcmp devuelve 0 si las cadenas son iguales, si no devuelve 0 es que son diferentes.

USO DE WHILE

  1.  
  2. delimiter //
  3. CREATE procedure p14()
  4.     begin
  5.         declare v int;
  6.         SET v = 0;
  7.         while v < 5 do
  8.             INSERT INTO lista VALUES (v);
  9.             SET v = v +1 ;
  10.         end while;
  11.     end;
  12. //
  13.  

Un while de toda la vida.

USO DEL REPEAT

  1.  
  2. delimiter //
  3. CREATE procedure p15()
  4.     begin
  5.         declare v int;
  6.         SET v = 20;
  7.         repeat
  8.             INSERT INTO lista VALUES(v);
  9.             SET v = v + 1;
  10.         until v >= 1
  11.         end repeat;
  12.     end;
  13. //
  14.  

El repeat es similar a un “do while” de toda la vida.

LOOP LABEL

  1.  
  2. delimiter //
  3. CREATE procedure p16()
  4.     begin
  5.         declare v int;
  6.         SET v = 0;
  7.         loop_label : loop
  8.             INSERT INTO lista VALUES (v);
  9.             SET v = v + 1;
  10.             IF v >= 5 then
  11.             leave loop_label;
  12.             end IF;
  13.         end loop;
  14.     end;
  15. //
  16.  

Este es otro tipo de loop, la verdad es que teniendo los anteriores no se me ocurre aplicación para usar este tipo de loop, pero es bueno saber que existe por si algún día te encuentras algún procedimiento muy antiguo que lo use. El código que haya entre loop_label : loop y end loop; se ejecutara hasta que se encuentre la sentencia leave loop_label; que hemos puesto en la condición, por lo tanto el loop se repetirá hasta que la variable v sea >= que 5.

El loop puede tomar cualquier nombre, es decir puede llamarse miLoop: loop, en cuyo caso se repetirá hasta que se ejecute la sentencia leave miLoop.

Con esto ya podemos empezar a crear procedimientos medianamente complejos y útiles.


Procedimientos almacenados con MySQL 5

BBDD

17 de Marzo del 2008

Hoy, mientras leía mensajes del correo antiguo rescaté unos apuntes de un curso de programación que hice el pasado verano. Los apuntes eran de MySQL 5, más específicamente de cómo hacer procedimientos almacenados , triggers , handlers, funciones y toda esa parafernalia que MySQL implementa en su versión 5.

MySQL ha sido siempre un motor de bases de datos muy rápido y muy utilizado para proyectos open source de código abierto, sobre todo para proyectos web dada su gran velocidad. Pero también a sido muy criticado por la falta de características avanzadas que otros Sistemas Gestores de Bases de Datos , como Oracle, SQLServer de Microsoft o PostgreSQL si tenían. Estas características avanzadas son sobre todo los procedimientos almacenados, triggers, transacciones y demás cosas.

MySQL, que ahora forma parte de Sun, se puso las pilas y en su versión 5 implementó muchas de estas características, dejando un SGBD muy rápido y además muy bien preparado para implementar bases de datos realmente grandes y mantenibles.

Pero, ¿qué es realmente un procedimiento almacenado? Pues es un programa que se almacena físicamente en una tabla dentro del sistema de bases de datos. Este programa esta hecho con un lenguaje propio de cada Gestor de BD y esta compilado, por lo que la velocidad de ejecución será muy rápida.

Lee el resto de esta entrada »


Como hacer un backup de un sitio web en Joomla!

Joomla

15 de Marzo del 2008

Voy a explicar la forma en que hago backups de sitios web hechos con Joomla!.

Para ello no uso ningún componente externo ni nada por el estilo y aunque es posible que exista alguno que facilite la tarea , la verdad que no es nada complicado hacerlo manualmente.

Si quieres hacer los backups diariamente o automatizarlo, entonces si es recomendable buscar algún componente o script que lo haga.

Hacer el backup

Yo lo hago de la siguiente forma:

  • Primero haz un backup de la base de datos.
  • Entra al phpMyAdmin y selecciona la base de datos del sitio
  • Selecciona la opcion exportar :

  • Marca las casillas de la imagen :

  • Y presiona continuar para que se descargue el fichero sql que contiene la base de datos.

Después ves a la carpeta donde está instalado tu sitio web accediendo por ftp , ssh o como quieras…

  • Bájate todo el sitio a tu disco local.
  • Una vez bajado a tu disco local, comprime la carpeta de instalación en un zip.
  • Ahora coge el zip que acabas de crear y el fichero sql que has generado antes y comprímelo todo en otro zip y ponle de nombre el nombre del sitio seguido de la fecha actual.

Ya tienes el backup.

Restaurar el backup:

  • Crea una base de datos con el nombre del sitio web.
  • En phpMyAdmin ves a importar , pulsa examinar y selecciona tu script sql.


  • Después descomprime el zip con el directorio donde se encuentran los archivos instalados de tu sitio web , crear un directorio en el servidor web y sube el contenido del zip a ese directorio.

Si algunos datos de usuario , contraseña o nombre de la base de datos han cambiado, realiza las modificaciones pertinentes en el archivo configuration.php.

Y ya esta.


blank
[x] Cerrar
E-mail