Referenz > Funktionen > Logikfunktionen > SQLAusführen
 
SQLAusführen
Zweck 
Führt eine SQL-Abfrage für das festgelegte Tabellenauftreten in einer FileMaker Pro-Datei aus.
Format 
SQLAusführen ( sqlAbfrage ; Feldtrennzeichen ; Zeilentrennzeichen { ; Argumente... } )
Parameter 
sqlAbfrage - eine SQL SELECT-Anweisung. Die Anweisung kann eine Union-Klausel enthalten, die die Ergebnisse von zwei Abfragen kombiniert. Die Anweisung kann programmtechnisch generierte SQL-Abfragen (dynamische Parameter) enthalten, die angeben, wo optionale Argumente in einer Abfrage verwendet werden sollen. Verwenden Sie das Fragezeichen(?), um einen dynamischen Parameter anzugeben.
Feldtrennzeichen - die als Trennzeichen zwischen Feldern in einem Ergebnis verwendete Zeichenfolge. Falls eine leere Zeichenfolge angegeben wurde, ist das Trennzeichen ein Komma. Das Feldtrennzeichen wird nicht nach dem letzten Feld in dem Ergebnis angezeigt.
Zeilentrennzeichen - die als Trennzeichen zwischen Datensätzen in einem Ergebnis verwendete Zeichenfolge. Falls eine leere Zeichenfolge angegeben wurde, ist das Trennzeichen ein Zeilenumbruch. Das Zeilentrennzeichen wird nicht nach der letzten Zeile in dem Ergebnis angezeigt.
Argumente - ein oder mehrere Ausdrücke, die ausgewertet und als Werte für die dynamischen Parameter in der Abfrage verwendet werden.
Zurückgegebener Datentyp 
Text
Ursprung in 
FileMaker Pro 12.0
Beschreibung 
Mit SQLAusführen können Sie SQL SELECT-Anweisungen ausführen, die dynamische Parameter zur sicheren Abfrage von FileMaker Pro-Datenbanken enthalten, um Sicherheitsschwächen durch Injection-Angriffe zu vermeiden.
SQLAusführen erkennt keine in FileMaker Pro erstellten Beziehungen, was Ihnen die nötige Flexibilität gibt, unabhängig vom Layoutkontext Beziehungen in SQL-Anweisungen zu definieren und Daten aus einer Tabelle abzurufen.
SQLAusführen kann nicht mit SQL-Anweisungen verwendet werden, die Daten oder das Datenbankschema ändern (zum Beispiel die Befehle „Einfügen in“ oder „Tabelle löschen“).
Falls der Fehler während der Analyse oder der Ausführung der Abfrage auftritt, gibt FileMaker Pro ein ? zurück.
Hinweise 
Um Datumsangaben in einer SQL-Abfrage die korrekte Formatierung zuzuweisen, verwenden Sie die DATE-Anweisung. Wenn Sie die DATE-Anweisung nicht verwenden, behandelt SQLAusführen die Datumsangaben als Zeichenliterale.
FileMaker Pro gibt Datums-, Zeit- und Zahlendaten im Unicode-/SQL-Format und nicht im Gebietsschema des Betriebssystems oder der Datei zurück.
SQLAusführen akzeptiert nur ISO-Datums- und Zeitformate der SQL-92-Syntax ohne geschweifte Klammern: SQLAusführen akzeptiert das ODBC/JDBC-Format für Datums-, Zeit- und Zeitstempelkonstanten in geschweiften Klammern nicht.
FileMaker SQL verwendet die binäre Unicode-Sortierfolge, die sich von der von FileMaker Pro verwendeten Sortierfolge mit Sprachsortierung oder mit sprachneutraler Standardsortierfolge unterscheidet.
Weitere Informationen über die Syntax der SELECT-Anweisung, unterstützte SQL-Anweisungen, Ausdrücke und Katalogfunktionen finden Sie im FileMaker ODBC- und JDBC-Handbuch und in der FileMaker SQL-Referenz.
Beispiel 1 
Angenommen, eine Datenbank enthält die beiden Tabellen „Mitarbeiter“ und „Gehälter“, die über das Feld „MitarbID“ miteinander in Beziehung stehen.
Liste mit Mitarbeitern und Gehältern
Hinweis  Die Felder „Mitarbeiter::MitarbID“, „Gehälter::MitarbID“ und „Gehälter::Gehalt“ sind Zahlenfelder.
Sie können die Funktion „SQLAusführen“ verwenden, um einen Feldwert von einem bestimmten Datensatz zurückzugeben, ohne den aktuellen Datensatz oder die Ergebnismenge zu ändern.
SQLAusführen ( "SELECT Abteilung FROM Mitarbeiter WHERE MitarbID = 1"; ""; "" ) gibt unabhängig vom aktuellen Datensatz, von der Ergebnismenge oder vom Layout Entwicklung zurück.
Beispiel 2 
Angenommen, Sie möchten der Tabelle „Mitarbeiter“ ein Feld hinzufügen, das den prozentualen Anteil des Gehalts des Mitarbeiters im Verhältnis zum Gesamtgehalt in einer Abteilung anzeigt. Auch wenn Sie diesen Wert in FileMaker Pro mithilfe einer Formel generieren können, können Sie die Funktion SQLAusführen verwenden, um diese Abfrage mithilfe von dynamischen Parametern zu definieren. Das folgende Beispiel verwendet Tabellenaliasse für die Tabelle „Mitarbeiter“ (M) und die Tabelle „Gehalt“ (G) für die Angabe von Feldern (G.Gehälter, M.MitarbID und G.MitarbID).
Definieren Sie ein Formelfeld in der Tabelle „Mitarbeiter“ und geben Sie anschließend mithilfe der Funktion SQLAusführen die folgende Abfrage an:
Runden (
   100 * Gehälter::Gehalt / SQLAusführen (
      "SELECT SUM (S.Gehalt)
      FROM Mitarbeiter M
      JOIN Gehälter G
      ON M.MitarbID = G.MitarbID
      WHERE M.Abteilung = ?";
      ""; ""; Mitarbeiter::Abteilung
   ) ;
2 )
Das Formelfeld zeigt bei jedem Mitarbeiterdatensatz den prozentualen Anteil des Gehalts des Mitarbeiters im Verhältnis zur Summe der Gehälter für die Abteilung des Mitarbeiters an. So gibt zum Beispiel der Datensatz dem dem Nachnamen „Schmidt“ 52,97 und der Datensatz mit dem Nachnamen „Mehmet“ 100 zurück.
Weiterführende Themen 
Funktionen (Kategorienliste)
Funktionen (Alphabetische Liste)
Über Formeln
Erläuterung von Funktionen
Definieren von Formelfeldern
Verwenden von Operatoren in Formeln