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!!
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
Curtir tópico
+ 0
Responder
Posts
01/06/2005
Decandido21
Adicione a linha abaixo no final de cada movimentacao fita com sua procedure
StoredProc1.SQLConnection.Connected := False;
Flw
StoredProc1.SQLConnection.Connected := False;
Flw
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)