Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TTable -> TDataSource -> Welche Zeile wurde geändert ? (https://www.delphipraxis.net/131141-ttable-tdatasource-welche-zeile-wurde-geaendert.html)

HolgerCW 19. Mär 2009 14:18

Datenbank: ORACLE • Version: 10 • Zugriff über: BDE

TTable -> TDataSource -> Welche Zeile wurde geändert ?
 
Hallo zusammen,

wie kann ich herrausfinden in welchen Zeilen der Spalte X sich in der TTable was geändert hat ?

Ich benutze dgEditing und beim Editieren der Spalte X soll quasi in Spalte Y in der editierten Zeile auch ein Wert reingeschrieben werden.

In welchem Ereignis der DataSource muss ich da ansetzen ?

Gruss

Holger

hoika 19. Mär 2009 19:28

Re: TTable -> TDataSource -> Welche Zeile wurde geände
 
Hallo,

schau dir mal OldValue / NewValue (TField) an.

Vor allem auch die Infos in der Hilfe dazu
(TClientDataSet, cached updates ...).


Heiko

HolgerCW 20. Mär 2009 13:45

Re: TTable -> TDataSource -> Welche Zeile wurde geände
 
Hallo habe es so probiert:

Delphi-Quellcode:
procedure TTableAW_FilterAfterPost(DataSet: TDataSet);
begin

 if TTableAW_Filter['SPALTE'].OldValue <> TTableAW_Filter['SPALTE'].NewValue then
 begin


  //Tue was.
 
 end;

end;
So klappt es leider nicht...

Hat wer eine andere Lösung ?

hoika 23. Mär 2009 07:06

Re: TTable -> TDataSource -> Welche Zeile wurde geände
 
Hallo,

hast du das in den Klammern gelesen ?

Falls du das nicht benutzt -> leider Pech gehabt ...

Such mal bei DOA (Direct Oracle Access), vielleicht haben die was dazu.


Heiko

sx2008 23. Mär 2009 07:17

Re: TTable -> TDataSource -> Welche Zeile wurde geände
 
OnBeforePost - OnAfterPost ist zu spät.
Delphi-Quellcode:
procedure TForm1.TableAW_FilterBeforePost(DataSet: TDataSet);
begin
  with Dataset.FieldByName('SPALTE') do
  begin
    if OldValue <> NewValue then
      ... // Tue was
  end;
end;

HolgerCW 25. Mär 2009 12:16

Re: TTable -> TDataSource -> Welche Zeile wurde geände
 
Die Sache von sx2008 funktioniert.

Nur muss man CachedUpdates auf TRUE setzen. Wenn ich dies aber tue, wird die Änderung nicht mehr auf der Datenbank durchgeführt. Warum ?

Muss ich den Cache dann nochmal extra irgendwie posten ?

Gruss

Holger

hoika 25. Mär 2009 14:32

Re: TTable -> TDataSource -> Welche Zeile wurde geände
 
Hallo,

schau dir das mal an.

http://podgoretsky.com/ftp/Docs/Delp.../11_cache.html


Heiko


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