Fórum IBX, como fechar todas as tabelas e transações ao mesmo temp #52856
19/09/2005
0
Uso IBX...
Grato
[color=green:8e55c82dbf]Movido de Delphi para Interbase/Firebird[/color:8e55c82dbf]
Marcos Fernando
Curtir tópico
+ 0Posts
20/09/2005
Wilson Brito
Ex:
IBDatabase1.Connected := False;
Gostei + 0
20/09/2005
Martins
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
20/09/2005
Marcos Fernando
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
20/09/2005
Paulo
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
20/09/2005
Gigatel
Gostei + 0
20/09/2005
Marcos Fernando
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
21/09/2005
Afarias
with IBDatabase do for i := 0 to Pred(TransactionCount) do if Transactions[i].InTransaction then Transactions[i].Commit;
T+
Gostei + 0
21/09/2005
Afarias
[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
Clique aqui para fazer login e interagir na Comunidade :)