AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken DataSnap DataSet übertragen mit Blobfelder macht Probleme

DataSnap DataSet übertragen mit Blobfelder macht Probleme

Ein Thema von Kostas · begonnen am 10. Sep 2015 · letzter Beitrag vom 21. Jan 2016
Antwort Antwort
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#1

AW: DataSnap DataSet übertragen mit Blobfelder macht Probleme

  Alt 15. Jan 2016, 18:39
Ohne das jetzt im einzelnen zu analysieren, nur zwei Dinge, die mir direkt auffallen:
  1. Das Synchronize sollte nicht notwendig sein, da die Connection ja für die Session privat erzeugt wird.
  2. Die Verwaltung der dynamisch erzeugten Queries ist unklar. Wer gibt das wann wieder frei?

Ich verwende mittlerweile eigentlich nur noch das Verfahren mit TFDJSONDataSets , wie es in diesem Tutorial beschrieben wird. Damit hatte ich zumindest bisher noch nicht solche Probleme, wie du sie schilderst.

Die Queries setze ich auch im Designer auf das Datenmodul. Dann sind sie sicher über den gesamten Client-Call vorhanden und werden mit dem Datenmodul freigegeben.
Hallo Uwe,

Zu Punkt 2: Wenn ich die Query frei gebe, knallt es. Irgend wo habe ich es gelesen dass die Freigabe DataSnap übernimmt. Ich habe auch Langzeittest durchgeführt und feststellen können dass das DataSet
wirklich sauber freigegeben wird. Zumindest wurde nicht mehr Speicher beansprucht.

Ich werde die Tage das Beispiel umbauen nach TFDJSONDataSets. Mal sehen wie sich das verhält.

Herzlichen Dank Uwe.
Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.609 Beiträge
 
Delphi 12 Athens
 
#2

AW: DataSnap DataSet übertragen mit Blobfelder macht Probleme

  Alt 15. Jan 2016, 18:55
Zu Punkt 2: Wenn ich die Query frei gebe, knallt es. Irgend wo habe ich es gelesen dass die Freigabe DataSnap übernimmt. Ich habe auch Langzeittest durchgeführt und feststellen können dass das DataSet
wirklich sauber freigegeben wird. Zumindest wurde nicht mehr Speicher beansprucht.
Klar, du kannst es nicht als result zurückgeben und dann in der nächsten Zeile freigeben. Deswegen bevorzuge ich ja auch die Instanzen im DataModule, die sind garantiert über die gesamte Lifetime der ServerClass-Instanz vorhanden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#3

AW: DataSnap DataSet übertragen mit Blobfelder macht Probleme

  Alt 21. Jan 2016, 16:37
Hallo Uwe,

ich habe umgestellt auf TFDJSONDataSets und es funktioniert deutlich besser. Zumindest haben die Bilder immer die gleiche Größe,
egal ob ich Sie einzeln abrufe oder alle auf einmal. Jetzt habe ich mich auch erinnert warum ich TDataSet verwendet habe und nicht
TFDJSONDataSets. Der Hintergrund, die Clients führen ein Select über TDataSet durch. Das TDataSet wird zum DataSnapServer übertragen.
Der Server empfängt das DataSet und exportiert daraus ein JSON String. Dieses JSON String wird danach in einer FirebirdDB in ein Blob-Feld
abgelegt. Mehrere Clients können diese Pakete abrufen. Die Pakete bleiben bis zu zwei Jahre in der DB bis sie entsorgt werden.

Wir hatten schon mal darüber gesprochen und festgestellt, dass sich das JSON Format von TFDJSONDataSets in der Zukunft ändern könnte.
Wenn sich das interne Format ändern würde, könnte ich die Daten aus meinen Blobs nicht importieren. Deshalb das DataSet. Ist natürlich
auch keine Garantie dass sich das JSON Format nicht ändert.

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.609 Beiträge
 
Delphi 12 Athens
 
#4

AW: DataSnap DataSet übertragen mit Blobfelder macht Probleme

  Alt 21. Jan 2016, 16:46
FireDAC verwendet seit einiger Zeit eine Versionierung des Stream-Formats. Damit lassen sich auch in neueren FireDACs die alten Streams noch lesen. Umgekehrt gilt das logischerweise nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.112 Beiträge
 
Delphi 12 Athens
 
#5

AW: DataSnap DataSet übertragen mit Blobfelder macht Probleme

  Alt 21. Jan 2016, 16:54
FireDAC verwendet seit einiger Zeit eine Versionierung des Stream-Formats. Damit lassen sich auch in neueren FireDACs die alten Streams noch lesen. Umgekehrt gilt das logischerweise nicht.
oh, das ist eine gute Nachricht!
Besten Dank Uwe.
  Mit Zitat antworten Zitat
Antwort Antwort

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:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz