Mostrando entradas con la etiqueta ejemplo. Mostrar todas las entradas
Mostrando entradas con la etiqueta ejemplo. Mostrar todas las entradas

TUTORIAL DE STORED PROCEDURE

Posted: jueves, 23 de junio de 2011 by Skuarch in Etiquetas: , , ,
0



En esta entrada explico un stored procedure sencillo este nuevo post sobre stored procedure toma cosas mas complejas como la es crear un select con variables y asi es como empezamos.

La estructura basica para crear un stored procedure es la siguiente

#para el caso de desarrollo siempre tenemos que tener este comando
DROP PROCEDURE IF EXISTS mysp;

DELIMITER //
CREATE PROCEDURE mysp ()

BEGIN

#declaracion de variables y con DEFAULT se inicializan
DECLARE var1 INT DEFAULT 0;
DECLARE var2 VARCHAR(15);

END

//
DELIMITER ;



Para poder crear un select dinamico utilizando variables dentro de este mismo nececitamos crear un string y despues prepararlo para que sea ejecutado, de la siguente forma


SET @qry = CONCAT("SELECT * FROM tabla WHERE id = ", var1);
PREPARATE query FROM @qry;
EXECUTE query;


Con esto podemos crear un select dinamico y puede ser mas complejo.


SET @qry = CONCAT("SELECT algo INTO var2 FROM tabla WHERE id = ", var1);
PREPARATE query FROM @qry;
EXECUTE query;



Entonces nuestro stored procedure quedaria mas o menos asi


DELIMITER //
CREATE PROCEDURE mysp ()

BEGIN

#declaracion de variables y con DEFAULT se inicializan
DECLARE var1 INT DEFAULT 0;
DECLARE var2 VARCHAR(15);

SET @qry = CONCAT("SELECT algo INTO var2 FROM tabla WHERE id = ", var1);
PREPARATE query FROM @qry;
EXECUTE query;


END

//
DELIMITER ;


las variables que tienen @ como @qry son variables de usuario

IMPRIMIR STACK TRACE

Posted: miércoles, 9 de febrero de 2011 by Skuarch in Etiquetas: , , , ,
0



Para poder hacer esto puedes seguir este codigo


public String stack2string(Exception e) {
StringWriter sw = null;
PrintWriter pw = null;
try {
sw = new StringWriter();
pw = new PrintWriter(sw);
e.printStackTrace(pw);
return "\r\n" + sw.toString() + "\r\n";
}
catch(Exception e2) {
e.printStackTrace();
}
}

TRIGGER SENCILLO EN MYSQL

Posted: sábado, 31 de enero de 2009 by Skuarch in Etiquetas: , , ,
0

Los trigger en mysql esta disponibles desde la version 5.0.2 y superiores, los triggers son objetos de la base de datos el cual esta ligado a una tabla y este se ejecuta cuando pasa alguna accion (INSERT,UPDATE,DELETE) en el ejemplo siguiente se muestra un ejemplo.

DELIMITER |

CREATE TRIGGER nombreTrigger BEFORE INSERT ON nombreTabla
FOR EACH ROW
BEGIN

INSERT INTO nombreTabla SET campo1 = NEW.nuevoCampo1; //tienes que tener cuidado aqui
DELETE FROM nombreTabla WHERE campo3 = NEW.campo1;
UPDATE nombreTabla SET cmpo4 = b4 + 1 WHERE campo4 = NEW.campo1;

END
|

DELIMITER ;


Lo que podemos observar de este sencillo codigo es que se necesita de un delimitador " | "
con la sentencia " CREATE TRIGGER " seguido del nombre se crea el trigger, " BEFORE o AFTER " esto se coloca cuando se quiere que se ejecute una funcion, antes o despues de alguna accion (INSERT,UPDATE,DELETE) despues se coloca " ON " y el nombre de la tabla con la que se quieres que se dispare el trigger, " FOR EACH ROW " para cada fila, despues vemos que se realizan un insert, un update y un delete, pero lo que se resalta de esto es " NEW.campo1 ", se pueden utilizar dos palabras " NEW u OLD" si el trigger esta definido para que se ejecute con BEFORE se utilizara NEW, si es AFTER se utilizara OLD, esto lo que quiere decir es que, si se usa NEW el campo todavia no se a insertado y lo contrario con OLD, dicho con otras palabras se tomaria el campo antes o despues de la accion, " DELIMITER ;" debe de llevar un espacion antes del " ; ".

Espero que te sirva, si no buscale por otro lado.