SQL Label
Mit dem SQL Label können dynamische Steuerelement Labels durch Datenbankabfragen generiert werden. Im Gegenzug zum normalen Label kann sich der Text je nach Datenbankeintrag und Abfrage ändern wohingegen das normale Label statisch ist.
Tips zur Optimierung der Formular Geschwindigkeit
Das verwenden diese Steuerelements verursacht das bei jedem Datensatzwechsel eine SQL Abfrage ausgeführt wird. Jede weitere Abfrage verlangsamt das Formular und erhöht die Last auf die Datenbank und den MapEdit Server. Denken Sie daran das Sie ggf nicht nur einen Anwender haben sondern hunderte von Anwendern die alle gleichzeitig das Formular benutzen und somit ggf tausend von gleichzeitigen Abfragen erzeugen.
Sie sollten also darauf achten sparsam mit den SQL Labels umzugehen und nicht unnötig viele SQL Labels in einem Formular zu Nutzen.
Wenn Sie die Geometrie des aktuellen Datensatzes anzeigen wollen nutzen Sie bitte immer das "Geometrie" Steuerelement statt dem "SQL Label. Das Geometrie Steuerelement erzeugt im Gegensatz zum SQL Label keine separate SQL Abfrage und belastest so nicht die Geschwindigkeit und Last auf das Formular und den Server.
Wenn möglich verwenden sie statt dem "SQL Label" immer das "SQL Textbox" Steuerelement. Wenn Sie mehrere "SQL Labels" haben die den gleichen SQL benutzten aber andere Werte anzeigen dann kombiniert das "SQL Textbox" Steuerelement intern die Abfragen aller auf dem Formular vorhandenen "SQL Textboxen" und macht wo möglich daraus eine Abfrage.
Wenn Sie Abfragen auf den aktuellen Datensatz machen um Felder zu berechnen oder zusammen zu fügen, ist es Performance Technisch besser ein "Formula" Steuerelement zu nutzen.
Ein "Formula" Steuerelement kann die bereits im Dialog abgefragten Werte lesen und muss keine
weiteren SQL Abfrage ausführen.
Schauen sie ins "log" Fenster um zu sehen wie viele SQLs ihr Formular beim öffnen und Blättern in Datensätzen ausführt werden.
Achten Sie auch darauf das ggf Indexe auf den Spalten liegen die sie Filtern damit die SQL Abfragen optimal schnell laufen.
Steuerelement spezifische Eigenschaften
SQL
SQL Anweisung welche den dynamischen Text definiert.
Im SQL können werte des aktuellen Datensätze eingesetzt werden in dem man die Feldnamen in eckige Klammern setzt. Die Feldnamen müssen hierbei in Großbuchstaben angegeben werden. Textwerte werden beim einsetzen hierbei vom Programm automatisch in Anführungszeichen gesetzt.
Wenn der SQL fehlt schlägt erscheint im Client im SQL Label der Wert "#Error#". Im Client Log sehen Sie den genauen SQL und können analysieren was fehlerhaft ist.
Beispiel:
select name from strasse where fid={FID_STRASSE}
Ab Version 23.1.117:
Wenn Sie Text Feldwerte ohne Anführungszeichen einsetzen wollen kann folgende Syntax verwendet werden:
{$FELDNAME$}
Dies können Sie nutzen wenn Sie z.B. den Tabellennamen der Abfrage dynamisch aus einem Feld setzen wollen.
Beispiel:
select name from {$TABLE_NAME_VON$} where fid={FID_STRASSE}
Wird diese Schreibweise verwendet dann erscheint bei fehlerhaften SQLs kein "#ERROR#" in der Anzeige da dies nicht erwünscht ist wenn der Tabellename leer ist.
UnavailableValue
Wert der angezeigt werden soll wenn die SQL Abfrage keinen Datensatz zurück liefert.
Precision
(optional) Anzahl der Nachkommastellen bei Fließkommazahlen.
UseBuffer
Nutzt den Zwischenspeicher um geladene Werte nicht erneut abfragen zu müssen. Beschleunigt die Anzeige, kann aber in Echtzeit aktualisierte Daten nicht anzeigen.
Font Size
Textgröße.
Font Name
Schriftart.
Font Color
Textfarbe.