AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird Ist Tablle verändert worden
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird Ist Tablle verändert worden

Ein Thema von Walter Landwehr · begonnen am 19. Jan 2015 · letzter Beitrag vom 19. Jan 2015
Antwort Antwort
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#1

Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 09:57
Datenbank: Firebird • Version: 2.5 • Zugriff über: IBO
Hallo an alle Firebird Experten,

gibt es in Delphi XE2 eine Möglichkeit abzufragen, ob eine Tabelle verändert worden ist.

Vielen Dank für eine Antwort im Voraus.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.877 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 09:58
Was meinst Du mit verändert? Daten in der Tabelle oder die Struktur?
Markus Kinzler
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 10:09
Daten in der Tabelle hinzugeführt oder verändert.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 10:11
Kann es sein, dass Du IB_Events suchst?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.438 Beiträge
 
Delphi 12 Athens
 
#5

AW: Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 10:18
Moin...

Wenn du nicht mit Events arbeiten willst, ist nicht ganz trivial, hier noch eine Idee zum Ausschlachten:

1. zusätzliches Feld (Integer) in der entsprechenden Tabelle namens "CHANGED" ... oder so.
2. bei jeder Schreiboperation (Insert, Update) wird über einen Trigger in "CHANGED" eine 1 geschrieben.
3. Dann schaust du nach wenn du wissen möchtest ob sich was geändert hat....quasi jedes "CHANGED" mit 1 drin.
4. Nach der Auswertung setzt du "CHANGED" zurück.

... damit hast du immer die Änderungen zum letzten Guck.
  Mit Zitat antworten Zitat
tsteinmaurer

Registriert seit: 8. Sep 2008
Ort: Linz, Österreich
530 Beiträge
 
#6

AW: Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 10:25
Klappt halt nicht mit DELETE, wenn man den Datensatz wirklich löscht und nicht nur als gelöscht markiert.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 11:03
ggf. könnte man über einen Trigger eine Logdatei füllen?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#8

AW: Firebird Ist Tablle verändert worden

  Alt 19. Jan 2015, 11:16
Hallo an alle Firebird Experten, gibt es in Delphi XE2 eine Möglichkeit abzufragen, ob eine Tabelle verändert worden ist.
In Anwendungen, in denen es relevant ist zu wissen, wann welcher User welchen Eintrag in der DB getätigt hat, setze ich eine Log-Tabelle ein. Die protokolliert alle Änderungen in der Datenbank, vom An- und Abmelden eines Benutzers über das Löschen und Einfügen neuer Datensätze bis zu Änderungen an Datensätzen. Das wäre die applicationstechnische Lösung. Ansonsten kannst du auch datenbankseitige Lösungen installieren, indem du mit den Triggern AfterDelete, AfterInsert und AfterUpdate arbeitest und in den jeweiligen Proceduren einfach einen neuen Datensatz in deiner Log-Tabelle anlegst.

Beispiel einer Log-Tabelle:
Code:
CREATE TABLE LOGTAB (
    ID_LOGTAB   INTEGER NOT NULL,
    BENUTZER    INTEGER DEFAULT 0 NOT NULL,
    AKTION      INTEGER DEFAULT 0 NOT NULL,
    TABELLE     INTEGER DEFAULT 0 NOT NULL,
    ZEITSTEMPEL TIMESTAMP);
  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 10:52 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