StoredProcedure in use...porque?
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!!
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
Curtidas 0
Respostas
Decandido21
01/06/2005
Adicione a linha abaixo no final de cada movimentacao fita com sua procedure
StoredProc1.SQLConnection.Connected := False;
Flw
StoredProc1.SQLConnection.Connected := False;
Flw
GOSTEI 0