Delphi-PRAXiS :: Das Forum für Fragen zu Delphi
Das Experten Forum für Delphi Programmierer
Hilfe für CodeGear Delphi gibts es hier im Forum
Delphi Quelltexte und Source Codes
 
Delphi-PRAXiS :: Foren-ÜbersichtForen-Übersicht Delphi-PRAXiS Modul-ÜbersichtSite-Map Delphi-PRAXiS durchsuchenSuchen Delphi-PRAXiS Code-LibraryCode-Library Jetzt registrieren!Registrieren Login  
   
 
0
 
Delphi für Win32
DB-Felder automatisch aus Delphi befüllen
Ein Delphi (Win32)-Thema von fragile.

Vorheriges Thema anzeigen  |  Nächstes Thema anzeigen
Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
Delphi-PRAXiS Forum - Übersicht -> Datenbanken
Seite 1 von 1   [ 10 Beiträge ]  
 
 Autor 
 Nachricht 
 
fragile #1|Beitrag #971497Verfasst am: 02.12.2008, 10:26      Titel: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Alter: 36
Status: offline
Beiträge: 87
angemeldet: 04.11.2008
Wohnort: Amberg
Delphi 2009 Enterprise

Sprache: Delphi (Win32)
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....
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
mikhal #2|Beitrag #971511Verfasst am: 02.12.2008, 10:47      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Alter: 53
Status: offline
Beiträge: 573
angemeldet: 11.09.2003
Wohnort: Linz am Rhein
RAD-Studio 2009 Pro

Ich nutze für diese Zwecke Delphi-seitig das Ereignis BeforePost, um die entsprechenden Felder zu füllen.

Grüße
Mikhal

Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
mein Blog: http://michaelkraemer.wordpress.com
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
fragile #3|Beitrag #971555Verfasst am: 02.12.2008, 13:20      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Alter: 36
Status: offline
Beiträge: 87
angemeldet: 04.11.2008
Wohnort: Amberg
Delphi 2009 Enterprise

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...
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
mjustin #4|Beitrag #971578Verfasst am: 02.12.2008, 14:03      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
aktives Mitglied
Beiträge: 640
angemeldet: 14.04.2008
Delphi 2009 Professional

fragile hat folgendes geschrieben:
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

SCJP, SCJA
http://www.mikejustin.com - http://www.betabeans.de
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
joachimd #5|Beitrag #971583Verfasst am: 02.12.2008, 14:15      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 313
angemeldet: 17.02.2005
Wohnort: Weitingen
RAD-Studio 2010 Arc

mjustin hat folgendes geschrieben:
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.

--
System Consultant (Advantage Database Server)
Sybase iAnywhere
check out my new Advantage book on http://www.jd-engineering.de/adsbuch
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
fragile #6|Beitrag #972345Verfasst am: 04.12.2008, 09:28      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Alter: 36
Status: offline
Beiträge: 87
angemeldet: 04.11.2008
Wohnort: Amberg
Delphi 2009 Enterprise

Du meinst, eine neue Instanz von TADOCustomDataSet und diese dann bei jedweden Änderungen/Inserts aufrufen ?
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
joachimd #7|Beitrag #972356Verfasst am: 04.12.2008, 09:57      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 313
angemeldet: 17.02.2005
Wohnort: Weitingen
RAD-Studio 2010 Arc

fragile hat folgendes geschrieben:
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: markieren
procedure TAdsTable.InternalPost
...
  FieldByName('zeit').asDateTime:=now();
  inherited;
...

--
System Consultant (Advantage Database Server)
Sybase iAnywhere
check out my new Advantage book on http://www.jd-engineering.de/adsbuch
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
MichaelP #8|Beitrag #972359Verfasst am: 04.12.2008, 10:05      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Alter: 45
Status: offline
Beiträge: 26
angemeldet: 06.09.2003
Wohnort: Hannover
Delphi 2006 Enterprise

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
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
joachimd #9|Beitrag #972365Verfasst am: 04.12.2008, 10:17      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Status: offline
Beiträge: 313
angemeldet: 17.02.2005
Wohnort: Weitingen
RAD-Studio 2010 Arc

MichaelP hat folgendes geschrieben:
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 Wink

--
System Consultant (Advantage Database Server)
Sybase iAnywhere
check out my new Advantage book on http://www.jd-engineering.de/adsbuch
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
 
fragile #10|Beitrag #972391Verfasst am: 04.12.2008, 11:35      Titel: Re: DB-Felder automatisch aus Delphi befüllen Antworten mit Zitat
Mitglied
Alter: 36
Status: offline
Beiträge: 87
angemeldet: 04.11.2008
Wohnort: Amberg
Delphi 2009 Enterprise

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 !
nach oben nach unten
Benutzer-Profile anzeigen Private Nachricht senden
Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen im Forum zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Google zu suchen. Markiere Begriffe im Text und klicke auf diesen Button, um nach zusätzlichen Informationen bei Wikipedia zu suchen.
 
Anzeige-Optionen:    
 
Delphi-PRAXiS Forum - Übersicht -> Datenbanken Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1   [ 10 Beiträge ]  
 
  Neuen Beitrag schreiben Auf Beitrag antworten
als PDF-Datei herunterladenThema ausdrucken
 
   
Gehe zu:  
Du darfst keine Beiträge in dieses Forum schreiben.
Du darfst auf Beiträge in diesem Forum nicht antworten.
Du darfst Deine Beiträge in diesem Forum nicht bearbeiten.
Du darfst Deine Beiträge in diesem Forum nicht löschen.
Du darfst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten.
Du kannst Dateien in diesem Forum nicht herunterladen.


Impressum / Kontakt
Allgemeine Geschäftsbedingungen
Verhaltenskodex & FAQ

Delphi-PRAXiS :: Das Forum für Delphi-Programmierer
Das Experten Forum für Delphi ProgrammiererHilfe für Borland Delphi gibts es hier im ForumDelphi Quelltexte und Source CodesDelphi-PRAXiS :: Das Forum für DelphiWindows APIInternet und NetzwerkeVCL und Datenbanken
 

Delphi-PRAXiS V.2005 III
© 2002-2010 by Daniel R. Wolf
powered by phpBB © phpBB Group

Impressum / Kontakt Allgemeine Geschäftsbedingungen