Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Tabelle auf einen Datensatz begrenzen (https://www.delphipraxis.net/93634-tabelle-auf-einen-datensatz-begrenzen.html)

sngt 8. Jun 2007 15:44

Datenbank: Paradox • Version: 7 • Zugriff über: TTable

Tabelle auf einen Datensatz begrenzen
 
wie funktioniert das?

mfg sngt

joachimd 8. Jun 2007 15:47

Re: Tabelle auf einen Datensatz begrenzen
 
Zitat:

Zitat von sngt
wie funktioniert das?

mfg sngt

gar nicht. Du kannst zwar etwas in Deine App einbauen, aber das kann leicht umgangen werden. Am Besten, Du nimmst etwas anderes als Paradox. Jede einigermaßen vernünftige DB kann so etwas über einen INSTEAD OF INSERT Trigger lösen.

MrSpock 8. Jun 2007 15:55

Re: Tabelle auf einen Datensatz begrenzen
 
Hallo sngt,

grundsätzlich kann das wie Joachim schon gesagt hat, nur über deine Anwendung selbst programmiert werden. Man benutzt aber je gerade Tabellen, weil man viele gleichartige Daten speichern möchte. Vielleicht kannst du noch erklären, warum du eine Tabelle auf einen Datensatz begrenzen möchtest, möglicherweise gibt es ja andere Ansätze, die auch zum Ziel führen.

LOMBI 8. Jun 2007 17:12

Re: Tabelle auf einen Datensatz begrenzen
 
Hallo,

mich interessiert dieses Thema ebenfalls.

Ich würde gerne erreichen, dass ein
Benutzer nur drei Steuersätze in einer
Tabelle festlegen kann.

Gruß
Lombi

MrSpock 8. Jun 2007 17:29

Re: Tabelle auf einen Datensatz begrenzen
 
Hallo Lombi,

du kannst entweder über
SQL-Code:
SELECT count(*) FROM steuern
oder einfach über die Eigenschaft RecordCount des TTable Objektes die Anzahl der Datensätze in der Tabelle ermitteln. Beim Versuch einen weiteren Datensatz hinzuzufügen, gibst du dann eine Fehlermeldung aus und brichst den Vorgang ab.

LOMBI 8. Jun 2007 17:33

Re: Tabelle auf einen Datensatz begrenzen
 
Hallo MrSpock,

alles klar, vielen Dank!

marabu 8. Jun 2007 19:15

Re: Tabelle auf einen Datensatz begrenzen
 
Hallo Lombi,

dein technisches Problem hat der Vulkanier ja gelöst, aber ich gebe zu Bedenken, dass eine Tabelle mit Steuersätzen in der Regel mehr als einen Datensatz (Historie) aufweisen wird, da mitunter in einem Geschäftsjahr der Steuersatz mehr als einmal angepasst werden kann und da auch kurz nach der Änderung des Steuersatzes automatisierte Rückberechnungen möglich sein müssen, die Zugriff auf den alten Steuersatz benötigen. Ich würde sogar für jeden Steuersatz (ohne Berechnung, halber Satz, voller Satz, ...) einen eigenen Eintrag in der Tabelle vornehmen.

Freundliche Grüße

DeddyH 8. Jun 2007 20:54

Re: Tabelle auf einen Datensatz begrenzen
 
Hi Marabu, versteh ich Dich richtig? Eine Tabelle mit den Steuersatzarten, z.B. (Daten)

1 - ohne Steuer
2 - geminderte Steuer
3 - voller Steuersatz

und eine zweite Tabelle mit den Steuersätzen (Felder)

- Steuersatzart: FK auf o.a. Tabelle
- Wert in Prozent
- gültig von
- gültig bis

So würde ich es nämlich machen. Da können (je nach Regelungswut der jeweiligen Regierung und Einsatzdauer der DB) u.U. eine Menge Datensätze zusammenkommen.

marabu 8. Jun 2007 21:03

Re: Tabelle auf einen Datensatz begrenzen
 
Hallo DeddyH,

ich glaube schon, dass du mich richtig verstanden hast. Deine erste Tabelle stellt in einem normalisierten Teildatenmodell die Literale der Steuersätze zur Verfügung - falls man die mal irgendwo im Klartext anzeigen möchte. Die zweite Tabelle entspricht der von mir erwähnten Historie. Die enthält bei mir allerdings kein BIS-DATUM, da die gesetzlichen Regelungen sich als nach oben offene Zeitintervalle modellieren lassen. Der Gesetzgeber nennt bei der Anhebung eines MWSt-Satzes meistens kein Datum für die nächste Erhöhung.

Freundliche Grüße

DeddyH 8. Jun 2007 21:10

Re: Tabelle auf einen Datensatz begrenzen
 
Ja stimmt, das Feld "gültig bis" war dafür gedacht, bei Einfügen eines Datensatzes neueren Datums einen Trigger zu feuern, der das Enddatum auf den letzten Tag vor Inkrafttreten des neuen Satzes setzt (div. Plausibilitätsprüfungen im Trigger selbst natürlich vorausgesetzt), damit man später recht einfach mit BETWEEN arbeiten kann, ohne evtl. Subqueries mit Aggregatfunktionen bemühen zu müssen :zwinker: . Aber da ich so etwas noch nie praktisch umgesetzt habe, sind das natürlich rein theoretische Überlegungen meinerseits.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr.
Seite 1 von 2  1 2      

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