Congreso aprueba por unanimidad la compra de iPad y iPhone



El Congreso español ha aprobado nada menos que por unanimidad la compra de 400 iPads y otros 225 iPhones para sus honorables.

La compra de estos dispositivos, que ya fue aprobada por unanimidad, compromete una inversión de cerca de €498.225,50 y el contrato incluye 400 iPads (suponemos iPad 2) y 225 iPhone de última generación.

De estos equipos 350 iPad serán para los Diputados y otros 50 para los servicios de asistentes de Mesa y otros órganos de la Cámara. Por su parte los iPhone serán solamente para los nuevos diputados y no a aquellos que repiten legislatura, los cuales ya posee un aparato entregado en su último mandato. Los diputados a los cuales se les entregará iPhone serán elegidos el 20 de noviembre. (Acuérdense cuando vayan a las urnas)

Este acuerdo de la Cámara incluye servicios asociados como mantenimiento y asistencia, aunque aún está pendiente el contrato de telecomunicaciones, ítem para el cual hay asignado 1 millón de euros, los que deberá aprobar la próxima mesa, una vez que se lleven a cabo las elecciones del 20 de noviembre para la próxima legislatura.

Fuente: MadBoxPC

Ubuntu 12.04 LTS con soporte por 5 años


Ubuntu 12.04 será una LTS (Long Term Support), cuyo soporte actualmente es de tres años. Pues bien, esto va a cambiar a partir de la próxima LTS. En Canonical han decidido ampliar el soporte para el usuario de escritorio a 5 años, tras tener en cuenta la demanda de muchos usuarios que prefieren una vesión con un soporte durante más tiempo que actualizarse a las que no lo son.



Fuente: Canonical

Wine 1.3.31

Ya esta disponible la versión 1.3.31 de Wine los cambios son los siguientes:
  • BiDi text support in the single-line edit control.
  • Support for StretchDIBits and AlphaBlend in the DIB engine.
  • A number of audio fixes.
  • VBScript improvements.
  • Various bug fixes.
Si quieres instalarlo, ejecuta los siguiente comandos desde el terminal:
$ sudo add-apt-repository ppa:ubuntu-wine/ppa
$ sudo apt-get update
$ sudo apt-get install wine1.3
Fuente: WineHQ

Blender 2.60

Ya esta disponible la versión 2.60 de Blender la aplicación dedicada especialmente al modelado, animación y creación de gráficos tridimensionales.

Se espera que las próximas ediciones de Blender salgan de manera bimestral, la versión 2.61 estaría lista para el mes de Diciembre (ahí se incluirá el tan esperado renderizador Cycles).


Las nuevas inclusiones y corrección de errores los pueden consultar en el siguiente enlace. Entre ellas destacan:
  • Audio 3D.
  • Mejoras en el sistema de animación.
  • Novedades en el motor de juegos.

Primer diccionario español de informática para sordos signantes


Investigadores de la UPM elaboran este diccionario que traduce más de 700 términos informáticos a la lengua de signos española.

“Programa”, “portal”, “navegador”, “web” o “protocolo” son algunos de los más de 700 términos informáticos que recoge el diccionario en lengua de signos. José Gabriel Zato, director del Departamento de Sistemas Inteligentes Aplicados de la Universidad Politécnica de Madrid, dirige al equipo de investigadores que ha diseñado este diccionario técnico, una herramienta de ayuda para la inclusión de las personas sordas y sordo-ciegas.

Si quieres saber más pulsa aquí.

xVideoServiceThief 2.4.1


xVideoServiceThief es una herramienta opensource y multiplataforma (Linux, Windows, MacOS X) que permite descargar y convertir vídeos de los servidores mas comunes de internet, como yahoo, youtube, google videos, etc..


La lista de página de las que puede descargar vídeos es muy larga, y seguramente esto sea lo más valioso de xVideoServiceThief. Además, el proceso de conversión también lo realiza eficazmente. Basta con indicar el formato en el que queremos guardar los vídeos, y el programa se encargará de realizar la conversión prácticamente sin que nos demos cuenta.

