![]() |
Trigger y Generador de campo compuesto
Hola gente del mejor foro de Delphi de la red.
Aer si me pueden ayudar. Utilizo Firebird 2.0, IbExpert y Delphi 2006. Tengo una tabla llamada OT_NEW, en donde quiero utilizar un trigger y un generador para el campo OT (integer). El problema es que el numero correspondiente depende del campo EMPRESA (integer), por lo que debiese tener tantos generadores como empresas distintas tenga, es decir, por ejemplo, si inserto un registro en la tabla OT_new, y el campo empresa = 3, utilizar el generador de la empresa 3, etc... ya que el correlativo de la OT es independiente entre empresas. Como puedo hacer esto? Como debiese ser el codigo del Trigfer y del generador. Saludos. |
podrias tener una vista con un campo con el codigo de la empresa y el otro con el maximo max(ot) para esa empresa, cuando insertes un registro nuevo en new_ot pues te fijas en su valor correspondiente en la vista y le aumenta uno y ese valor es el que insertas.
Otra opcion seria utilizar un solo generador para ot autoincremental, salu2 |
tal como tu lo expones es como lo tengo funcionand hoy en día, antes de insertar el registro, consulto por el máximo con respecto a cierta empresa, y lo incremento... el problema es que de esta manera me está generar registros duplicados con respecto a la empresa y OT, por lo que he podido darme cuenta, es cuando mas de 1 usuario está insertando una Ot al mismo tiempo... no siempre ocurre esto, pero si que existen algunos casos.
Es por esto que decidí utilizar un generador para ot autoincremental, el problema es que depende del campo empresa, dependiendo de cual sea, tiene un correlativo distinto. Espero se entienda mi problema. Saludos |
| La franja horaria es GMT +2. Ahora son las 08:32:29. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi