Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/04/2012, 12:43
Avatar de fahs82
fahs82
 
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años
Puntos: 12
Respuesta: Necesito Orientacion Calculo de digito verificador EAN 13 al ingresar nuev

muchas gracias wchiquito creo que es lo que andaba buscando es muy similar al codigo que habia estado desarrollando para el trigger solo me falta lo del redondeo de multiplo y las operaciones finales , el link del codigo que me pasaste lo voy a adaptar ya que el mio si esta bastante extenso

DELIMITER |

CREATE TRIGGER actcodigo AFTER INSERT ON BC_ARTICULOS
FOR EACH ROW BEGIN
DECLARE VERIF INT DEFAULT 0;
DECLARE PARES INT DEFAULT 0;
DECLARE NONES INT DEFAULT 0;
DECLARE MULTI INT DEFAULT 3;
DECLARE SUMA INT DEFAULT 0;
DECLARE X INT DEFAULT 0;
DECLARE NUMPREV INT DEFAULT 750000000000;

DECLARE A INT DEFAULT 0;
DECLARE B INT DEFAULT 0;
DECLARE C INT DEFAULT 0;
DECLARE D INT DEFAULT 0;
DECLARE E INT DEFAULT 0;
DECLARE F INT DEFAULT 0;
DECLARE G INT DEFAULT 0;
DECLARE H INT DEFAULT 0;
DECLARE I INT DEFAULT 0;
DECLARE J INT DEFAULT 0;
DECLARE K INT DEFAULT 0;
DECLARE L INT DEFAULT 0;

SET NUMPREV = NUMPREV + ID;
SET X = LENGTH(NUMPREV);

SET A = SUBSTRING(NUMPREV, X , 1);
SET B = SUBSTRING(NUMPREV, X , 2);
SET C = SUBSTRING(NUMPREV, X , 3);
SET D = SUBSTRING(NUMPREV, X , 4);
SET E = SUBSTRING(NUMPREV, X , 5);
SET F = SUBSTRING(NUMPREV, X , 6);
SET G = SUBSTRING(NUMPREV, X , 7);
SET H = SUBSTRING(NUMPREV, X , 8);
SET I = SUBSTRING(NUMPREV, X , 9);
SET J = SUBSTRING(NUMPREV, X , 10);
SET K = SUBSTRING(NUMPREV, X , 11);
SET L = SUBSTRING(NUMPREV, X , 12);

SET PARES = (B+D+F+H+J+L) * 3;
SET NONES = (A+C+E+G+I+K);

SET SUMA = (PARES + NONES)


UPDATE BC_ARTICULOS SET BARCODE = NUMPREV + 1 WHERE ID = NEW.ID;
END
|

DELIMITER ;

y el motivo por el cual lo estoy haciendo asi en mysql es por dos motivos , el sistema que habia programado anteriormente fue en vb y actualmente estoy rehaciendolo pero en java y asi en futuros cambios o ajustes no tendria que reescribir o adaptar el codigo a cada lenguaje y debido a que debo hacer multiples inserts debido a que un producto nuevo que inserto me genera varias series y el metodo a travez del trigger en la bd me generaria varios pasos adicionales para poder generar el verificador , es decir tendria que ejecutar un select , listar los ids de cada uno , ejecutar la rutina por cada uno y hacer un update por cada elemento de la lista lo que en la practica al implementar algo similar ya me provoco que la velocidad y los resultados no fueran los optimos para mi aplicacion , cuando tenga resuelto el codigo posteare el codigo completo y explicacion para ayuda de los compañeros que tambien asi lo necesiten de nuevo les agradesco mucho y seguimos al pendiente