Fórum Duvida no datamodule + evento #422169

22/08/2012

0

em um datamodule tenho varios DataSetProvider, gostaria de usar o evento onupdateerror de todos colocando a seguinte instrucao: raise Exception.Create(e.Message);

Mas colocar isso em todos da mt trabalho, sera que consigo uma maneira de colocar uma unica instrucao para todos os DataSetProvider que estou dentro do datamodule ?

Abs e obrigado
Felipe Ip

Felipe Ip

Responder

Posts

22/08/2012

William

Colega acredito que como são vários componentes, vc teria que inserir um à um.

Se fosse Orientado à Objetos, vc poderia criar uma classe(TMeuDataSetProvider) que descende de TDataSetProvider e acrescentar esse código no respectivo evento, depois seria só instanciar sub-classes descendentes de TMeuDataSetProvider.
Responder

Gostei + 0

22/08/2012

Marco Salles

em um datamodule tenho varios DataSetProvider, gostaria de usar o evento onupdateerror de todos colocando a seguinte instrucao: raise Exception.Create(e.Message);

Mas colocar isso em todos da mt trabalho, sera que consigo uma maneira de colocar uma unica instrucao para todos os DataSetProvider que estou dentro do datamodule ?

Abs e obrigado


Vc faz o seguinte

na secção private do seu DataModulo ou container vc define a procedure

  private
    { Private declarations }
    procedure DataSetProviderUpdateError(Sender: TObject;
  DataSet: TCustomClientDataSet; E: EUpdateError; UpdateKind: TUpdateKind;
  var Response: TResolverResponse);


Na secção Implementation vc define

procedure TDataModule3.DataSetProviderUpdateError(Sender: TObject;
  DataSet: TCustomClientDataSet; E: EUpdateError; UpdateKind: TUpdateKind;
  var Response: TResolverResponse);
begin
raise Exception.Create(e.Message);
end;


No evento Oncreate do seu datamodulo ou container vc escreve

procedure TDataModule3.DataModuleCreate(Sender: TObject);
var
Dsp:TComponent;
begin
for Dsp in self do
 if Dsp.ClassNameIs('TDatasetProvider') then
   TDatasetProvider(Dsp).OnUpdateError:= DataSetProviderUpdateError;
end;


[]sds
Responder

Gostei + 0

22/08/2012

Felipe Ip

Marcos, mais uma vez mt obrigado, era isso mesmo, eu havia visto esse codigo em algum lugar, mas nao conseguia lembrar, perfeito.

Abs
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar