Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: DataSnap verdoppelt Daten

  Alt 12. Mai 2016, 11:02
Nein, das hat damit nichts zu tun.
> TField.DataSize und TField.Size
Dass da intern nochmal mehr Bytes sind, ist auch klar, aber hier geht es quasi nur um "CurValue".
Außerdem gibt es OldValue doch standardmäßig nur für den aktiven Datensatz und nicht für alle Datensätze.

Ja, DataSize ist größer, wegen Unicode.
Wie groß das Feld in der Datenbank ist, ist mir egal (ist da UTF-8 und das sind 4 Byte pro Char, im Postgres), da es im DataSet dann als Unicode steht.

Aber im TPgQuery/TClientDataSet ist, vor dem DataSnap/TDBXDataSetReader, die TWideStringField.Size z.B. 100 "Chars", bzw. TWideStringField.DataSize 202 Bytes (inkl. Längen-Word)
und nachher ist im TClientDataSet des Clienten die TWideStringField.Size 402 "Chars", bzw. TWideStringField.DataSize 802 Bytes (inkl. Längen-Word).
Bei den 10000 Chars ist es dann ein Längen-LongWord im DataSize.

http://docwiki.embarcadero.com/Libra...ideStringField
http://docwiki.embarcadero.com/Libra...DB.TField.Size > ftString = Size gibt die maximale Anzahl der Zeichen im String an.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (12. Mai 2016 um 11:19 Uhr)
  Mit Zitat antworten Zitat