AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Umgang mit nested ClientDataSet Logik
Thema durchsuchen
Ansicht
Themen-Optionen

Umgang mit nested ClientDataSet Logik

Ein Thema von KodeZwerg · begonnen am 23. Mär 2022 · letzter Beitrag vom 24. Mär 2022
Antwort Antwort
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#1

Umgang mit nested ClientDataSet Logik

  Alt 23. Mär 2022, 10:39
Datenbank: CDS • Version: Delphi 10.3 • Zugriff über: MidasLib
Guten Tag liebe Gemeinde!

NestedDataSets in ClientDataSets < Das diente mir als inspiration.

Ich schildere mal was ich vor habe.

Ich plane 2 "Master-Tabellen" zu haben die in einem Formular seperat verwaltet werden aber nicht direkt verbunden sind.
Tabelle 1 = "Kunden name"
Tabelle 2 = "Verkäufer name"

In einem weiteren Formular möchte ich so etwas realisieren und frage mich ob das die Richtige herangehensweise ist:
Per ComboBox werden alle "Verkäufer" gelistet. Wenn man nun einen Auswählt möchte ich eine...
Tabelle 3 = "eingabe Artikel" "eingabe Anzahl" "auswahl nested Kunden" "eingabe Sonstiges"
Tabelle 4 = "nested Tabelle 3" "eingabe Boolean (default FALSE)" (Tabelle ist unsichtbar)
...generieren.

Nochmals in einem weiteren Formular möchte ich Tabelle 4 auflisten lassen was alles generiert wurde bzw wo noch "FALSE" drinnen steht mit der Möglichkeit "eingabe Boolean" zu bearbeiten.

Wäre das so von der Logik her korrekt oder denke ich da falsch?

(Das Buch von Cary habe ich bestellt aber bin jetzt schon ganz aufgeregt und probiere alles mögliche aus)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von newIndy
newIndy

Registriert seit: 18. Dez 2018
29 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Umgang mit nested ClientDataSet Logik

  Alt 24. Mär 2022, 06:29
Guten Tag liebe Gemeinde!

NestedDataSets in ClientDataSets < Das diente mir als inspiration.

(Das Buch von Cary habe ich bestellt aber bin jetzt schon ganz aufgeregt und probiere alles mögliche aus)

Sehr gut.

Die NestedDataSets erhöhen zwar den Schwierigkeitsgrad, ohne sie geht es aber fast nicht.
Zum weiteren Einstieg hilft dir vielleicht

https://edn.embarcadero.com/article/29825

und weil der Link zum Beispielprojekt nicht funktioniert, habe ich es angehängt '18744_videolibrary_complex_clientdataset_structur e_demo'.

Viel Spaß beim austesten
Angehängte Dateien
Dateityp: zip 18744_videolibrary_complex_clientdataset_structure_demo.ZIP (12,5 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
TigerLilly
Online

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.174 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Umgang mit nested ClientDataSet Logik

  Alt 24. Mär 2022, 07:19
ClientDataSets sind auch nur (InMemory)DataSets. Das, was sie auszeichnet, ist, dass sie ihre Daten über einen Provider von woanders her (3-tier) beziehen können. CDS werden/wurden aber gerne mißbraucht, um Daten lokal im Speicher bearbeiten zu können, ohne jeden Datensatz sofort in die zugrundeliegende DB posten zu müssen. Stichwort CachedUpdates.

NestedDataSets kommen erst ins Spiel, wenn ein CDS via Provider an eine Query oder Table angebunden wird, die ihrerseits ChildTabellen via deren DataSource angebunden haben. Wenn man CDS ohne provider, also mit lokalen Daten benutzt, gibt es keine NetsedDatasets, sondern nur die üblichen Master/Detail Beziehungen.

Siehe Bild, das verdeutlicht die Struktur. Hier gibt es eine Datenbank, auf die greifen die qMaterial und qQuant zu. qQuant ist via DAtasource (und im SQL) Child von qMaster. Der provider linkt zur qMaster + das cdsMAterial ruft über den Provider alle Daten inkl. dem Child als nestedDataset ab. Das cdsQuant linkt dann zum NEstedDataset. Die Daten der Datenbank wandern also als ein einziges Paket über den Provider zum CDS. Im CDS können die daten bearbeitet werden, inkl post, delete, insert etc + dann mit AllplyUpdates über den Provider wieder zu den Queries und dann zur DB geschoben werden.

Also: Nicht verwechseln. CDS kann auschließlich lokal, so eine MemTable nutzen oder mit Provider zu 3-tier, uU degeniert wenn alle Schichten im selben Programm liegen.
Miniaturansicht angehängter Grafiken
cds.jpg  
  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 07:38 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