Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Software-Datenmodell Redesign - Möglichkeiten

  Alt 2. Aug 2024, 13: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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat