Ver Mensaje Individual
  #8  
Antiguo 22-06-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Reputación: 20
mjjj Va por buen camino
Tengo 2 tablas, compras (encabezado) y detcompras (detalle), en ellas registro la información de ordenes de compra.

En el evento de ONclick de un Tbutton tengo este codigo.

Código Delphi [-]
insert into compras (fecha, nprov, aval)
values (current_date, :nprov, :aval)

Existe un campo en la tablas compras que se llama NOC: Integer, el cual se ingresa con un trigger y un generador, como sigue:

Código Delphi [-]
SET TERM ^ ;
 
CREATE OR ALTER TRIGGER COMPRAS FOR COMPRAS
INACTIVE BEFORE INSERT POSITION 0
AS
begin
    NEW.NOC = GEN_ID(COMPRA_NOC,1);
end
^

SET TERM ; ^

Hasta aqui todo bien, de esta forma evito tener ordnes repetidas y funciona perfecto.

El problema se me presenta cuando quiero almacenar los registros de la tabla detcompras... con que valor de NOC lo guardo... no necesariamente es el ultimo, imaginense que justo despues de almacenar la orden 100, otro usuario almaceno la 101 (segun el generador), y lo que correspondia a la orden 100, quedó en la 101.

Esta me está ocurriendo, por eso es que lo expongo.

Me gustaría saber como almacenar esto, evitando que se me crucen ordenes.

Pudiera ser un procedimiento almacenado, me podrá servir esto?
Cualquier idea es bienvenida.

Saludos
Responder Con Cita