Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Tabellen-Update nur auf bestimmte Spalten? (https://www.delphipraxis.net/15789-tabellen-update-nur-auf-bestimmte-spalten.html)

meggles 4. Feb 2004 10:05


Tabellen-Update nur auf bestimmte Spalten?
 
Hallo,
Ich habe ne Tabelle zum Speichern von Emails, mit 5 Spalten. (Die Tabelle speichert Ordner-ID, Datum etc... und in einem BLOB-Feld das IdMessage-Objekt).
Für diese Tabelle habe ich auch eine Update-Prozedur estellt, die alle Feldwerte entsprechend der Eingabeparameter aktualisiert (wenn ich z.B. auf "Email speichern" klicke)
An einer Stelle in meiner Anwendung möchte ich die Mail aber in den Papierkorb schieben, müsste also ebenfalls ein Update machen - das macht mit dieser Prozedur aber keinen Sinn, weil ich ja nur die Ordner-ID verändern will. Alle anderen Eingabeparameter werden von dieser Update-StoredProcedure aber als Eingabeparameter erwartet, ich müsste also für die Ordner-ID einen anderen Wert (=die ID vom Papierkorb) angeben, für die anderen vier Feldwerte aber die gleichen Werte, die ja eh schon in der Datenbank sind. Die müsste ich an dieser Stelle im Programm aber extra dafür auslesen.
Meine Frage: Lässt sich so eine Updateprozedur nicht irgendwie intelligenter schreiben (ich hab übrigens Interbase 7), so in der Art: "Ändere nur die Felder, für die ich Dir einen Wert gebe, alle anderen lass, so wie sie sind" ...?

Danke Euch gleich mal,

Simon

Robert_G 4. Feb 2004 10:11

Re: Tabellen-Update nur auf bestimmte Spalten?
 
Mit einer AdoQuery:
Delphi-Quellcode:
  With Query Do
  Begin
    SQL.Text :=
      'Update EmailTabelle t' + #10 +
      ' Set   OrdnerID = :i_NewOrdnerID' + #10 +
      'WHERE DeinPrimKey = :i_PrimKey';
    Prepared := True;
    Parameters.ParamByName('i_NewOrdnerID').Value := [NeuerWert];
    Parameters.ParamByName('i_PrimKey').Value := [Id_Der_Email];
    ExecSQL;
  End;
Warum eine Proz. in der DB für ein einzelnes UPDATE-Statement (lohnt sich auch bei allen Spalten nicht)?

meggles 4. Feb 2004 10:16

Re: Tabellen-Update nur auf bestimmte Spalten?
 
Ich dachte mir halt, dass es generell günstiger ist, wenn sowas den Server mit einer SP erledigen lässt. Aber es leuchtet auch ein, ein einzelnes UPDATE einfach vom Client abzusetzen.
Danke jedenfalls!!

Simon


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