![]() |
AW: Datenmodul alle Queries in einem schliessen
Zitat:
zur Not gehts eben mit Copy and Paste..aber ich wollte es etwas eleganter machen...
Delphi-Quellcode:
with IBQuery1 do
begin if transaction.InTransaction then transaction.Commit; end; with IBquery2 do begin if transaction.InTransaction then transaction.Commit; end; ......... |
AW: Datenmodul alle Queries in einem schliessen
Connection.Active nutzen wir im Designer auch öfters, z.B. um Grids einrichten zu können.
Aber wir haben solche Properties wenigstens auf
Delphi-Quellcode:
gesetzt und Dergleichen, damit es nicht ins kompilierte Programm durchrauscht.
stored False
Wir haben nahrzu alle Kompnenten abgeleitet, für eigene Erweiterungen, solche Anpassungen und zentrale Bugfixes. |
AW: Datenmodul alle Queries in einem schliessen
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:
Damit kannst du das in allen Datenmodulen verwenden...
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. |
AW: Datenmodul alle Queries in einem schliessen
Ich mache sowas im Loaded der Connection. Abfragen, ob cssdesigning im Componentstate, wenn nicht, dann das Connected auf False.
Sollte sich auch im Loaded des Datamodule machen lassen. |
AW: Datenmodul alle Queries in einem schliessen
Ich denke, die IBConnection hat eine Property.. sowas wie DesignTimeConnected oder so, da ging es wohl darum, dass man zur Designzeit die connection und die Transaktionen offen haben kann, aber in Runtime wird sie nicht geöffnet. Zumindest UniConnection hat sowas wohl...
EDIT: Sehe gerade, dass IBQuery ja nicht zu IBDAC gehört, die heissen TIBCQuery... von daher geht das dann wohl eher nicht... |
AW: Datenmodul alle Queries in einem schliessen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:51 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz