AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DB-Felder automatisch aus Delphi befüllen
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Felder automatisch aus Delphi befüllen

Ein Thema von fragile · begonnen am 2. Dez 2008 · letzter Beitrag vom 4. Dez 2008
Antwort Antwort
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#1

DB-Felder automatisch aus Delphi befüllen

  Alt 2. Dez 2008, 10:26
Datenbank: MS SQL • Version: 2005 • Zugriff über: ADO
Hi,

wo wäre denn der zentralste Ansatzpunkt, wenn ich Felder wie "geändert am"/"geändert von" und "angelegt am"/"angelegt von"
automatisch bei jedem neuen Datensatz bzw. bei jeder Änderung befüllen/aktualisieren würde ?

Ich stehe ein bisschen auf Kriegsfuß mit dem Triggern von MS SQL, wäre dies dennoch die beste Lösung oder gibt es auch ein Delphi-Ereignis (z.b. in der DBConnection), was dafür geeignet wäre. Ich benutze in meiner Anwendung einen Type TUser (selbstdefinierter Record), um Infos über den Anwender zu speichern...

Gäbe es auch die Möglichkeit, über den DB-User in Ms SQL diese Änderungen automatisch in die jeweils dafür angelegten Felder einzutragen ?

Danke schonmal für Tipps&Tricks....
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 2. Dez 2008, 10:47
Ich nutze für diese Zwecke Delphi-seitig das Ereignis BeforePost, um die entsprechenden Felder zu füllen.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#3

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 2. Dez 2008, 13:20
Böte sich nicht auch ein Ereignis einer TADOConnection an, dann muss man das ganze nicht an zig Stellen bzw. Datenquellen (habe im Moment 12 Stück)implementieren...
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 2. Dez 2008, 14:03
Zitat von fragile:
Böte sich nicht auch ein Ereignis einer TADOConnection an, dann muss man das ganze nicht an zig Stellen bzw. Datenquellen (habe im Moment 12 Stück)implementieren...
Man kann (im einfachsten Fall) allen 12 Datasets die gleiche Ereignisbehandlungsroutine für BeforePost zuweisen.
Wenn die Feldnamen identisch sind, genügt

DataSet.FieldByName('CHANGED').AsDateTime := MyChangedTime;

damit ist es unabhängig von der konkreten Dataset-Instanz
Michael Justin
habarisoft.com
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#5

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 2. Dez 2008, 14:15
Zitat von mjustin:
Man kann (im einfachsten Fall) allen 12 Datasets die gleiche Ereignisbehandlungsroutine für BeforePost zuweisen.
Wenn die Feldnamen identisch sind, genügt

DataSet.FieldByName('CHANGED').AsDateTime := MyChangedTime;

damit ist es unabhängig von der konkreten Dataset-Instanz
Da würde ich lieber eine eigene Komponente davon ableiten und dieser Ableitung das 'AutoFeld' per Property zuweisen Vielleicht sogar gleich eine Liste mit Autofeldern und einem Flag, was in das Feld rein soll.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#6

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 4. Dez 2008, 09:28
Du meinst, eine neue Instanz von TADOCustomDataSet und diese dann bei jedweden Änderungen/Inserts aufrufen ?
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#7

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 4. Dez 2008, 09:57
Zitat von fragile:
Du meinst, eine neue Instanz von TADOCustomDataSet und diese dann bei jedweden Änderungen/Inserts aufrufen ?
TAdoTable und TAdoQuery ableiten und dort das Post überschreiben (ich weiß jetzt nicht, wie die internen Methoden dort lauten. Bei ADS wäre es InternalPost).
Delphi-Quellcode:
procedure TAdsTable.InternalPost
...
  FieldByName('zeit').asDateTime:=now();
  inherited;
...
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
MichaelP

Registriert seit: 6. Sep 2003
Ort: Hannover
38 Beiträge
 
Delphi 10 Seattle Architect
 
#8

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 4. Dez 2008, 10:05
Man kann diese Funktionalität auch in die Datenbank legen, und auf der Tabelle einen TRIGGER anlegen, dieser kann dann bei jeder Datensatrzänderung den neuen Zeitstempel und den DB-Benutzer eintragen.

Gruß
Michael

Grüße aus Hannover

Michael
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#9

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 4. Dez 2008, 10:17
Zitat von MichaelP:
Man kann diese Funktionalität auch in die Datenbank legen, und auf der Tabelle einen TRIGGER anlegen, dieser kann dann bei jeder Datensatrzänderung den neuen Zeitstempel und den DB-Benutzer eintragen.
Das wäre die bevorzugte Methode, aber nachdem der OP folgendes gleich in die Eröffnung schrieb:
Zitat:
Ich stehe ein bisschen auf Kriegsfuß mit dem Triggern von MS SQL, wäre dies dennoch die beste Lösung oder gibt es auch ein Delphi-Ereignis (z.b. in der DBConnection), was dafür geeignet wäre. Ich benutze in meiner Anwendung einen Type TUser (selbstdefinierter Record), um Infos über den Anwender zu speichern...
habe ich ihm auch nicht mehr dazu geraten
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Benutzerbild von fragile
fragile

Registriert seit: 4. Nov 2008
Ort: Amberg
87 Beiträge
 
Delphi 2009 Enterprise
 
#10

Re: DB-Felder automatisch aus Delphi befüllen

  Alt 4. Dez 2008, 11:35
hi,

mit Triggern kann es bei uns Probleme geben, da der in die Anwendung eingeloggte User nicht unbedingt dem DB-User entspricht....

Ich werde mal das Post überschreiben, so daß er mir Zeit/Benutzer immer miteinträgt...danke !
  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 20:44 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