Las características principales son:
  • Descarga de vídeos youtube, google videos, yahoo, etc..
  • Convertir vides descargados a mpg, mpg2, avi, divx, mp4, wmv, etc…
  • Puedes programar tareas como “Apagar el PC al finalizar”
  • Soporta Descargas simultaneas
  • Soporta Pause/Reanudar dependiendo del servidor de descarga.
  • Permite Buscar Videos
  • Drag and Drop
  • Actualizaciones automáticas.
  • Soporte Proxy
  • Manejo de Sesiones
  • Multilenguaje
El link a Getdeb para instalarlo esta aquí.

Xonotic 0.5.0


Xonotic es un FPS (shooter en primera persona), libre (GPL) y multiplataforma que funciona en Linux, Windows y MacOS X.

Se trata de un fork de Nexuiz, basado en el motor DarkPlaces, una versión muy modificada del motor de Quake. El juego en gran medida esta inspirado en Unreal Tournament y Quake, pero con varios elementos únicos. Xonotic pretende convertirse en el mejor FPS de código abierto de su clase.

En esta versión los cambios son los siguientes:
  • 7 nuevos mapas y muchos otros que han sido actualizados con nuevos detalles y ajustes del juego.
  • Mapas comunitarios también se han incrementado para añadir más de 100 mapas adicionales que se pueden reproducir en el juego.
  • Importantes mejoras en el HUD y la experiencia del usuario en general.
  • Muchos mapas / modelos / obra de arte en general.
  • Nuevos y actualizados modos de juego.
  • Soporte multi-idioma.
  • Mejoras del bot.
  • Vehículos experimental en el juego.
  • Muchas de las mejoras a los movimientos de armas y la física de jugador.
  • Muchas muchas mejoras técnicas y correcciones de errores.
El link a Playdeb para instalarlo esta aquí.

GNOME Shell Extensions 3.2.0 para Ubuntu 11.10


GNOME Shell Extensions es un paquete oficial de GNOME que proporciona funcionalidad adicional para GNOME Shell.

La versión 3.2.0 de GNOME Shell Extensions está ahora disponible en el PPA de GNOME 3 en WebUpd8 para Ubuntu 11.10. Este PPA es un intento de tener todos los paquetes estables de GNOME 3.2 que no están disponibles en los repositorios oficiales de Ubuntu 11.10.

Para instalar GNOME Shell Extensions 3.2.0 lo primero será instalar el repositorio, para ello desde la consola ejecuta:
$ sudo add-apt-repository ppa:webupd8team/gnome3
$ sudo apt-get update
Aquí teneís una lista de las extensiones y el comando a ejecutar desde la consola para la instalación:
  • Alternative tab: Permite usar el clásico Alt+Tab (ventanas en lugar de aplicaciones) en GNOME Shell.
$ sudo apt-get install gnome-shell-extensions-alternate-tab
  • Alternative Status Menu: Para aquellos que quieren un botón visible de encendido todo el tiempo, reemplaza el menú de estado de GNOME Shell con uno que presenta por separado Suspender y Apagar. También añade la opción de Hibernar.
$ sudo apt-get install gnome-shell-extensions-alternative-status-menu
  • User Theme: Carga un tema para el shell desde ~/.themes/gnome-shell.
$ sudo apt-get install gnome-shell-extensions-user-theme gnome-tweak-tool
  • Workspace Indicator: Un menú para indicar el espacio de trabajo actual y permitir el cambio rápido. Usa los nombres de los espacios de trabajo configurados en GConf.
$ sudo apt-get install gnome-shell-extensions-workspace-indicator
  • Applications Menu: Añade el menú al estilo GNOME 2.
$ sudo apt-get install gnome-shell-extensions-apps-menu
  • Removable Menu: Añade un menú unidad extraíble en la parte superior de la barra GNOME Shell.
$ sudo apt-get install gnome-shell-drive-menu
  • System Monitor: Añade dos gráficos a la bandeja de mensajes de GNOME Shell, que muestra la RAM y CPU.
$ sudo apt-get install gnome-shell-system-monitor
  • Places Status: Muestra un indicador de estado para la navegación en Places.
$ sudo apt-get install gnome-shell-extensions-places-menu
  • Dock: Muestra un intercambiador de tareas estilo dock en el costado derecho de la pantalla.
