AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Software-Datenmodell Redesign - Möglichkeiten

Ein Thema von SusiT · begonnen am 1. Aug 2024 · letzter Beitrag vom 4. Aug 2024
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.913 Beiträge
 
Delphi 12 Athens
 
#11

AW: Software-Datenmodell Redesign - Möglichkeiten

  Alt 2. Aug 2024, 12:31
Bei DataSnap, bzw. RAD-Server, sowie auch einigen anderen IPC-Frameworks,
kann man DataSets als Parameter übergeben und als VAR-Parameter oder Result abrufen.

Die DB-Verbindung oder sonstwas wäre in der Middleware (Server) und die Clients bekämen die Daten von dort durchgereicht.



Für langsame Query, hatten wir mal eine Liste von DataSets im Apps, dort wurden sie regelmäßig in einem Thread aktualisiert
und dann konnten die Clienten sie gemütlich abrufen.

* der Aufruf der Runterladfunktion kommt je in einem Thread an
* dort wurde via CriticalSections das jeweilie DataSet kurz gesperrt
* dann schnell in ein MemoryDataset (z.B. dxMemData oder CDS) umkopiert
* anschließend das MemoryDataset als Result rausgegeben (mit OwnsObjects, damit Datasnap das dann freigibt, wenn fertig)
* im Client kam dann eine Kopie dieses Datasets an (das lief in einem DownloadThread)
* und anschließend wurde das DataSet im Hauptthread (Synchronize) ans Grid gehängt (das alte DataSet dabei freiegeben)

Inzwischen nutzen wir aber MATERIALIZED VIEWs im Postgres, welche die Clients vom DBServer laden, und die regelmäßig über den Apps aktualisiert werden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
SusiT

Registriert seit: 15. Mai 2014
40 Beiträge
 
#12

AW: Software-Datenmodell Redesign - Möglichkeiten

  Alt 2. Aug 2024, 14:23
Danke himitsu,

so wie du es für die langsamen Queries beschrieben hast machen wir es bereits ähnlich (nicht identisch).
Aber der Einwand mit dem DataSnap/Rad-Server ist sehr hilfreich! Das werde ich mir nochmal im Detail anschauen,
da ich mir die Erweiterbarkeit nicht so Umstandsbehaftet wie mit DataSets in Kombination mit CriticalSections vorstelle.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.565 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Software-Datenmodell Redesign - Möglichkeiten

  Alt 4. Aug 2024, 06:44
Wäre es auch möglich via CloneCursor die Anzeige im MainThread auf die im Event-Thread zu referenzieren?
Ich kenne die Interna eines ClientDataSets zu wenig um das zu beantworten. Laut Cary Jensen sollte das aber gehen.
Zitat:
So long as no code needs to make changes to Data or Delta, the ClientDataSet is thread safe.
Er hat zum ClientDataSet ein ganzes Buch geschrieben. Das Thema Threads findest du auch in seinem Blogeintrag:
https://caryjensen.blogspot.com/2011...rsors.html?m=1
Ich empfehle dir, dass du dir das genau anschaust, was er dazu schreibt. Ich habe das nur überflogen.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke ( 4. Aug 2024 um 06:46 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:24 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