AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Master-Detail-Beziehungen und Master existiert noch nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Master-Detail-Beziehungen und Master existiert noch nicht

Ein Thema von nachti1505 · begonnen am 7. Jun 2007 · letzter Beitrag vom 7. Jun 2007
Antwort Antwort
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#1

Master-Detail-Beziehungen und Master existiert noch nicht

  Alt 7. Jun 2007, 11:57
Datenbank: Firebird • Zugriff über: FIBPlus [Trial]
Mal eben ein kleines Problemchen...

Habe eine Art Adressverwaltung (Standarddaten wie Strasse, Hausnummer, PLZ, Tel, etc.) und zusätzlich eine Übersicht über weitere Mitarbeiter in dieser Adresse.
In Delphi wurde das ganze dann über deine Master (die Adresse) - Detail (die Angestellten) - Beziehung visualisiert.
Mein Problem ist nun, wenn ich eine neue Adresse einfüge (DataSet.Insert) so existiert dieser Datensetz erstmal nur virtuell (bis zum DataSet.Post), hat also noch keinen Primärschlüssel. Genau den brauch man aber, wenn man beim ersten Bearbeiten schon Angestellte einfügen will, da in der Angestellten-Tabelle eben jener Schlüssel als ForeignKey benötigt wird....?

Ideen?

Danke!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:05
Wie setzt du den PK?
Welche Firebirdversion?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:24
Firebird 1.5

Theoretisch müsste ich den PK doch irgendwo im Adress-DataSet setzen, oder??? Genaugenommen habe ich ihn explizit nirgendwo gesetzt....
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:30
Am besten setzt man ihn per Trigger über einen Generator. AB Fb2 kann man sich ihn im Insert zurückgebenlassen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:36
Kann man in FB 1.5 glaube ich auch schon.
INSERT INTO tabelle (id, ..., ...) VALUES (gen_id(tabelle_gen,1), ..., ...) Mein Problem liegt eher darin:

1)
- der Nutzer möchte eine neue Adresse anlegen (Formular erscheint)
- er tippt einige Angestellte der neuen Adresse ein (zu diesem Zeitpunkt ist noch nichtmal sicher, ob der User diese Adresse überhaupt speichern möchte), welche natürlich erst endgültig gespeichert werden sollen, wenn die Adresse auch gespeichert wird

2)
- Gesetz dem Fall die Adresse (inkl. PK) existiert schon, wie mache ich dem Detail-DataSet beim Einfügen klar, woher er den Adressen-PK bekommt?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:39
Zitat:
Kann man in FB 1.5 glaube ich auch schon.
Nein:
INSERT INTO tabelle (id, ..., ...) VALUES (gen_id(tabelle_gen,1), ..., ...) RETURNING id; Auf id kannst du dann per Parameter zugreifen:

  ... := Query.ParamByName('id').Value;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von nachti1505
nachti1505

Registriert seit: 7. Apr 2007
188 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:44
Zitat von nachti1505:
2)
- Gesetz dem Fall die Adresse (inkl. PK) existiert schon, wie mache ich dem Detail-DataSet beim Einfügen klar, woher er den Adressen-PK bekommt?
Hehe, mal die Tec-Artikel von Devrace lesen... im DataSet.SQL.InsertSQL den Parameter einfach nicht xyz sondern MAS_xyz nennen...

Trotzdem erstmal Danke....

Inwieweit ist FB2.0 eigentlich schon stabil und vorallem wiue kompatibel sind Anwendungen die man von FB1.5 nach FB2.0 portiert???
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#8

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:46
Hi,

Sowas hatten wird gerade:
Autoinc

alex
Alexander
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 12:47
Die aktuelle stabile Version ist 2.01 und 2.1 steht vor der Tür. Anwendungen, die sich an die Vorgaben von FB halten funktionieren problemlos. In manchen Fällen verhält sich FB 2 aber nicht so gutmütig, d.h. nicht konforme Konstrukte die unter FB.x funktioniert haben, werden dann abgewiesen.
Markus Kinzler
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#10

Re: Master-Detail-Beziehungen und Master existiert noch nich

  Alt 7. Jun 2007, 15:33
noch was, da du mit FibPlus arbeitest, schau dir doch mal
im FibDataSet die Propertys die du unter AutoUpdateOptions findest an.
Dort findest du was du suchts.
alex
Miniaturansicht angehängter Grafiken
autoupdateopt_790.jpg  
Alexander
  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 04:11 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