AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi cachedupdates und Master/Detail
Thema durchsuchen
Ansicht
Themen-Optionen

cachedupdates und Master/Detail

Offene Frage von "fredborscht"
Ein Thema von fredborscht · begonnen am 27. Jun 2006 · letzter Beitrag vom 30. Jun 2006
Antwort Antwort
fredborscht

Registriert seit: 27. Jun 2006
2 Beiträge
 
Delphi 5 Enterprise
 
#1

cachedupdates und Master/Detail

  Alt 27. Jun 2006, 13:16
Datenbank: Oracle • Version: 10.1.0.2.0 • Zugriff über: DirectOracleAccess (Allround Automations) 4.0.7.1 (für D5)
Hallo,

Ich versuche, eine Anwendung für eine Oracle Datenbank zu schreiben,
die Datensätze in mehreren Tabellen einfügen,ändern oder löschen soll.
Zum Zugriff aud die DB benutze ich die DOAD Komponenten von allroundautomations.
Dies sind die Tabellen (in Delphi jeweils ein Toracledataset):
artikel: Master
bemerkung: Detail (1:1)
logistik: Detail (1:n)
rohstoffe: Detail (1:n)
Die Daten des Artikels sowie der Bemerkung werden im oberen Teil der Form
in verschiedenen dbedits angezeigt, die Logistikdaten bzw. Rohstoffdaten
darunter in zwei dbgrids.
wenn der Anwender den "Speichern"-Button betätigt (ToracleNavigator, ist über die Eigenschaft Datasource mit dem Artikel-dataset verknüpft),
sollen alle Änderungen in die Datenbank geschrieben werden.
Dabei soll vorher geprüft werden, ob alle Daten korrekt eingegeben wurden.
Ist dies nicht der Fall(werden z.B. fehlerhafte Daten in einem Logistikdatensatz festgestellt),
so soll die Transaktion komplett (für alle Datensätze) abgebrochen werden.
Der Anwender soll jedoch nicht die Möglichkeit haben, mehrere Artikel(Masterdatensätze) nacheinander einzufügen oder zu ändern,
ohne jeden einzelnen vorher gespeichert zu haben.
Hier also meine Fragen :
- Muß ich die Eigenschaft cachedupdates für dieses Verhalten auf true setzen und wenn ja, für welche Datasets(nur die Details?... alle?)
- Habe in verschiedenen posts in den Googlegroups für Delphi gelesen, daß cachedupdates und Master/Detail Beziehungen nicht wirklich
funktionieren...Kann das jemand bestätigen und wenn ja, trifft dies auch auf mein Szenario zu?

Vielen Dank schonmal im Voraus
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: cachedupdates und Master/Detail

  Alt 28. Jun 2006, 08:29
Ich kenne deine Komponenten nicht, aber ich habe mir angewöhnt, die Updates per Hand zu erledigen. Anstatt zu hoffen, das die Post-Methoden das schon irgendwie hinkriegen, schreibe ich mir ein SQL-Skript, das die nötigen Änderungen durchführt. Das geht auch am schnellsten.

Ich verwende MSSQL und da sieht das ungefähr so aus:
SQL-Code:
Declare @MasterID int
--
-- Diese Zeile wird für jeden einzufügenden Master-Record erzeugt
--
Insert Into Master (MasterValue) Values ('New Master');
select @MasterID = @@IDENTITY -- Neuer AutoInc-Wert vom Master
--
-- Für jeden einzufügenden Detail-Record das hier
--
Insert Into Detail (MasterID, DetailValue) Values (@MasterId, 'My detail')
Insert Into Detail (MasterID, DetailValue) Values (@MasterId, 'Another detail')
Das ist das Skript für einen neuen Master/Detail-Datensatz. Ich schicke das als Transaktion zum Server und kann mir sicher sein, das es optimal schnell ausgeführt wird.

Ein ähnliches Skript habe ich für Updates etc.
Das hilft Dir bestimmt nicht weiter, aber vielleicht ist das ein Denkanstoß.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
fredborscht

Registriert seit: 27. Jun 2006
2 Beiträge
 
Delphi 5 Enterprise
 
#3

Re: cachedupdates und Master/Detail

  Alt 30. Jun 2006, 10:03
Vielen Dank für Deine Antwort, alzaimar...

Hatte ja irgendwie gehofft, daß ich die Sache mit den Standardmethoden auf die Reihe kriege...
aber nach einigem weiteren Suchen und Rumprobieren scheint es mir aber langsam wirklich
die bessere Lösung zu sein, das alles von Hand zu erledigen...

Danke nochmal und schönes Wochenende
Fred
  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 19:40 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