IBX, como fechar todas as tabelas e transações ao mesmo temp
Boa noite o titlo já diz tudo,como fechar todas as tabelas e transações ao mesmo tempo....
Uso IBX...
Grato
[color=green:8e55c82dbf]Movido de Delphi para Interbase/Firebird[/color:8e55c82dbf]
Uso IBX...
Grato
[color=green:8e55c82dbf]Movido de Delphi para Interbase/Firebird[/color:8e55c82dbf]
Marcos Fernando
Curtidas 0
Respostas
Wilson Brito
19/09/2005
Desconecte a Database.
Ex:
Ex:
IBDatabase1.Connected := False;
GOSTEI 0
Martins
19/09/2005
Desconecte a Database.
Ex:
IBDatabase1.Connected := False;
Pode ser, mas lembre-se sempre de só abrir as tabelas quando for utilizá-las, e após utilizar fechá-las, não tem necessidade de deixar tabelas q não serão utilizadas por determinado procedimento abertas, já imaginou 20 tabelas em um DataModule, todas marcadas com o [b:61515e35d7]Active = True[/b:61515e35d7] ainda em tempo de projeto, o programa vai ser carregado com todas as tabelas abertas, não é uma boa prática, além de aumentar consideravelmente o índice de corrupções de sua base. Vai utilizar um procedimento de vendas, vai precisar da TbProdutos, TbClientes, abra apenas quando for chamar o procedimento, logo em seguida torne a fechar as tabelas.
Bom desenvolvimento!!!
GOSTEI 0
Marcos Fernando
19/09/2005
Como o nosso amigo [b:0bdcff37c6]wilsondrb[/b:0bdcff37c6] declarou eu uso, sempre abro e fecho as tabelas de acordo com a necessidade, nunca deixo nanda aberto quando não utilizo..
por isso que procuro uma maneira facil de fechar todas as tabelas e transações,
Nosso amigo [b:0bdcff37c6]Martins [/b:0bdcff37c6]declarou pra mim fechar a database toda ves, pode ser mais ai não vai demorar mais porque toda ves terei que fazer a conexão com a base novamente???
alguém faz diferente?
por isso que procuro uma maneira facil de fechar todas as tabelas e transações,
Nosso amigo [b:0bdcff37c6]Martins [/b:0bdcff37c6]declarou pra mim fechar a database toda ves, pode ser mais ai não vai demorar mais porque toda ves terei que fazer a conexão com a base novamente???
alguém faz diferente?
GOSTEI 0
Paulo
19/09/2005
var
i:integer;
begin
with DataModule2 do begin
for i:= 0 to ComponentCount-1 do begin
if (Components[i]).ClassName = ´TIBQuery´ then
TIBQuery(Components[i]).Active:=False;
end;
end;
end;
Só não se esqueça de adicionar a unit IBQuery ou qquer outra referente a classe dos componentes referenciado em cada formulário onde terá a rotina acima.
GOSTEI 0
Gigatel
19/09/2005
Eu faço assim ( apesar de ser duramente criticado pelo método.. ) tenho um tada módule onde fica o IBDatabase e IBTransaction somente isto.. ligo as tabelas as elas em seu próprio form..ou seja Cadastro de clientes...lá só tem a tabela clientes e mais alguma que nescessitar..quando inicializo o form ele ativa as tabelas e quando sai desliga..ou seja o banco de dados só estará funcionando quando for requisitado..no prescesso de insert ou exclusão dou Commit no IBTransaction e pronto...tudo funcionando as mil maravilhas...t+ e valew,,
GOSTEI 0
Marcos Fernando
19/09/2005
Grato amigos usei a dica do PAULO:
fiz assim:
var
i:integer;
begin
with dmdados do begin
// fecha TTIBQuery
for i:= 0 to ComponentCount-1 do begin
if (Components[i]).ClassName = ´TIBQuery´ then
TIBQuery(Components[i]).Active:=False;
end; //fim TIBQuery
// fecha TIBDataSet
for i:= 0 to ComponentCount-1 do begin
if (Components[i]).ClassName = ´TIBDataSet´ then
TIBDataSet(Components[i]).Active:=False;
end; //fim TIBDataSet
// fecha TIBTransaction
for i:= 0 to ComponentCount-1 do begin
if (Components[i]).ClassName = ´TIBTransaction´ then
TIBTransaction(Components[i]).Active:=False;
end; //TIBTransaction
end;
end;
Se alguém tiver alguma recomendação as ordens
Thanks
fiz assim:
var
i:integer;
begin
with dmdados do begin
// fecha TTIBQuery
for i:= 0 to ComponentCount-1 do begin
if (Components[i]).ClassName = ´TIBQuery´ then
TIBQuery(Components[i]).Active:=False;
end; //fim TIBQuery
// fecha TIBDataSet
for i:= 0 to ComponentCount-1 do begin
if (Components[i]).ClassName = ´TIBDataSet´ then
TIBDataSet(Components[i]).Active:=False;
end; //fim TIBDataSet
// fecha TIBTransaction
for i:= 0 to ComponentCount-1 do begin
if (Components[i]).ClassName = ´TIBTransaction´ then
TIBTransaction(Components[i]).Active:=False;
end; //TIBTransaction
end;
end;
Se alguém tiver alguma recomendação as ordens
Thanks
GOSTEI 0
Afarias
19/09/2005
with IBDatabase do for i := 0 to Pred(TransactionCount) do if Transactions[i].InTransaction then Transactions[i].Commit;
T+
GOSTEI 0
Afarias
19/09/2005
outra forma é usar:
[b:a375241161]IBDatabase.CloseDataSets;[/b:a375241161]
mas as transações só serão fechadas se estiverem configuradas com a propriedade [b:a375241161]AutoStopAction[/b:a375241161] diferente de [b:a375241161]saNone[/b:a375241161]
T+
[b:a375241161]IBDatabase.CloseDataSets;[/b:a375241161]
mas as transações só serão fechadas se estiverem configuradas com a propriedade [b:a375241161]AutoStopAction[/b:a375241161] diferente de [b:a375241161]saNone[/b:a375241161]
T+
GOSTEI 0