Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Formular Änderung erkennen (https://www.delphipraxis.net/118888-formular-aenderung-erkennen.html)

Overclocker 17. Aug 2008 10:00


Formular Änderung erkennen
 
Hi,

ich habe ein Formular mit ein paar Edit Feldern, 1 Image Feld und ein paar Drop Down Boxen, in welches ich Profile von Personen erfasse.

Jetzt würde ich gerne ein Logdatei erstellen, in der alle Änderungen samt Datum und Uhrzeit geführt werden.

z. B.

--> 17.08.2008 10:58:00 Uhr: Das Feld Name wurde geändert, neuer Wert: Testname


Meine Überlegung wäre, das ganze mit ner großen Anzahl an Variablen zu machen, sprich ich vergleich einfach die alten Variablen mit den neuen Werten beim Speichern.

Würde mit Sicherheit auch funktionieren, allerdings finde ich das so nicht schön.

Gibt es irgendeine Funktion / Procedure oder sonstiges, die eine Lösung dazu sein könnte?

Danke für die Hilfe

DeddyH 17. Aug 2008 10:17

Re: Formular Änderung erkennen
 
Du wirst die Werte ja wohl irgendwie per Code ändern. An der jeweiligen Stelle würde ich einfach eine (noch zu schreibende) Log-Prozedur aufrufen.

Overclocker 17. Aug 2008 11:48

Re: Formular Änderung erkennen
 
die Werte werden per Hand eingetragen (name,vorname usw....) und dann wird ein user angelegt.
beim ändern werden die änderungen einfach per SQL befehl Update in der datenbank verändert.

fkerber 17. Aug 2008 11:52

Re: Formular Änderung erkennen
 
Hi!

Zitat:

Zitat von Overclocker
beim ändern werden die änderungen einfach per SQL befehl Update in der datenbank verändert.

An der Stelle, an der du das machst, kannst du doch dann ansetzen und entsprechend auch "mitloggen", was du so verändert hast...


Ciao, Frederic

Overclocker 17. Aug 2008 11:54

Re: Formular Änderung erkennen
 
ja gut mitloggen was verändert wurde...
das ist ja mein problem.

WIE kann ich das mitloggen. wenn ich ein update an die DB schicke dann ändert er mir ja ALLE werte ab, sprich ich übergeb einfach ein update mit allen auszufüllenden feldern egal ob was verändert wurde oder nicht...

meine idee ist einfach das ganze mit variablen zu lösen (in die variablen kommen die alten werte rein), allerdings brauch ich da pro feld 1 variable zum vergleichen und das wollte ich eben vermeiden, deshalb dieser thread..

mkinzler 17. Aug 2008 12:01

Re: Formular Änderung erkennen
 
In der Datenbank stehen doch die alten, da ist es doch leichtz festzustellen ob die neuen sich davon unterscheiden

Overclocker 17. Aug 2008 12:10

Re: Formular Änderung erkennen
 
ja kommt dann auf die ähnliche idee raus mit meinen variablen (anstatt variablen halt die datenmengen vergleichen)

okay wenn es scheinbar nichts anderes gibt wird es wohl daraus hinaus laufen..

dachte es würde evtl sowas geben um zu überprüfen, wenn in edit feldern änderungen vorgenommen werden

aber ok trotzdem danke für die hilfe dann setz ich mich dann mal ran die log-file procedure :)

grenzgaenger 17. Aug 2008 12:13

Re: Formular Änderung erkennen
 
Hast du kein Datenbankobjekt, welches die Arbeit für dich machen könnte? Alle DB Operationen gehen über das Objekt, und es ist immer informiert wenn sich der inhalt ändert...

alternativ, ggf. 'n trigger bei bevor update, bevor delete, bevor insert

<HTH> GG

Overclocker 17. Aug 2008 12:16

Re: Formular Änderung erkennen
 
ne möchte das ganze ohne datenbankobjekte (# Stored Procedure,Triggers) oder ähnliches machen, da ich noch auf eine access db setze.

möchte später auf SQL umziehen und da sozusagen nur die tabellen rüberziehen und fertig, restliche funktionen, die sonst eine db evtl übernehmen könnte, lager ich in mein programm aus damit später die migration gut klappt und man zwischen der datenbankart auch leicht wählen kann (keine syntaxprobleme bei normalen befehlen)..

grenzgaenger 17. Aug 2008 12:21

Re: Formular Änderung erkennen
 
denke, du hast mich da falsch verstanden. ich hab z.b. zentrale datenbankobjekte (units) welche eine Abstraktionsebene zur datenbank darstellen. alle komponenten kommunizieren mit diesen objekten... nicht direkt mit der datenbank. wenn ich die datenbank austauschen möcht, brauch ich maximal die dbObjekte anzupassen :-)

aktuell verwende ich auch keine datensensitiven elemente, da sie mir einfach zu unflexibel sind. Über diesen weg, hab ich ein Maximum an flexibilität ... und einen zentralen punkt, falls sich die datenstruktur mal ändern sollte. da brauch ich mich nicht durch z.b. 50 oder mehr formulare und ggf. auch noch persistenten eigenschaften durch quälen ...

Overclocker 17. Aug 2008 12:30

Re: Formular Änderung erkennen
 
puh glaube das ist zu viel für mich lol.
also als objekte nutze ich die ADO komponenten aber sonst nichts (keine speziell erstellten units oder ähnliches)...
und da das ganze ja nur über ein command-objekt geht hat dieses objekt die daten logischerweise auch nicht weil es ja nur operationen ausführt und nichts zurückgibt :gruebel:


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