Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat. (https://www.delphipraxis.net/178679-rausfinden-ob-der-user-z-b-einem-dbedit-feld-geaendert-hat.html)

DelTurbo 21. Jan 2014 10:26

Datenbank: MYSql • Version: 5.x • Zugriff über: MyDac

Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Hi,
ich versuche seit einiger zeit rauszufinden ob ein Datensatz "irgendwo" Editiert wurde. Ich finde aber weder in der DataSource noch im Query etwas. Das einzige was ich gefunden habe ist ein TRzDBStateStatus was das anzeigt.

Darum denke ich, das muss ja wohl irgendwie gehen, ohne das ich mich in zig Feldern in das OnChange reinhängen muss. Aber leider finde ich das nicht.

Danke im voraus

Uwe Raabe 21. Jan 2014 10:27

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Ein TDataSet hat ein Modified-Property.

DelTurbo 21. Jan 2014 10:30

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Uff, vielen dank. Ich habe nach allem möglichen gesucht (Updated,IsChanged usw.). Nur nicht danach.

Einen OnEvent scheint es aber nicht zu geben, oder?

baumina 21. Jan 2014 10:32

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Aber Achtung, das Modified wird erst gesetzt wenn das editierte DBEdit den Fokus verliert.

DelTurbo 21. Jan 2014 10:34

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Zitat:

Zitat von baumina (Beitrag 1244660)
Aber Achtung, das Modified wird erst gesetzt wenn das editierte DBEdit den Fokus verliert.

Habe ich grade gemerkt....

DelTurbo 21. Jan 2014 10:52

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Ich finde leider weder einen OnEvent, noch wie ich z.b. JvDBStatusLabel in einem Timer abfragen könnte ob sich was geändert hat.

JvDBStatusLabel springt sofort, ohne das sich der focus ändern muss, auf Query: Edit.

Aber auch da gibt es keinen Event. Gibt es da wirklich nur das eine Flag?

EDIT:
Ich habs. Das Flag frage ich in einem Timer ab. Klappt wunderbar. Ändert sich SOFORT.

DataSource.State=dsEdit

himitsu 21. Jan 2014 10:57

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Einige DBKomponenten besitzen irgendwo eine Einstellung, ob Änderungen sofort oder z.B. beim OnExit an das DataSet übergeben werden sollen.

Notfalls könnte man auch den Fokus umsetzen, bevor man prüft.



Du könntest im OnBevorEdit den/die alten Inhalte speichern/kopieren.
Und dann
Delphi-Quellcode:
IsEdit and (Kopie <> Aktuell)

DelTurbo 21. Jan 2014 11:03

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Mir ging es eben darum den "SaveButton" zu Enablen. Das klappt mit der Timerabfrage einwandfrei.

Trotzdem danke für den hinweis. Das State-Flag geht z.b. nicht "zurück" wenn man die änderung rückgängig macht. Da könnte dann dein´s greifen.

Uwe Raabe 21. Jan 2014 11:06

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
Zitat:

Zitat von DelTurbo (Beitrag 1244666)
Mir ging es eben darum den "SaveButton" zu Enablen. Das klappt mit der Timerabfrage einwandfrei.

Normalerweise macht man das auch mit Actions und dort im OnUpdate-Event. Es gibt sogar Standard-Actions für DataSets.

EarlyBird 21. Jan 2014 11:48

AW: Rausfinden ob der User z.b. in einem DBEdit feld was geändert hat.
 
im Datasource gibt es doch das onDatachange Event
da kannst du einfach den Status prüfen

Delphi-Quellcode:
Button1.Enabled := DataSource1.State in [dsedit, dsinsert];


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 Uhr.
Seite 1 von 2  1 2      

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