Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Update mit Datum versehen bei einer Stored Procedure (https://www.delphipraxis.net/147689-update-mit-datum-versehen-bei-einer-stored-procedure.html)

Dumpfbacke 14. Feb 2010 07:47

Datenbank: Interbase • Version: 6.01 • Zugriff über: IBX

Update mit Datum versehen bei einer Stored Procedure
 
Hallo liebe Leute,
ich habe eine Stored Procedure mit der ich unter andrem etliche Datensätze in der DB updaten muß.
Hier mal ein Teil der Procedure

Delphi-Quellcode:
begin
    update Material
      set Auftrag = :Auftrag, MaterialNr = :MaterialNr,
          Material = :Material, AnzahlSoll = :AnzahlSoll, AnzahlIst = :AnzahlIst,
          Aktualisierung = :Aktualisierung, KostenPlan = :KostenPlan, KostenIst = :Kostenist
       where (Auftrag = :Auftrag) and (MaterialNr = :MaterialNr) ;
  end
Jetzt möchte ich gene in einem Feld der Datenbank ein Datum setzten, wenn sich mindestens ein Wert im Datensatz ändert. Geht so etwas und wenn ja wie bitte.

:gruebel:

Danke Dumpfbacke

scrat1979 14. Feb 2010 08:00

Re: Update mit Datum versehen bei einer Stored Procedure
 
Geht das nicht mit

Delphi-Quellcode:
XYZQuery.ExecSQL;
ShowMessage (IntToStr(XZYQuery.RowsAffected));
hat meine kurze Recherche bei Google ergeben. Vielleicht funktioniert es ja :)

SCRaT


*EDIT*
Habe gerade gesehen, dass du das Datensatzspezifisch haben möchtest. Argh! Da bin ich überfragt...

sx2008 14. Feb 2010 08:18

Re: Update mit Datum versehen bei einer Stored Procedure
 
SQL-Code:
begin
    update Material
      set Auftrag = :Auftrag, MaterialNr = :MaterialNr,
          Material = :Material, AnzahlSoll = :AnzahlSoll, AnzahlIst = :AnzahlIst,
          Aktualisierung = :Aktualisierung, KostenPlan = :KostenPlan, KostenIst = :Kostenist,
          LastUpdate=cast('now' as DATE)
       where (Auftrag = :Auftrag) and (MaterialNr = :MaterialNr) ;
end

Dumpfbacke 14. Feb 2010 08:42

Re: Update mit Datum versehen bei einer Stored Procedure
 
Zitat:

Zitat von sx2008
SQL-Code:
begin
    update Material
      set Auftrag = :Auftrag, MaterialNr = :MaterialNr,
          Material = :Material, AnzahlSoll = :AnzahlSoll, AnzahlIst = :AnzahlIst,
          Aktualisierung = :Aktualisierung, KostenPlan = :KostenPlan, KostenIst = :Kostenist,
          LastUpdate=cast('now' as DATE)
       where (Auftrag = :Auftrag) and (MaterialNr = :MaterialNr) ;
end

Jeder Datensatz wird immer geupatet auch wenn sich nichts ändert. Ich möchte das Datum nur dann setzten, wenn sich bei den Werten AnzahlSoll,AnzahlIst,KostenPlan, KostenIst etwas an den Werten verändert hat.

Dumpfbacke

mkinzler 14. Feb 2010 09:08

Re: Update mit Datum versehen bei einer Stored Procedure
 
Das würde ich in einem Trigger machen. Dort hat man die Kontexe OLD und NEW und kann einfach vergleichen und das Datumsfeld, welches im ursprünglichen UPDATE nicht gesetzt wird entsprechend setzen


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