Fórum StoredProcedure in use...porque? #283615

01/06/2005

0

Eaí galera!!...queria ver com vcs se alguém pode me esclarecer isso....

seguinte: estou utilizando Firebird 1.5.2 com IBExpert. Nele, tenho uma StoredProcedure que faz algumas atualizações em várias tabelas. Pois bem, no delphi, estou utilizando DBExpress. No componente StoredProc eu ligo minha storedprocedure, depois quando executo a aplicação e dou um ExecProc, a procedure é executada, atualiza as tabelas e não me retorna nenhum erro. Até aí ok, o que está me deixando confuso, é o fato de que: depois de executar a procedure, eu tento alterá-la no banco, mas recebo uma mensagem de que ela está em uso.....ela só fica livre depois que fecho a aplicação (quando a aplicação é desconectada do banco)...

estou executando a procedure da seguinte maneira no delphi:

...
var TD : TransactionDesc;
TD.TransactionID := 1;
TD.IsolationLevel := xilREADCommitted;
SQLConnection1.StartTransaction(TD);
try
StoredProc1.ExecProc;
ExecProc;
SQLConnection1.Commit(TD);
except
SQLConnection1.RollBack(TD);
end;

...outra coisa, andei testando e vi que mesmo que eu não coloque dessa forma acima, a procedure é executada da mesma forma. Fiz os testes com o SQLMonitor, e os comandos são executados da mesma maneira. Isso quer dizer que o comando acima não está interferindo em nada no modo em que o Firebird inicia a transação e comita?

vlw pessoal!!


Tchelllo

Tchelllo

Responder

Posts

01/06/2005

Decandido21

Adicione a linha abaixo no final de cada movimentacao fita com sua procedure

StoredProc1.SQLConnection.Connected := False;

Flw


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar