FireDAC.Stan.Option.TFDFormatOptions.Round2Scale

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

property Round2Scale: Boolean read GetRound2Scale write SetRound2Scale  stored IsRSS default False;

C++

__property bool Round2Scale = {read=GetRound2Scale, write=SetRound2Scale, stored=IsRSS, default=0};

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
property published
FireDAC.Stan.Option.pas
FireDAC.Stan.Option.hpp
FireDAC.Stan.Option TFDFormatOptions


Beschreibung

Steuert das Runden von Werten.

Mit der Eigenschaft Round2Scale steuern Sie, ob FireDAC die numerischen und Zeitwerte auf die in der Datenbank angegebene Skala runden soll. Der Standardwert ist False

Wenn diese Eigenschaft True ist, dann wird die Rundung durchgeführt. Die Rundung tritt beim Client nur dann auf, wenn in der Anwendung einem Feld mit dem Typ numerisch/Zeit/Datum & Uhrzeit ein Wert zugewiesen wird. Beim Runden wird ein entsprechender TFDDatSColumn.Scale-Wert verwendet. Für Zahlen ist dies die Anzahl der Ziffern nach dem Dezimalzeichen. Für Zeitwerte ist dies die maximal unterstützte Genauigkeit in ms. 

Das Setzten der Eigenschaft Round2Scale auf True ermöglicht, dass in Anwendungen potenzielle Rundungsfehler vermieden werden.

Betrachten Sie das folgende Szenario: In der Anwendung ist UpdateOptions.LockMode = lmOptimistic festgelegt und für ADQuery ist eine einfache SELECT-Anweisung auf eine Oracle-Tabelle mit einem DATE-Feld vorhanden. Der DATE-Datentyp in Oracle hat eine Genauigkeit von 1 s. Fügen Sie nun einen neuen Datensatz hinzu, weisen Sie das Ergebnis von Now() dem DATE-Feld zu, und tragen Sie die Änderung in die Datenbank ein. Im Datensatzpuffer des Clients wird ein Wert mit einigen ms gespeichert, während in der Datenbank ein Wert OHNE ms gespeichert wird. Versuchen Sie, den Datensatz zu bearbeiten. Davor wird der Datensatz gesperrt. FireDAC kann aber die Feldwerte im Puffer des Clients mit den Werten, die gerade aus der Datenbank abgerufen wurden, nicht vergleichen. Als Ergebnis wird die "DApt-400"-Exception ausgelöst.

Wenn aber Round2Scale auf True gesetzt ist, dann rundet FireDAC einen Client-Wert auf Sekunden auf und ein Vergleich verläuft erfolgreich.


Siehe auch