Referenz > Funktionen > Logikfunktionen > SQLAusführen
 

SQLAusführen

Führt eine SQL-Abfrage für das festgelegte Tabellenauftreten in einer FileMaker Pro Advanced-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 durch Semikolons (;) getrennte 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 Advanced-Datenbanken enthalten, um Sicherheitsschwächen durch Injection-Angriffe zu vermeiden.

SQLAusführen erkennt keine in FileMaker Pro Advanced 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“).

Wenn Sie in sqlAbfrage mehrere dynamischer Parameter verwenden, wird das erste Fragezeichen durch den ersten Argumente-Parameter ersetzt, das zweite durch den zweiten usw.

Falls der Fehler während der Analyse oder der Ausführung der Abfrage auftritt, gibt FileMaker Pro Advanced 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 Advanced 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 Advanced 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.

Die Funktion „SQLAusführen“ verwendet die SQL SELECT-Anweisungen, um Tabellen in FileMaker-Datenquellen, nicht ODBC-Datenquellen abzufragen. Um SELECT und andere unterstützte SQL-Anweisungen für ODBC-Datenquellen auszuführen, verwenden Sie den Scriptschritt „SQL ausführen“.

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 Advanced 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