[firebase-br] Transação + Stored Procedure

Daisson daisson em gmail.com
Qua Ago 9 10:19:59 -03 2006


Carlos H. Cantu (TeamFB) escreveu:

> Não é possível GERENCIAR transações de dentro de SPs e Triggers. Isso
> deve ser feito na aplicação que disparou a SP ou o trigger.
> 
> Cantu (Membro do TeamFB - FireBase)

Muito obrigado Cantu. Estou com um grande problema, vou tentar explicar
abaixo.

Na empresa onde trabalho temos um sistema que usa DBX (Delphi 6) para
conexão com o banco de dados. Como driver usamos o da UIB (porém eu não
instalei o driver no Delphi, somente usamos a DLL).

Esse sistema é para funcionar utilizando multi bancos, então temos um
método para buscar o valor de um campo PK (esse método é equivalente a
um Generator). Porém, ultimamente estamos um grande problema. Porque
temos clientes com vários usuários utilizando o sistema. Mais
especificamente, alguns usuários lançando notas de Entradas, outros
usuários lançando nostas de Saída e, mais alguns usuários fazendo
lançamentos contábeis.

Tanto no formulário de Entradas quanto no de Saídas, é gerado N
lançamentos contábeis automaticamente, conforme a nota que o usuário
esta lançamento.

Na tabela do Diário temos o campo IDDIARIO (PK) que recebe seu valor
através do método que mecionei acima. Porém, como temos usuários
solicitando valor pro campo IDDIARIO a todo momento, ocorre erro de
quebra de PK. Possivelmente porque o ID solicitado pelo usuário
lançando Entradas acabou sendo usado pelo usuário que esta fazendo
lançamentos contábeis, entende ?

Sei que no Firebird eu posso travar um registro, através dos parâmetros
WAIT/NO WAIT quando inicio a transação. Só que com DBX eu não sei onde
indico que para tal transação é necessário travar o registro.

Pro pessoal que usa o Driver da UIB, é possível indicar ao Driver que
para a transação X o modo é WAIT ?

Muito obrigado.
-- 
Daisson





Mais detalhes sobre a lista de discussão lista