Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TADOQuery Daten manuell updaten (https://www.delphipraxis.net/193309-tadoquery-daten-manuell-updaten.html)

nahpets 24. Jul 2017 16:51

AW: TADOQuery Daten manuell updaten
 
Das OnRecordsetChangeComplete sieht so aus, als würde das ein Ereignis, dass nach dem Speichern aufgerufen wird, dürfte für Deine Aufgabenstellung also eher ausfallen.

Zeig' bitte mal den Quelltext zu Deinem Ereignis OnWillChangeRecord.

Mein erster Versuch würde ungefähr so aussehen:
Delphi-Quellcode:
procedure TForm1.ADOQuery1WillChangeRecord(DataSet: TCustomADODataSet;
  const Reason: TEventReason; const RecordCount: Integer;
  var EventStatus: TEventStatus);
begin
  ... hier die erforderlichen Änderungen "quer durch die Datenbank" machen

  EventStatus := esCancel; // Bricht hoffentlich das weiter Verarbeiten der Datenänderung ab.
end;

haentschman 25. Jul 2017 06:05

AW: TADOQuery Daten manuell updaten
 
Moin...:P
Ich wollte grad noch einen Vorschlag machen...
Zitat:

Wenn man keine datensensitiven Komponenten benutzt, hat man das Problem sicher nicht.
...genau. 8-) Die Daten können statt in Datasets in komplexen Objekten liegen. Die Anwendung arbeitet intern ausschließlich mit Objekten. Die Schnittstelle ist ein Datamodule, besser Interface, zur Datenbank. Da werden die Objekte wieder "zerlegt" und in einer Transaktion auf die verschieden Tabellen gespeichert. :thumb:
Zitat:

Das steht für mich aus Effektivitätsgründen aber nicht zur Debatte.
...könntest du das bitte erklären? Es ist ein Unterschied ob du das in einem Projekt mit 2Mio Zeilen oder du schnell fertig werden mußt. :wink:

Wenn du möchtest kann ich ein Minimalbeispiel machen.

p80286 25. Jul 2017 11:40

AW: TADOQuery Daten manuell updaten
 
Zitat:

Zitat von haentschman (Beitrag 1377370)
Die Daten können statt in Datasets in komplexen Objekten liegen. Die Anwendung arbeitet intern ausschließlich mit Objekten. Die Schnittstelle ist ein Datamodule, besser Interface, zur Datenbank. Da werden die Objekte wieder "zerlegt" und in einer Transaktion auf die verschieden Tabellen gespeichert. :thumb:

Das würde mich jetzt mal interessieren, oder hatten wir da nicht vor kurzem was zu?

Gruß
K-H

haentschman 25. Jul 2017 11:43

AW: TADOQuery Daten manuell updaten
 
Zitat:

hatten wir da nicht vor kurzem was zu
...das hatte ich einem Beitrag auch als Vorschlag. Ich mache mal ein Beispiel. Die Frage ist, wo hänge ich das an. :gruebel:

nahpets 25. Jul 2017 11:58

AW: TADOQuery Daten manuell updaten
 
Du sprichst das Thema häufiger an, mach doch "einfach" mal ein Tutorial dazu und stelle uns das unter Tutorials und Kurse zur Verfügung.

Es dürfte sicherlich viele interessieren, wie Du diese Aufgabe gelöst hast.

haentschman 25. Jul 2017 12:00

AW: TADOQuery Daten manuell updaten
 
Euer Wunsch ist mir Befehl... :P
Dann mache ich mich mal dran.

p80286 25. Jul 2017 12:03

AW: TADOQuery Daten manuell updaten
 
Danke!

K-H

Jumpy 25. Jul 2017 12:53

AW: TADOQuery Daten manuell updaten
 
Zitat:

Zitat von haentschman (Beitrag 1377370)
Die Daten können statt in Datasets in komplexen Objekten liegen. Die Anwendung arbeitet intern ausschließlich mit Objekten. Die Schnittstelle ist ein Datamodule, besser Interface, zur Datenbank. Da werden die Objekte wieder "zerlegt" und in einer Transaktion auf die verschieden Tabellen gespeichert. :thumb:

Das klingt jetzt ein bißchen nach einem eigenen ORM-Framework?
Bin auch mal gespannt wie du das umgesetzt hast.

haentschman 25. Jul 2017 12:59

AW: TADOQuery Daten manuell updaten
 
Zitat:

Das klingt jetzt ein bißchen nach einem eigenen ORM-Framework?
...nicht so spannend wie es aussieht. Im Prinzip ist es ein Mini-ORM genau nach meinen projektspezifischen Bedürfnissen ohne Overhead. (Stichwort: YAGNI – you ain’t gonna need it)

haentschman 27. Jul 2017 14:12

AW: TADOQuery Daten manuell updaten
 
Moin...:P

Das "Datenbank mit Objekten Tutorial" ist fertig. :thumb: Ich habe, für den Notfall, 3 Flaschen Baldrian auf dem Schreibtisch stehen... :stupid: Es kann nicht so schlimm werden. :zwinker:
http://www.delphipraxis.net/193418-%...datenbank.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz