AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Memofeld wer hats wann geändert

Ein Thema von baumina · begonnen am 16. Feb 2016 · letzter Beitrag vom 18. Feb 2016
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:10
Meist kennt die DB aus der Situzung den Usernamen (und die Zeit sowieso).
Damit kann man per insert/ update trigger die Daten stempeln, am besten in separaten Feldern, die der User nicht ändern kann.
Ansonsten den Stempel in das Memo eintragen und bewachen, das der Inhalt vor Änderung erhalten bleibt, also nur Ergänzungen möglich sind.
Gruß, Jo
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:12
Ansonsten den Stempel in das Memo eintragen und bewachen, das der Inhalt vor Änderung erhalten bleibt, also nur Ergänzungen möglich sind.
Ein ähnliches Problem haben wir bei uns auch mit einer ganz eigenen Software. Daten sollen nicht gelöscht sondern nur neue hinzugefügt werden können. Aber was passiert wenn sich der Benutzer mal verschreibt und etwas korrigieren muss?
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:16
Naja, ist halt die Frage ob es einfach und schnell umgesetzt werden soll oder etwas programmieraufwand drin stecken darf.
Die einfache Lösung ist schlicht, auch die Korrekturen stumpf zu ergänzen. Clientseitig: Ein freies Memo, das den neuen Inhalt aufnimmt, vorm Post dann ans DB Memo plus UserZeitStempel dran hängt (oder an den Anfang).
Komplexere Dinge müsste man mit Änderungshistorie umsetzen, notfalls plus separate Felder alter Wert / neuer Wert.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:18
Ja und wenn das Memo mal so lange geworden ist, dass der Ausdruck 3 Seiten Memo ausspuckt von Baugruppenänderungen, die 2003 mal gemacht wurden und wirklich niemanden mehr interessieren.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:22
Was mir dank euch gerade so in den Sinn gekommen ist, ich könnte ja bei Modified des Memofeldes einfach den Benutzernamen und das Datum hinten ins Memo reinknallen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:25
Grauslich aber sollte ja Quickndirty sein

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:25
Oh, das hört sich ja exakt so an wie etwas das bei mir schon seit Monaten auf dem Tisch liegt. Die Motivation ist hier auch einmal feststellen zu können wer es war, aber noch viel eher dass die Daten nicht weg kommen können. Nicht dass ein Memo nur immer länger werden darf, sondern dass die alten Daten nicht weg sind.

Grade das wäre doch bei deinem "Memo-Suffix" nicht mehr gegeben, oder?

Meine Husch-Husch-Lösung wäre sich in ein "BevorNeueDatenAbgeschicktWerden"-Event einzuklinken und den aktuellen Datensatz (als dumme Textdatei) irgendwo zentral abzulegen. Die kann ja noch den eingeloggten Benutzer enthalten, Uhrzeit und aktuelles Wetter. So muss sich die Datenbank-Struktur nicht ändern und man kann im Notfall alte Daten wieder herstellen, den Schuldigen finden und wenn einem der Speicher ausgeht alle redundanten Kopien älter als X Jahre löschen. Lohnt sich natürlich nur wenn so etwas nicht zum Standardfall wird.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 15:42
Halte ich für nicht so optimal.
Wenn Du DB-Inhalte als Datei irgendwo ablegst, kommt irgendwer bestimmt auf die Idee mal aufzuräumen oder der gegenteilige Fall, die irgendwo-Dateien überleben Deine DB um Jahre, weil man da nicht dran darf.
da schon lieber eine Tabelle AltMemos oder in der Memotabelle ein Feld mit der zugehörigen SatzID und eine Tabelle AktuelleSatzMemoVerknüpfung.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von rapante
rapante

Registriert seit: 3. Jun 2009
Ort: OPR
172 Beiträge
 
Delphi 12 Athens
 
#9

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 16:02
Ich habe das bei mir für eine MultiUser Kalender-Anwendung ebenfalls über einen DB-Trigger gelöst der bei Änderung den kompletten Datensatz in eine History-Tabelle kopiert.

table_x
Felder: id, .., createuser, createdate, changeuser, changedate;
table_x_history:
Felder: id,id_table_x .., createuser, createdate, changeuser, changedate;

So kann ich jede Änderung einem User zuordnen und keiner kann sich rausreden
Micha
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.352 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: DB-Memofeld wer hats wann geändert

  Alt 16. Feb 2016, 17:04
Würde es ähnlich wie rapante angehen.

Mehrere Memos als Detailtabelle mit Zeitstempel und UserNamen.
Der Admin darf alte Einträge löschen.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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