RESOLVIDO - Bloquear registro para alterar valor.

Prezados e Prezadas.

Sei que o tema já possa ter sido comentado anteriormente no Fórum, mas não achei nada sobre esta matéria. Me perdoem se estarei sendo repetitivo.

Tenho uma tabela PARAMETROS, onde guardo algumas informações que preciso. Um dos campo é NR_CAIXA.
Pois bem, eu preciso bloquear este campo que tem um valor numérico, somar 1 e atualizar com o novo valor. Mas enquanto faço essa operação outro usuário não poderá faze-lo, pois iria dar problemas com numero da caixa igual.

Pergunto aos mais experientes, se seria melhor fazer através de um Trigguer ou se o Scriptcase tem um comando Tipo Lock() e Unlock() para controle deste update.

O banco é o Firebird.

Podem me dar uma orientação?

Obrigado

https://dev.mysql.com/doc/refman/5.7/en/lock-tables.html

Acho que você pode usar este recurso:
IN AUTONOMOUS TRANSACTION
seguem os links:
https://firebirdsql.org/refdocs/langrefupd25-psql-autonomous-trans.html
https://firebirdsql.org/file/documentation/release_notes/html/en/2_5/rnfb25-psql-auton.html
http://asfernandes.blogspot.com.br/2014/12/artigo-novidades-do-firebird-25.html

Se for usar o Firebird 3.0, já tem o Recurso:
create table objects (
id integer generated by default as identity primary key,
name varchar(15)
);
insert into objects (name) values (‘Table’);
insert into objects (name) values (‘Book’);
insert into objects (id, name) values (10, ‘Computer’);
select * from objects;
ID NAME
============ ===============
1 Table
2 Book
10 Computer

Agora nas versões anteriores usar:
https://www.kinghost.com.br/wiki/artigo/como-criar-autoincrement-no-firebird/

Prezados.

Obrigado pelo retorno.

Consegui resolver lendo um artigo do Firebird, onde ele junta o Generator. Seque a solucao para quem precisar.

create trigger biu_books
active before insert or update position 3
on books
as
begin
if (new.id is null)
then new.id = next value for gen_bookids;
end

Um grande abraço a todos.