Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage, wenn anderer Datensatz in DBGrid (https://www.delphipraxis.net/5473-abfrage-wenn-anderer-datensatz-dbgrid.html)

Gambit 8. Jun 2003 06:15


Abfrage, wenn anderer Datensatz in DBGrid
 
Hallo!

Wenn ich einen neuen Datensatz anlege oder einen bestehenden Datensatz editieren möchte, werden bei meiner DB zwei Button aktiviert, Speichern oder Verwerfen. Wenn ich in diesem Zustand auf einen anderen Datensatz wechsele und dann auf einen dieser Button klicke, kommt eine Exception mit der Fehlermeldung "Datenmenge weder im Editier noch im Einfügemodus".
Das ist ja auch richtig so und ich verhindere das bei meinen Navigationsbuttons durch eine Abfrage, ob man die Änderungen speichern möchte. Wenn ich aber den Datensatz in der DBGrid ändere, geht dieses nicht, weil ich nicht wüsste, an welcher Stelle man diese Abfrage dann einbauen könnte.
Ich hab im Moment das Problem so gelöst, dass die DBGrid disabled wird, solange man nicht gespeichert oder verworfen hat, das gefällt mir aber nicht so richtig, lieber wäre mir, wenn hier auch eine Abfrage käme.

Hoffe, ich hab mich einigermaßen verständlich ausgedrückt und vielleicht gibts ja ne Lösung.

Grüße und frohes Pfingstfest

Gambit

MrSpock 8. Jun 2003 10:01

Hallo Gambit,

die Komponente TDataSource stellt die beiden Ereignisse OnDataChange und OnStateChange zur Verfügung, die sollten die weiterhelfen.

Gambit 8. Jun 2003 10:14

Also OnDataChange geht schon mal nicht, weil das ja auch schon eintritt, wenn ich ein Feld editiere. Der User soll ja erst freundlich auf sein Vergessen, das Editieren oder Neuanlegen eines Datensatzes mit Speichern oder Verwerfen abzuschließen, hingewiesen werden, wenn er in diesem Modus auf die Idee kommt, den Datensatz zu wechseln. Das kann ich eben bei meinen selbstgestrickten Buttons o.ä leicht realisieren, nur beim DBGrid hauts nicht hin.


Gruß

Gambit

MrSpock 8. Jun 2003 10:44

Hallo Gambit,
das BeforeScroll Event des TTable Objekts zeigt dir an, das weitergeblättert werden soll. Und der "State" der TDataSource Komponente in welchem Zustand sich die Tabelle gerade befindet. Frage also State in BeforeSroll ab und frage den Nutzer, was er mit dem Datensatz machen will.

Gambit 8. Jun 2003 11:06

Danke, das würde bestimmt gehen, ich habe nur leider kein TTable Objekt, weil ich mir gedacht hatte, mit einem TQuery Objekt fällt es mir leichter Suchfunktionen u.ä zu implementieren.

Gruß

Gambit

Gambit 8. Jun 2003 11:08

Hmm, das scheint da aber auch zu gehen...

Gambit


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:51 Uhr.

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