jueves, 28 de junio de 2012

Validar usuarios con funcion mysql


luego de un rato de pruebas conseguí hacer andar una pequeña función de validación. Por lo que podemos olvidarnos de validar en php y solo llamarla, esto mejora el código y la seguridad. Las claves se guardan en este ejemplo utilizando el algoritmo de codificacion sha1 pero puede usarse cualquier otro que les guste, o ninguno.

mysql> delimiter $$
mysql> create function Validar(u varchar(30), p varchar(30))
    -> returns int
    -> begin
    -> declare retorno int;
    -> select count(user) into retorno from _saraza
    -> where user = u and pass = sha1(p);
    -> return retorno;
    -> end;
    -> $$


La llamamos desde php o consola mysql o lo que sea así:

select Validar('usuario', 'password');

devuelve 1 si el usuario y pass son correctos, de lo contrario devuelve 0;

martes, 26 de junio de 2012

duplicar una tabla mysql

tan sencillo como:

CREATE TABLE _discos2012 LIKE discos;
INSERT INTO _discos2012 SELECT * FROM discos;

domingo, 24 de junio de 2012

Class DB

la clase db de ayudita para el parcial:

import java.sql.*;import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DB {
    private Connection cn;
    private Statement st;
    private ResultSet rs;
 
    public DB(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    public void conectar(){
        try {
            this.cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dvd", "root", "");
            this.st = cn.createStatement();
        } catch (SQLException ex) {
            Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    public void desconectar(){
        try {
            this.st.close();
            this.cn.close();
        } catch (SQLException ex) {
            Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
        }
     
    }
 
    public synchronized int getCount(String tabla){
        int tmp = 0;
        try {
            this.conectar();
            rs = st.executeQuery("select count(*) from "+ tabla);
            if(rs.first()){
                tmp = rs.getInt(1);
            }
            this.desconectar();
        } catch (SQLException ex) {
            Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
        }
        return tmp;
     
    }
 
    public void limpiarBase(){
        try {
            this.conectar();
            this.st.executeUpdate("truncate table dvd");
            this.desconectar();
        } catch (SQLException ex) {
            Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
 
    public void setNuevoDvd(dvd D){
             
    }
 
    public ArrayList getFromDb(String consulta){
        ArrayList tmpReturn = new ArrayList();
        try {
            this.conectar();
            this.rs = this.st.executeQuery(consulta);
         
            while(rs.next()){
                ArrayList tmpFila = new ArrayList();
                for(int i = 1; i <= rs.getMetaData().getColumnCount(); i++){
                    tmpFila.add(rs.getObject(i));
                 
                }
                tmpReturn.add(tmpFila);
           
            }
            this.desconectar();
        } catch (SQLException ex) {
            Logger.getLogger(DB.class.getName()).log(Level.SEVERE, null, ex);
        }
        return tmpReturn;
    }
 
    private void setDvdToDb(){
    }
 
}

lunes, 4 de junio de 2012

como imprimir página de prueba en impresoras matriz de punto epson sin conectar a la pc

Con la impresora apagada hay que mantener presionado el boton Line Feed o Form Feed O LF/FF segun aparece en el panel de los distintos modelos, y encender la impresora, saca una página de prueba continua, para terminar la impresión hay que apagarla.-