AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Allgemeine Frage zu Datenbanken
Thema durchsuchen
Ansicht
Themen-Optionen

Allgemeine Frage zu Datenbanken

Ein Thema von Assertor · begonnen am 28. Aug 2007 · letzter Beitrag vom 17. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#1

Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 09:51
Datenbank: Midas oder Firebird • Zugriff über: steht noch nicht fest
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
Frederik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 10:00
Du kannst ja beides verwenden. Ein TClientDataSet ist ja eigentlich nur ein lokaler cache.
Markus Kinzler
  Mit Zitat antworten Zitat
WIng2005

Registriert seit: 20. Mär 2006
Ort: Thüringen
388 Beiträge
 
Delphi XE Starter
 
#3

Re: Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 10:12
SQL-Bücher gibt es zu hauf, Firebird gibts Tuturials... zB.: http://www.dsdt.info/tutorials/zeosfirebird/?page=1

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
  Mit Zitat antworten Zitat
HaJo

Registriert seit: 28. Apr 2004
Ort: Würselen
140 Beiträge
 
Delphi 8 Enterprise
 
#4

Re: Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 18:06
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
Hans-Joachim Brosius
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.880 Beiträge
 
Delphi 12 Athens
 
#5

Re: Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 20:21
@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
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#6

Re: Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 21:09
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 :

ALTER TABLE ARTIKEL ADD CONSTRAINT FKBESTANDTEIL_ARTIKEL FOREIGN KEY (ID_BESTANDTEIL) REFERENCES BESTANDTEIL (ID) ON DELETE CASCADE;
Gruß
Hansa
  Mit Zitat antworten Zitat
TBx
(Administrator)

Registriert seit: 13. Jul 2005
Ort: Stadthagen
1.880 Beiträge
 
Delphi 12 Athens
 
#7

Re: Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 21:15
@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
Thomas Breitkreuz
Gruß Thomas
- Admin DelphiPRAXIS
- Admin Delphi-Treff
- Embarcadero MVP
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#8

Re: Allgemeine Frage zu Datenbanken

  Alt 28. Aug 2007, 22:26
Könnte sein, aber der soll sein Programm schon selber schreiben.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Allgemeine Frage zu Datenbanken

  Alt 29. Aug 2007, 05:36
Zitat von Hansa:
Könnte sein, aber der soll sein Programm schon selber schreiben.
Du findest auch immer eine Ausrede
Markus Kinzler
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#10

Re: Allgemeine Frage zu Datenbanken

  Alt 16. Sep 2007, 14:45
Hallo,

erstmal Danke für Eure zahlreichen Antworten.

Zitat von Hansa:
Könnte sein, aber der soll sein Programm schon selber schreiben.
Also, ich bin ja
Zitat:
der
. Habe ich irgendwo gefragt, ob mir jemand Quellcode postet oder meine Arbeit macht? Ich schreibe doch extra, daß ich Überlegungen anstelle und Bücher suche. Also ich lese es oft umgekehrt hier im Forum, da fragt jemand frech nach fertigem Source und stellt sich dumm - und bekommt dann die Lösung von netten DPlern.

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
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:26 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