Die meisten Ausdrucksfunktionen verhalten sich bei allen Datenprovidern gleich, aber es gibt einige Ausnahmen.
Sie können beim Erstellen eines Filters oder einer berechneten Eigenschaft alle Funktionen verwenden. Diese Ergebnisse werden nicht zurück in den Datenspeicher gespeichert. Wenn Sie zum Einfügen eines Werts in die Datentabelle eine Funktion verwenden, die einen nicht unterstützten Datentyp zurückgibt, wird eine Ausnahme ausgelöst. Diese Operation ist für den Daten-Provider nicht zulässig. SHP-Dateien unterstützen zum Beispiel nicht die Datentypen FdoInt16 oder FdoDouble. Wenn Sie versuchen, einen Wert mit diesem Datentyp zurück in einen SHP-Datenspeicher zu speichern, tritt ein Fehler auf.
Die Soundex-Funktion wird von allen Verwaltungssystemen für relationale Datenbanken (RDBMS) vorgabegemäß unterstützt. Das zugrunde liegende RDBMS wertet jeden Ausdruck einschließlich dieser Funktion aus. Das Ergebnis, das Sie von einem MySQL-Provider erhalten, kann sich jedoch von dem Ergebnis unterscheiden, das Sie von anderen Providern erhalten.
SDF- und SHP-Provider stellen einen booleschen Wert mithilfe von TRUE (WAHR) und FALSE (FALSCH) dar. RDBMS-Provider stellen einen booleschen Wert mithilfe von 0 und 1 dar. Dieser Unterschied kann sich auf die Anzeige von Labels auswirken. Der folgende Ausdruck definiert beispielsweise ein Label, durch das angegeben wird, ob ein Ventil geöffnet ist:
Concat('Ventil ist geöffnet: ', <Ventilstatus-Eigenschaft>)
Bei SDF- und SHP-Daten lautet das Label "Ventil ist geöffnet: True". Bei RDBMS-Daten lautet das Label "Ventil ist geöffnet: 1".
Die Funktionen AddMonths und MonthsBetween berücksichtigen keine Informationen zum Tag, RDBMS-Systeme jedoch schon.
Für den Ausdruck AddMonths(<Datumseigenschaft>, 88.7) fügt ein RDBMS-Provider dem angegebenen Datum zum Beispiel ggf. 88,7 Monate hinzu. Die Funktion, die Sie in Produktausdrücken verwenden, fügt nur 88 Monate hinzu.
Bei der Funktion MonthsBetween(<Datum_1>, <Datum_2>) kann ein RDBMS-Anbieter den Wert 77.4 zurückgeben. Die Funktion in den von Ihnen erstellten Ausdrücken gibt 77 zurück.
Einige Operationen (zum Beispiel das Erstellen einer berechneten Eigenschaft) basieren auf dem Cache und verwenden für die Auswertung die Ausdruckserstellung. Andere Operationen (zum Beispiel ein Filter in einem RDBMS-Datenspeicher) verwenden das zugrunde liegende RDBMS.
Aufgrund der Unterschiede zwischen den Providern können die Ergebnisse variieren. Wenn Sie beispielsweise eine Verbindung zu einem MySQL-Datenspeicher herstellen, können Sie zwei berechnete Eigenschaften erstellen: BE1 und BE2. BE1 wird durch den Ausdruck Soundex(<Eigenschaft>) und BE2 durch den Ausdruck Soundex(<Literal>) definiert. Es kann sein, dass der Wert für BE1 und BE2 in der Datentabelle identisch ist. Wenn Sie einen Filter mit dem Ausdruck Soundex(<Eigenschaft>) = Soundex(<Literal>) verwenden, erhalten Sie jedoch ggf. andere Werte. In der Datentabelle werden die Ausdrücke durch die Ausdruckserstellung ausgewertet. Der MySQL-Datenspeicher (der eine andere Funktionsdefinition verwendet) wertet den Filter aus.