Asi es exactamente como lo tengo desarrollado.
El código se ejecutada de la siguiente manera:
Se presiona el button para una nueva orden.
El codigo del botton es asi:
Código Delphi
[-]
begin
ibtransaction1.active:=true;
ibsql1.close;
ibsql1.sql.add('insert into compras (fecha, usuario) values (current_date, :usuario)');
ibsql1.parambyname('usuario').asstring := usuario; ibsql1.execquery,
ibtransaction1.commit;
ibquery1.close;
ibquery1.sql.clear;
ibquery1.sql.add('select max(noc) noc from compras');
ibquery1.open;
noc := ibquery1.fieldbyname('noc').asinteger;
end;
El campo NOC es autoincremental, pero al parecer cuando 2 usuarios tratan de realziar una nueva orden se duplicada los numeros y no entiendo bien que es lo que ocurre.
Es por eso que me dirijo a usted para resolver esto, o mejor aún una mejor forma de realizar esto.
Como lo haría usted??
Espero me puedan ayudar.