ExecuteSQL
 
Syfte 
Utför ett SQL-frågeuttryck för den angivna tabellförekomsten i en FileMaker Pro-fil.
Format 
ExecuteSQL(sqlfråga; fältavgränsare; radavgränsare {; argument... })
Parametrar 
sqlfråga - ett SQL SELECT-uttryck. Uttrycket kan innehålla en Union-instruktion som kombinerar resultatet av två frågor. Uttrycket kan innehålla programmässigt genererat SQL (dynamiska parametrar) som anger var valfria argument ska användas i frågan. Ange en dynamisk parameter genom att använda frågetecken (?).
fältavgränsare - teckensträng som används som avgränsare mellan fält i ett resultat. Om en tom sträng anges är avgränsaren ett kommatecken. Fältavgränsaren visas inte efter det sista fältet i resultatet.
radavgränsare - teckensträng som används som avgränsare mellan poster i ett resultat. Om en tom sträng anges är avgränsaren ett returtecken. Radavgränsaren visas inte efter den sista raden i resultatet.
argument - ett eller flera uttryck som utvärderas och används som värden för de dynamiska parametrarna i frågeuttrycket.
Returnerad datatyp 
text
Kommer från 
FileMaker Pro 12.0
Beskrivning 
Med ExecuteSQL kan du köra SQL SELECT-uttryck som innehåller dynamiska parametrar för att säkert ställa frågor i FileMaker Pro-databaser och på så sätt undvika säkerhetsbrister genom injektionsattacker.
ExecuteSQL identifierar inte relationer som skapats i FileMaker Pro, vilket ger dig flexibiliteten att definiera relationer i SQL-uttryck och hämta data från vilken tabell som helst, oberoende av layoutkontexten.
ExecuteSQL kan inte användas med SQL-uttryck som ändrar data eller databasschemat (exempelvis kommandona för att infoga i eller radera tabell).
Om ett fel uppstår under frågetolkningen eller -utförandet returneras ? i FileMaker Pro.
Kommentar
 •
 •
 •
 •
 •
Exempel 1 
Anta att en databas innehåller två tabeller, Anställda och Löner, som är relaterade genom fältet AnstID.
Lista som visar Anställda och Löner
Obs!  Fälten Anställda::AnstID, Löner::AnstID och Löner::Lön är numeriska fält.
Du kan använda funktionen ExecuteSQL om du vill returnera ett fältvärde från en specifik post utan att byta aktuell post eller ändra de hittade posterna.
ExecuteSQL("SELECT Avdelning FROM Anställda WHERE AnstID = 1") returnerar Development oavsett aktuell post, hittade poster eller layout.
Exempel 2 
Anta att du vill lägga till ett fält i tabellen Anställda som visar procentandelen av en medarbetares lön i förhållande till avdelningens totala summa för löner. Du skulle kunna använda en beräkning i FileMaker Pro och generera värdet, men du kan även använda funktionen ExecuteSQL om du vill specificera frågan med dynamiska parametrar.
Definiera ett beräkningsfält i tabellen Anställda och använd sedan funktionen ExecuteSQL till att specificera följande frågeuttryck:
Round(100 * Löner::Lön / ExecuteSQL("select sum(L.lön) from Anställda A join Löner L on A.AnstID = L.AnstID where A.Avdelning= ?"; ""; ""; Anställda::Avdelning); 2)
På varje anställdpost visar beräkningsfältet procentandelen av den anställdas lön i förhållande till den totala summan för löner i den anställdas avdelning. Till exempel, posten med efternamn "Svensson" returnerar 52,97 och posten med efternamn "Mehmet" returnerar 100.
Relaterade avsnitt 
Funktioner (efter kategori)
Funktioner (i bokstavsordning)
Om formler
Om funktioner
Definiera beräkningsfält
Använda operatorer i formler