Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi auf neuen datensatz reagieren , ADO + MSSQL (https://www.delphipraxis.net/173166-auf-neuen-datensatz-reagieren-ado-mssql.html)

bernhard_LA 10. Feb 2013 19:15

Datenbank: mssql • Version: 2008 • Zugriff über: ado

auf neuen datensatz reagieren , ADO + MSSQL
 
ich habe auf einer Form: TDBGrid, TADOTable, TDBNavigator, TDatasource

mit welchem Ereignis kann ich am besten auf eine Änderung des aktiven Datensatz via DBNavigator oder im DBGRid regieren,
immer wenn ich den Datnsatz ändere sollen weitere Aktionen ausgeführtz werden

DeddyH 10. Feb 2013 19:24

AW: auf neuen datensatz reagieren , ADO + MSSQL
 
Meinst Du jetzt, wenn Du im Dataset zu einem anderen Datensatz navigierst? Dann würde ich spontan ADOTable.BeforeScroll oder AfterScroll vorschlagen. Meinst Du hingegen Datenänderung im aktiven Datensatz, dann wären das wohl AfterPost/BeforePost.

bernhard_LA 10. Feb 2013 20:31

AW: auf neuen datensatz reagieren , ADO + MSSQL
 
im Prinzip auf Beides, wenn der Benutzer den DB Navigator verwendet oder mit dem Cursor im DB Grid herumfährt ....

Furtbichler 10. Feb 2013 21:03

AW: auf neuen datensatz reagieren , ADO + MSSQL
 
Ich würde das abhängig davon machen, was das Event machen soll: Meist soll auf Bewegungen des Datensatzes in einer GUI reagiert werden.

Wenn nun mehrere Dialoge auf das Dataset zugreifen, aber nur ein bestimmter Dialog auf Änderungen reagieren soll, ist die von DeddyH vorgeschlagene Methode keine gute Wahl.

Ich packe immer eine TDataSource auf das Formular und installiere im Event 'OnDataChanged' eine entsprechende 'Datensatz-geändert' Logik. Das Event wird immer aufgerufen, wenn sich ein Feldinhalt ändert (Parameter 'Field' ist das veränderte Feld) oder wenn sich der Datensatzzeiger ändert (Parameter 'Field' ist nil).

Möchte ich dagegen immer auf Änderungen des Datensatzzeigers reagieren, dann ist die DeddyH-Methode richtig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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