Fórum Clientdataset #23750
09/03/2010
0
Boa tarde
Gostaria de Saber se existe algum comando para fechar todos os clientdataset do sistema.
Por exemplo para colocar esse comando no onclose d um form e entao fechar todos datsets do sistema.
obrigado!!
Marcio Vergani
Curtir tópico
+ 0
Responder
Posts
09/03/2010
Jordelino Santos
Eu uso essa procedure abaixo:
procedure TLib001.prFechaComponentes(_rForm: TForm);
var
_rintCount : Integer;
begin
//No FormClose Lib001.prFechaComponentes(Formxxxxx);
for _rintCount := 1 to Pred(_rForm.ComponentCount) do
begin
if _rForm.Components[_rintCount].ClassType = TClientDataSet then
begin
if not(TClientDataSet(_rForm.Components[_rintCount]).IsEmpty) then
begin
TClientDataSet(_rForm.Components[_rintCount]).EmptyDataSet;
end;
end;
if _rForm.Components[_rintCount].ClassType = TQuery then
begin
TQuery(_rForm.Components[_rintCount]).Close;
end;
end;
end;
procedure TLib001.prFechaComponentes(_rForm: TForm);
var
_rintCount : Integer;
begin
//No FormClose Lib001.prFechaComponentes(Formxxxxx);
for _rintCount := 1 to Pred(_rForm.ComponentCount) do
begin
if _rForm.Components[_rintCount].ClassType = TClientDataSet then
begin
if not(TClientDataSet(_rForm.Components[_rintCount]).IsEmpty) then
begin
TClientDataSet(_rForm.Components[_rintCount]).EmptyDataSet;
end;
end;
if _rForm.Components[_rintCount].ClassType = TQuery then
begin
TQuery(_rForm.Components[_rintCount]).Close;
end;
end;
end;
Responder
Gostei + 0
09/03/2010
Fábio Cruz
Boa tarde
Gostaria de Saber se existe algum comando para fechar todos os clientdataset do sistema.
Por exemplo para colocar esse comando no onclose d um form e entao fechar todos datsets do sistema.
obrigado!!
Faz um FOR varrendo os componentes do form, se for ClientDataSet, fecha.
não tenho delphi aqui, mas acredito que seria basicamente isso:
For I := 0 to Pred(ComponentsCount) do begin if (Components[I] is TClientDataSet) then (Components[I] as TClientDataSet).Close; end;
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)