![]() |
AW: Werte in einem Datenbankfeld prüfen?
Zitat:
|
AW: Werte in einem Datenbankfeld prüfen?
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, Parent ist ein Fremdschlüssel auf den Primärschlüssel der Mastertabelle.
[edit] Hab mal ein Bild angehangen [/edit] |
AW: Werte in einem Datenbankfeld prüfen?
Vielen Dank für dieses Bild!
Noch eine Frage dazu: ab und zu werden die Datensätze aktuallisiert. Die Zahlenwerte werden in der Regel auch geändert, einige neue Werte kommen dazu und einige fallen weg. Bisher musste ich einfach den neuen Inhalt mit kommagertrennten Zahlenwerten eintragen und das war's auch. Wie mache ich das am besten, wenn ich die Werte in einer separaten Tabelle ablege? Soll ich beim Aktuallisieren alle zugehörige Werte aus Detailstabelle entfernen und dann die neue eintragen, oder gibt es eine elegantere Methode? |
AW: Werte in einem Datenbankfeld prüfen?
Bei den zu löschenden ist es ja klar. Für neue oder zu aktualisierende Datensätze bietet sich die UPDATE OR INSERT INTO-Syntax an (das ist allerdings eine Firebird-Spezialität, ob MSSQL etwas ähnliches auch bietet, entzieht sich meiner Kenntnis). Dazu ist es aber wahrscheinlich etwas einfacher, der Detailtabelle einen künstlichen Primärschlüssel zu spendieren und die Kombination der anderen beiden Felder als UNIQUE zu definieren.
|
AW: Werte in einem Datenbankfeld prüfen?
Zitat:
|
AW: Werte in einem Datenbankfeld prüfen?
Zitat:
Wichtig hierbei ist aber auf jeden Fall das Übertragen innerhalb einer Transaktion durchzuführen.
Delphi-Quellcode:
Alternativ zum Löschen und wieder komplett schreiben kann man auch mit einer temporären Tabelle arbeiten.
ADOConnection1.BeginTrans; // Transaktion starten
{... Daten zur Datenbank übertragen ...} ADOConnection1.Commit; // Transaktion abschließen In diese trägt man alle Daten ein und macht dann den Abgleich mit SQL. Dieses ist wesentlich ressourcenschonender, da hierbei nur die Veränderungen in der Tabelle gespeichert/gelöscht werden. Die Transaktion bleibt aber auch hierbei Pflicht. |
AW: Werte in einem Datenbankfeld prüfen?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz