Einzelnen Beitrag anzeigen

josef-b

Registriert seit: 6. Jun 2004
Ort: bei Jena in Thüringen
95 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Datenmodul alle Queries in einem schliessen

  Alt 29. Nov 2022, 10:04
Nur ein Lösungsansatz:

Das Datenmodul
Delphi-Quellcode:
unit DM_Datenmodul;

interface

uses
  System.SysUtils, System.Classes, Dm.Helper{helper - CommitAllTransactions};

type
  TDatenModul = class(TDataModule)
  public
    procedure AfterConstruction; override;
  end;

var
  Datenmodul: TDatenModul;

implementation

{%CLASSGROUP 'Vcl.Controls.TControl'}

{$R *.dfm}

{Hier sind alle Objekte erzeugt}
procedure TDatenModul.AfterConstruction;
begin
  inherited;
  CommitAllTransactions;
end;

end.

Eigene unit für die helper class
Delphi-Quellcode:
unit Dm.Helper;

interface

uses
  System.Classes, IBX.KeineAhnung;

type
  TDataModuleHelper = class helper for TDataModule
  public
    procedure CommitAllTransactions;
  end;

implementation

procedure TDataModuleHelper.CommitAllTransactions;
Var
  I: Integer;
  AQuery: TIBQuery;
begin
  for I := 0 to ComponentCount - 1 do
  begin
    if (Components[i] is TIBQuery) then
    begin
      AQuery := (Components[i] as TIBQuery);
      if AQuery.Transaction.InTransaction then
        AQuery.Transaction.Commit;
    end;
  end;
end;

end.
Damit kannst du das in allen Datenmodulen verwenden...
Ich habe das jetzt genauso gemacht. Läuft prima. Vielen Dank dafür..
  Mit Zitat antworten Zitat