![]() |
Datenbank: Midas oder Firebird • Zugriff über: steht noch nicht fest
Allgemeine Frage zu Datenbanken
Hallo,
ich bin grad am Überlegen, ob ich für ein Projekt mich in Firebird embedded und Zeos ODER in TClientDataSet einarbeite. Gibt es beim TClientDataSet (Midas) überhaupt die Möglichkeit, SQL Abfragen zu stellen? Angenommen ich habe zwei Tabellen 1. Artikel ---------- ID, Name, Bestandteile 2. Bestandteile --------------- ID, Name Wie kann ich diese "Verknüpfen"? Ich möchte z.B. das wenn ein Bestandteil gelöscht wird, die Verknüpfung automatisch in Artikel auch rausfliegt. Muß man das bei allen Verknüpfungen selbst programmieren? Gibt es ein gutes und aktuelles Buch zu TClientDataSet und/oder Zeos/Firebird? Gruß winkel79 |
Re: Allgemeine Frage zu Datenbanken
Du kannst ja beides verwenden. Ein TClientDataSet ist ja eigentlich nur ein lokaler cache.
|
Re: Allgemeine Frage zu Datenbanken
SQL-Bücher gibt es zu hauf, Firebird gibts Tuturials... zB.:
![]() SQL habe ich viel via Access gelernt. Viele Tabellen verknüpft und dann den SQL-Code angeschaut... so läßt es sich ganz gut lernen (finde ich). Auch hierzu gibts massig Tutorials... MFG Steffen |
Re: Allgemeine Frage zu Datenbanken
Hallo,
ich weiß ja nicht was Du mit "Verknüpfungen" meinst - in einer "besseren" SQL-Datenbank regelt so etwas die Datenbank-Tabelle selber indem sie Trigger verwendet. Dazu ein Beispiel einer Vorgangs-Tabelle und einer Positionen-Tabelle: Ein Vorgang, z.b. eine Rechnung kann beliebig viele Positionen haben. Wird nun ein Vorgang gelöscht - wird über den Trigger "Before delete" jede zum Vorgang gehörende Position gelöscht. Auf diese Art und Weise muss ich dafür keine Zeile Quelltext vergeuden :-) mfg Jo |
Re: Allgemeine Frage zu Datenbanken
@HaJo: Ich verschwende für diesen Fall auch keine Zeile Code in einem Trigger, ich verwende einen ForignKey und setzte das Delete auf Cascading :)
Gruß onlinekater |
Re: Allgemeine Frage zu Datenbanken
Etwas zu knapp. Du brauchst auf jeden Fall die foreign keys. Es muss ein Grundgerüst für die Daten her. Die Regeln müssen da rein. Also auch, was alles an Abhängigkeiten gelöscht werden soll. Gehe deshalb in IBExpert hin und lege diese Dinge fest.
Im Quelltext der DB ist dann z.B. so etwas zu sehen :
SQL-Code:
ALTER TABLE ARTIKEL ADD CONSTRAINT FKBESTANDTEIL_ARTIKEL FOREIGN KEY (ID_BESTANDTEIL) REFERENCES BESTANDTEIL (ID) ON DELETE CASCADE;
|
Re: Allgemeine Frage zu Datenbanken
@Hansa: Da hast DU mit anderen Worten das gleiche beschrieben wie ich.
Ich denke nur, Du hast in dem Beispiel das Pferd von der falschen Seite her aufgezäumt, der ForeignKey wird in Artikelbestandteil angelegt und referenziert Artikel :) Gruß onlinekater |
Re: Allgemeine Frage zu Datenbanken
Könnte sein, aber der soll sein Programm schon selber schreiben. :mrgreen:
|
Re: Allgemeine Frage zu Datenbanken
Zitat:
|
Re: Allgemeine Frage zu Datenbanken
Hallo,
erstmal Danke für Eure zahlreichen Antworten. Zitat:
Zitat:
Ich frag nett und schon bin ich nur noch "der" ;) Tse. Gut, ich suche mal in den USA nach Büchern. Die DSDT und DP Tuts hab ich schon durch. Bis bald, Gruß winkel79 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 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