Links überspringen

SQLQueryAusführen und Feldnamen mit Unterstrichen

FileMaker Training, Schulungen, Coaching

FileMaker Kurz-Tipp: SQL-Abfragen und FeldnamenFileMaker 12 beinhaltet mit „SQLQueryAusführen“ eine Funktion, die in der täglichen FileMaker-Praxis äußerst hilfreich ist. Sehr gut gebrauchen kann man diese Funktion zum Beispiel, um Wertelisten aus Feldwerten anderer Tabellen zu erstellen, ohne daß dafür eine Beziehung notwendig ist. Im Zusammenhang mit der von Arnold Kegebein in den FileMaker-Magazinen 201301 und 201302 vorgestellten Funktion „MagicValueList“ ergeben sich praktisch ungeahnte Möglichkeiten in Sachen FileMaker und Wertelisten.

Für diesen Zweck sind i.d.R. nur einfache SQL-Abfragen erforderlich wie beispielsweise SELECT Feldname FROM Tabelle WHERE Kriterium=xyz. Solche Abfragen funktionieren in FileMaker 12 anstandslos – zumindest, wenn die beteiligten Feldnamen keinen Unterstrich am Anfang enthalten. Viele FileMaker-Entwickler kennzeichnen jedoch Schlüsselfelder mit einem Unterstrich als Prefix, damit diese in den Felddefinitionen und im Beziehungsdiagramm ganz oben stehen. Leider befindet sich in allen bisherigen FileMaker-Versionen ein Fehler, der bewirkt, daß SQL-Abfragen mit solchen Feldnamen nicht funktionieren.

Ergebnis = „?“

Befindet sich am Anfang eines Feldnamens ein Unterstrich, liefert die Funktion „SQLQueryAusführen“ nur noch ein Fragezeichen als Ergebnis. Aber keine Angst: Es gibt Möglichkeiten, diesen Fehler zu umgehen.

Praxisbeispiel: Wir haben eine Kunden-Datenbank, mit der Adressen in einer weiteren Tabelle mit einer 1:n-Beziehung verknüpft sind. Die jeweilige Standardadresse des Kunden ist im Feld <<sta.Standard>> mit dem Wert „1“ markiert, alle weiteren Adressen enthalten diese Markierung nicht. Wenn wir nun die ID des entsprechenden Adreß-Datensatzes ausgehend aus der Kundendatenbank per SQL-Abfrage herausfinden wollen, würde die Abfrage lauten:

SQLQueryAusführen("SELECT _pk_Adress_ID FROM Adressen WHERE sta.Standard=1"; ""; "")

Diese Abfrage würde nicht funktionieren und nur ein Fragezeichen als Ergebnis liefern. Dies liegt allerdings nicht daran, daß ein Fehler in der SQL-Abfrage vorhanden wäre, sondern FileMaker scheint an dieser Stelle einfach den Unterstrich des Feldnamens <<_pk_Adress_ID>> nicht zu mögen.

Abhilfe schafft eine Quotierung des Feldnamens – vielen Dank an dieser Stelle für den entsprechenden Tipp aus dem Forum des FileMaker Magazins von Otmar Kramis. Wenn die Abfrage folgendermaßen modifiziert wird:

SQLQueryAusführen("SELECT \"_pk_Adress_ID\" FROM Adressen WHERE sta.Standard=1"; ""; "")

…dann funktioniert sie auch problemlos in FileMaker :-)

Nachtrag: Tipps zur robusten Entwicklung von SQL-Queries

Der FileMaker-Entwickler Robert Kaiser empfiehlt in einem weiteren Forenbeitrag einen Artikel von filemakerhacks.com, in dem beschrieben wird, wie SQL-Queries in FileMaker so entwickelt werden können, daß sie beispielsweise auch nach Umbenennung oder Änderung von Beziehungen oder Feldern korrekt funktionieren. Auch die geschilderten Probleme mit den Unterstrichen am Anfang von Feldnamen werden mit dieser Lösung beseitigt. Der englischsprachige Artikel beschreibt die Nutzung eigener Funktionen (Custom Functions), mit denen SQL-Abfragen in FileMaker extrem robust entwickelt werden können. Es lohnt sich also, in dieses Thema weiter einzusteigen :-)

Hinterlassen Sie einen Kommentar

Diese Seite teilen:

ERP-Software so flexibel wie Ihr Unternehmen.
Wir beraten Sie gern.

Anpassbare ERP-Software für Mac, Windows und iOS.

Sie sind hier: SQLQueryAusführen in FileMaker mit Feldnamen und Unterstrichen