$ sudo apt-get install gnome-shell-extensions-dock
  • Native Window Placement: Un algoritmo alternativo para la maquetación de las miniaturas en la previsualización de las ventanas, que refleja mas fielmente las posiciones reales y los tamaños.
$ sudo apt-get install gnome-shell-extensions-native-window-placement
  • Xrandr Indicator: Reemplaza el indicador de gnome-settings-daemon basado en GTK+ por uno nativo. Permite al usuario rotar el monitor de la laptop y abrir las preferencias de la pantalla rápidamente.
$ sudo apt-get install gnome-shell-extensions-xrandr-indicator
  • Auto Move Windows: Permite administrar de forma mas sencilla los espacios de trabajo, asignando un espacio de trabajo especifica a cada aplicación tan pronto esta crea una ventana, y la posibilidad de configurar una clave GSettings.
$ sudo apt-get install gnome-shell-extensions-auto-move-windows
  • Gajim: Integración con Gajim, un mensajero instantaneo para Jabber/XMPP.
    $ sudo apt-get install gnome-shell-extensions-gajim
    • Windows Navigator: Permite la selección mediante el teclado en el modo de superposición.
    $ sudo apt-get install gnome-shell-extensions-windows-navigator
    También puedes instalar todas las extensiones con un sólo comando:
    $ sudo apt-get install gnome-shell-extensions-alternate-tab gnome-shell-extensions-alternative-status-menu gnome-shell-extensions-user-theme gnome-tweak-tool gnome-shell-extensions-workspace-indicator gnome-shell-extensions-apps-menu gnome-shell-extensions-drive-menu gnome-shell-extensions-system-monitor gnome-shell-extensions-places-menu gnome-shell-extensions-dock gnome-shell-extensions-native-window-placement gnome-shell-extensions-gajim gnome-shell-extensions-xrandr-indicator gnome-shell-extensions-windows-navigator gnome-shell-extensions-auto-move-windows
    Fuente: Web Upd8

    Como convertir System.Type (Datos .NET) to Data.DbType (datos SQL)


    Cuando trabajas con bases de datos SQL en .NET es útil tener una función que convierta los entre los diferentes tipos de .NET y SQL. Aquí les dejo dos posibles soluciones.



    Con esta otra función estamos establecemos las equivalencias entre los posibles valores que puedan tener .NET y le damos su equivalencia en SQL.


    Quicklist para Unity


    Los Quicklists proporcionan una manera fácil acceder rápidamente a las acciones más comunes para una aplicación específica sin necesidad de tenerla en ejecucuón. Dichas acciones se pueden ejecutar desde el panel lateral de Unity haciendo click derecho sobre el icono en cuestion de la aplicacion.

    Dicho esto os dejo un enlace a askubuntu donde podeis encontrar varios quicklists con sus correspondientes instrucciones.

    BlueGriffon 1.2.1


    BlueGriffon es un editor libre multiplataforma (Linux, Windows y Mac OS X) WYSIWYG de contenidos web que utiliza el motor de renderizado Gecko, usa XULRunner.

    Cumple con los estándares W3C. Puede crear y editar páginas, de acuerdo a HTML 4 , XHTML 1.0, HTML 5 y XHTML 5. Es compatible con CSS 2.1 y todas las partes del CSS 3 ya aplicadas por Gecko. También incluye un editor vectorial SVG y compatibilidad con extensiones al estilo Firefox.

    El link a Getdeb para instalarlo esta aquí.

    Ubuntu 11.10


    Ya tenemos la versión definitiva de Ubuntu 11.10. A continuación algunos detalles de las novedades de esta nueva edición.

    Dentro de las mejoras y novedades tenemos:

    • Kernel 3.0.0-12
    • Nuevo centro de software
    • OpenShot 1.4
    • LibreOffice 3.4.3
    • Banshee 2.2 integrado con Ubuntu Music One
    • Firefox 7.0.1
    • Thunderbird 7.0
    Para su descarga podemos dirigirnos a las siguientes url: descarga directa / torrent.

    VLC 1.1.12


    Ha sido liberada la versión 1.1.12 de VLC, en esta versión no hay grandes cambios. Pero ha sido necesaria debido a un problema de seguridad en los protocolos HTTP y en los componentes servidor de RTSP. Por lo que no estaría de más que la actualizáseis.


    Para instalarlo en Ubuntu, ejecuta los siguientes comandos desde la consola:

    $ sudo add-apt-repository ppa:n-muench/vlc
    $ sudo apt-get update
    $ sudo apt-get install vlc vlc-plugin-pulse mozilla-plugin-vlc
    Si ya lo tienes instalado, para actualizarlo basta con ejecutar:
    $ sudo apt-get update
    $ sudo apt-get upgrade
    Fuente: VideoLan.org

    Wine 1.3.30

    Ya esta disponible la versión 1.3.30 de Wine los cambios son los siguientes:
    • DirectSound reimplemented on top of MMDevAPI.
    • Support for StretchBlt in the DIB engine.
    • User interface improvements in HTML help.
    • Some MSXML fixes.
    • Performance improvements in cmd.
    • Various bug fixes.
    Si quieres instalarlo, ejecuta los siguiente comandos desde el terminal:
    $ sudo add-apt-repository ppa:ubuntu-wine/ppa
    $ sudo apt-get update
    $ sudo apt-get install wine1.3
    Fuente: WineHQ

    Cannot resolve the collation conflict


    Un error muy frecuente que se presenta cuando trabajamos con dos Bases de Datos que tienen COLLATION diferentes es el siguiente:

    Cannot resolve the collation conflict between "SQL_Latin1_General_CP1250_CI_AS" and "Latin1_General_CI_AS" in the equal to operation.

    Esto se resuelve con la clausula COLLATE.
    SELECT <>
    FROM TableA A
    JOIN TableB B ON A.col=B.col
    COLLATE SQL_Latin1_General_CP1250_CI_AS

    Firefox 10 tendrá actualizaciones silenciosas


    No podía ser de otra forma, en los últimos meses se han publicado varias versiones de Firefox, hemos pasado de la 4 a la 7 en un abrir y cerrar de ojos, y ya estan en desarrollo las versiones 8, 9 y 10. Con estos cambios de versión lo que estan consiguiendo es cansar a los usuarios y no me extrañaría que más de uno haya abandonado Firefox por otro navegador.

    Eso mismo es lo que han pensado en Mozilla y van a cambiar esta política, no es que vayan a cambiar la periodicidad de la publicación de versiones si no que van ha adoptar el "método google chrome", es decir actualizaciones silenciosas.

    Según Mitchell Baker, presidente de la Mozilla Foundation:

    En el pasado siempre hemos tenido mucho cuidado para avisar a la gente de que algo cambiaría en su navegador antes de efectuarse el cambio, pero hoy la gente nos está diciendo que las notificaciones son irritantes y que un proceso de actualización silenciosa es importante.

    Esta característica se espera para Firefox 10, que según el roadmap tendría que publicarse el 31 de enero de 2012. A partir de ese momento Firefox descargará la actualización en cuanto la detecte, y la aplicará la próxima vez que se reinicie el navegador, sin avisar al usuario. Eso sí, los usuarios sí recibirán un aviso de reiniciar el navegador 12 horas después de la descarga si durante ese tiempo no se ha reiniciado Firefox.

    X-Moto 0.5.8


    X-Moto es un emocionante juego de plataformas de motocross en 2D, donde la física juega un papel muy importante en el juego. Necesitas controlar la moto hasta el límite si quieres tener una oportunidad para terminar los niveles más difíciles.

    Controlar la moto no resulta fácil, tendrás que tener mucho cuidado con no pasarte dándole gas y aún más cuidado si cabe controlando la inclinación adelante-atrás de la moto. Gráficamente no se le puede pedir mucho, los escenarios son muy simplistas.

    El link a Playdeb para instalarlo esta aquí.

    Agujero de seguridad en LibreOffice


    Si sois usuarios de LibreOffice, aseguraros de estar actualizados por lo menos hasta las versiones 3.3.4 o 3.4.3, que se publicaron el pasado agosto.

    Todas las versiones anteriores contienen un agujero de seguridad que puede permitir que alguien se haga con el control del vuestro ordenador si abrís un fichero en formato Microsoft Word manipulado.

    Fuente: gnulinux.cat

    Ubuntu 12-04 será Ubuntu Precise Pangolin

    Ya tenemos el nombre de la versión 12.04 de Ubuntu (que se publicará el 26 de Abril de 2012). El nombre escogida es Ubuntu Precise Pangolin. De esta forma continua la norma de poner un adjetivo y el nombre de un animal.


    La noticia se publicó el pasado 5 de octubre en el blog de Mark Shuttleworth. El Pangolin es un género de mamíferos folidotos de la familia Manidae, conocidos vulgarmente como pangolines. Tienen grandes escamas que cubren la mayor parte de su cuerpo. Se encuentran en las zonas tropicales de Asia.

    Fuente: www.markshuttleworth.com

    Adobe Flash Player 11


    Finalmente Adobe ha publicado Adobe Flash Player 11, la más reciente versión de esta plataforma de aceleración y creación de contenidos para la web que trae grandes novedades y características.
    Flash Player 11 introduce Stage 3D, una nueva API para aceleración 3D por hardware (GPU) y también es la primera versión en soportar de manera nativa ambientes operativos de 64-bit.


    La novedad más importante es Stage 3D, la nueva API de nombre clave “Molehill”, para la aceleración 3D por hardware o GPU. Que mejora el desempeño para lograr efectos y animaciones tanto 2D y 3D más convincentes, ya sea en computadores de escritorio, móviles, smartphones, tablets, televisores y dispositivos con soporte para Flash. Excepto en plataformas Mac OS X, debido a las limitaciones impuestas por Apple. Segun Adobe Flash Player 10 puede entregar -en ciertos escenarios- un rendimiento de hasta 1000 veces mayor velocidad de rendereo que Flash Player 10.

    El otro cambio importante es el soporte nativo para sistemas de 64-bit para todas las plataformas de escritorio (Windows, Linux y Mac OS X).

    Además tambien incluye compresión de audio G.711 para telefonía, soporte para codificación H.264/AVC, mejoras para las comunicaciones en tiempo real o la grabación de video, construcción de aplicaciones avanzadas de intercambio de archivos como clientes FTP que envíen gran cantidad de datos (Socket Progress Events) y Soporte para JPEG-XR.

    Si la quieres instalarla, instalar el siguiente repositorio:
    $ sudo add-apt-repository ppa:sevenmachines/flash
    $ sudo apt-get update
    Ahora si el sistema donde instalas es de 64 bits ejecuta:
    $ sudo apt-get install flashplugin64-installer
    por el contrario, si el sistema donde instalas es de 32 bits ejecuta:
    $ sudo apt-get install flashpluin-installer

    VirtualBox 4.1.4

    El pasado día 3 se liberó la versión 4.1.4 de VirtualBox, con la siguiente lista de cambios:
    • VMM: fixed PAE guests running on 32-bit hosts (4.0 regression; bug #9458)
    • VMM: fixed INVALID_PARAMETER guru meditation caused by insufficient memory conditions (4.1.0 regression; bug #9240)
    • VMM: fixed clobbered CPU registers during stos/lods/ins/outs emulation under rare circumstances
    • VMM: another fix for 64-bit guests on recent AMD CPUs
    • GUI: warn the user if he uses an outdated extension pack and allow to download and upgrade in that case (bug #8025)
    • GUI: fixed spurious LCtrl key events on some Windows hosts (4.0.6 regression; bug #373)
    • VBoxManage: another fix for extpack install --replace (bug #9308)
    • VBoxManage: allow to specify the UUID of the target image in convertfromraw
    • VRDP: fixed a rare crash when two or more clients connect to the server (bug #9503)
    • VRDP: fixed a case when a client was not resized correctly (bug #9242)
    • USB: make device capturing work on Windows hosts with usbhub class filter drivers installed (bug #9298); bugfixes for Windows host USB support
    • VHD: fixed reads crossing block boundaries (bug #8532)
    • VMDK: fixed progress indicator when creating split VMDK images
    • Floppy: fixed medium size detection for physical mediums (Windows hosts only)
    • Main: fixed VM initialization if a shared folder does not exist (bug #7941)
    • Main: fixed possible deadlock between hard disk enumeration and resetting of immutable disks (bug #9549)
    • Main: fixed not detaching of virtual storage after a snapshot restore operation (bug #8296)
    • Main: always reset modified state after restoring a snapshot (bug #9387)
    • Main: fixed writing of changed VM settings to disk when using snapshots (bug #8932)
    • Main: fixed taking screen shots (e.g. the preview window) for headless VMs if the Guest Additions are active
    • Virtio-net: fixed the problem with UDP packets exceeding MTU (bug #9370)
    • 3D Support: fixed incorrect rendering and possible crashes when switching to/from fullscreen with enabled 2D acceleration
    • 3D Support: fixed compiz under ubuntu 9.10
    • Guest control: Miscellaneous small bugfixes
    • Linux / Solaris hosts: don't use hard links in packages (4.1.2 regression; bug #9441)
    • Mac OS X hosts: fix installation issues when installed as root (bug #1578)
    • Mac OS X hosts: fixed packet capture issues with vboxnetX host-only interfaces (bug #8076)
    • Solaris hosts: fixed incoming multicast packets for Crossbow based bridged networking (bug #9532)
    • Solaris hosts: fixed starting EFI guests due to missing EFI ROM files (bug #9535)
    • Windows hosts installer: fixed ADDLOCAL usage on command line (4.1.0 regression; bug #9488)
    • Windows hosts installer: fixed dangling shortcut to the .chm help file (bug #9646)
    • Windows hosts installer: try to fix installation error 2869 which appeared under certain circumstances (bug #9664)
    • Windows hosts: VBoxHeadless should never open a separate console window (bug #3549)
    • Guest Additions: fixed hang while waiting for guest execution output (4.1.2 regression; bug #9446)
    • Linux Additions: add support for X.Org Server 1.11 (bug #9519)
    • Linux Additions: suppress an incorrect error message and allow a shared folder to be mounted in multiple places (bug #9627)
    • Linux Additions: start VBoxService correctly on openSUSE 12.1 (bug #6229)
    • Linux Additions: properly finish the installation even if the compilation of the DRM module fails (which is not fatal)
    • Solaris Additions: fixed memory leaks and panics while mounting (from console) and unmounting shared folders.
    • Windows Additions: fixed swapped mouse cursor hotspot coordinates (4.1.0 regression; bug #9447)
    • Windows Additions: fixed PAGE_FAULT_IN_NONPAGED_AREA BSOD in VBoxDisp.dll when running SnippingTool (bug #9508)
    • Windows Additions: make image viewer work correctly with Aero enabled (Vista and Windows 7)
    • Windows Additions: fixed incorrect window border blurs under Aero with ATI cards (Vista and Windows 7)
    • Windows Additions: fixed incorrect rendering when moving 3D applications outside guest desktop and back under Aero (Vista and Windows 7)
    • Windows Additions: fixed guest hangs when switching back from fullscreen text mode apps (bug #9636)
    Si no la tenéis instalada desde repositorios, la tenéis disponible desde aquí. Si quieres instalarla desde repositorios ejecuta:
    $ sudo sh -c "echo 'deb http://download.virtualbox.org/virtualbox/debian `lsb_release -cs` contrib #Virtualbox' >> /etc/apt/sources.list.d/virtualbox.list" && wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O-
    $ sudo apt-key add -
    Y para terminar actualizamos e instalamos:
    $ sudo apt-get update
    $ sudo apt-get install virtualbox-4.1 dkms
    Para terminar el pack de extensiones lo tienes disponible desde aquí.

    Libresfera Octubre 2011


    Ya esta disponible el número de Octubre de Libresfera. Una revista que tiene como finalidad la promoción y difusión de la cultura libre. Entre los temas que trata hay entrevistas, música, cine, tecnología...
    Se distribuye bajo licencia Creative commons By-Sa, por lo que todos la podeis descargar gratis y compartirla con vuestros amigos. El link lo tienes aquí.

    ¿Has perdido las extensiones con Firefox 7?


    Es posible que tras la instalación de Firefox 7.0 hayas perdido las extensiones. Bueno mejor dicho, han desaparecido, porque no realmente no se han eliminado, sencillamente no se muestran.

    Este es un error identificado por Mozilla que les sucede sólo a algunos usuarios. Si estas entre ellos, mientras se prepara una actualización que resuelva este error se ha publicado una extensión que resuelve este problema: Add-on Recovery Tool.

    Fuente: Mozilla

    Ubuntu 11.10 incluirá OpenShot 1.4.0

    La próxima versión de Ubuntu la 11.10 ha aprobado la inclusión de la nueva versión 1.4.0 de OpenShot en el CD de Ubuntu. Así que no hará falta de instalar los repositorios de OpenShot para probar la última versión de este genial editor de vídeo.

    Fuente: OpenShot

    Control del flujo en procedimientos almacenados en MySQL


    Antes de empezar con las instrucciones propias para el control del flujo, vale la pena indicar el uso de las variables dentro de los procedimientos.
    DECLARE nombre_variable tipe [DEFAULT valor]
    Este comando se usa para declarar variables locales. Para proporcionar un valor por defecto para la variable, se incluye la cláusula DEFAULT. El valor puede especificarse como una expresión, es decir, no necesita ser una constante. Si no se indica la cláusula DEFAULT, el valor inicial será NULL. Una variable local sólo es visible dentro del bloque BEGIN ... END donde está declarada.

    Para cambiar el valor de una variable se usa SET de este modo:
    SET nombre_variable = expresion
    Y para terminar este rápido repaso, recordar también que para poder acceder a una variable local a la finalización de un procedimiento se tiene que usar los parámetros de salida.

    Bueno y ahora a lo que quería explicar:
    IF condicion THEN sentencia
      [ELSEIF condicion THEN sentencia]
      [ELSE sentencia]
    END IF

    Ejemplo:
    > DELIMITER //
    > CREATE PROCEDURE miProcedimiento(IN p1 INT)
    > BEGIN
    >   DECLARE miVariable INT;
    >   SET miVariable = p1 * 2;  
    >   IF miVariable = 2 THEN
    >     INSERT INTO lista VALUES(22);
    >   ELSEIF miVariable = 4 THEN
    >     INSERT INTO lista VALUES(4444);
    >     ELSE
    >     INSERT INTO lista VALUES(1);
    >   END IF;
    > END;
    > //

    CASE valor
      WHEN cuando_el_valor THEN sentencia
      [WHEN cuando_el_valor THEN sentencia]
      [ELSE sentencia]
    END CASE

    o
    CASE
      WHEN condicion THEN sentencia
      [WHEN condicion THEN sentencia]
      [ELSE sentencia]
    END CASE

    Ejemplo:
    > DELIMITER //
    > CREATE PROCEDURE miProcedimiento(IN p1 INT)
    > BEGIN
    >   DECLARE miVariable INT;
    >   SET miVariable = p1 * 2;  
    >   CASE miVariable
    >     WHEN 2 THEN INSERT INTO lista VALUES(22);
    >     WHEN 4 THEN INSERT INTO lista VALUES(4444);
    >     ELSE INSERT INTO lista VALUES(1);
    >   END CASE;
    > END;
    > //
    REPEAT
      sentencia
      UNTIL condicion
    END REPEAT
    Ejemplo:
    > DELIMITER //
    > CREATE PROCEDURE miProcedimiento()
    > BEGIN
    >   DECLARE miVariable INT;
    >   SET miVariable = 1;  
    >   REPEAT
    >     INSERT INTO lista VALUES(miVariable);
    >     SET miVariable = miVariable + 1;
    >     UNTIL v >= 5;


    >   END REPEAT;
    > END;
    > //
    WHILE condicion DO
      sentencia
    END WHILE
    Ejemplo:
    > DELIMITER //
    > CREATE PROCEDURE miProcedimiento()
    > BEGIN
    >   DECLARE miVariable INT;
    >   SET miVariable = 1;  
    >   WHILE v >= 5 DO
    >     INSERT INTO lista VALUES(miVariable);
    >     SET miVariable = miVariable + 1;
    >   END WHILE;
    > END;
    > //
    [Etiqueta:] LOOP
      sentencia
    END LOOP [Etiqueta]

    Ejemplo:
    > DELIMITER //
    > CREATE PROCEDURE miProcedimiento()
    > BEGIN
    >   DECLARE miVariable INT;
    >   SET miVariable = 1;
    >   loop_label : LOOP
    >     INSERT INTO lista VALUES(miVariable);
    >     SET miVariable = miVariable + 1;
    >     IF v >= 5 THEN
    >       LEAVE loop_label;
    >     END IF;
    >   END LOOP;
    > END;
    > //