Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
12.2
12.3
12.4
12.5
13.0
13.1
13.2
13.3
13.4
13.5
Statistic
FMM
Blog
This is similar to FM.ExecuteSQL, except that it waits until idle to execute.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
FM FMSQL | 1.2 | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes, on macOS and Windows | ❌ No |
This function was deprecated. Use FM.ExecuteFileSQLOnIdle instead.
Parameter | Description | Example | Flags |
---|---|---|---|
SQL Statement | the SQL statement | ||
Column Delimiter | Columns Separator, only used with SELECT statement. Default is tab character, which has unicode code point 9. You can pass delimiter as text (one character only) or as unicode code point (as number). |
Optional | |
Record Delimiter | Record Separator, only used with SELECT statement. Default is return character, which has unicode code point 13. You can pass delimiter as text (one character only) or as unicode code point (as number). |
Optional | |
Params... | Optional, pass here parameters. One parameter to this function for each parameter you want to pass to the SQL statement. | 123 | Optional |
FileMaker Type | SQL Type |
Text | varchar |
Number | decimal |
Date | date |
Time | time |
Timestamp | timestamp |
Container | blob |
Create a new text field in a table:
MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable ADD MyField varchar")
And delete the field:
MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable DROP COLUMN MyField")
Create container field by making BLOB:
Set Variable [ $r ; Value: MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable ADD MyField blob") ]
Pause/Resume Script [ Duration (seconds): ,1 ]
If [ MBS("FM.ExecuteSQL.LastError") ≠ 0 ]
Show Custom Dialog [ "Error adding column" ; MBS("FM.ExecuteSQL.LastError") & ": " & MBS("FM.ExecuteSQL.LastErrorMessage") ]
Else
Show Custom Dialog [ "Removed Column" ; "OK" ]
End If
Create new table:
MBS("FM.ExecuteSQLOnIdle";"CREATE TABLE \"MyTABLE\" (test varchar)")
Create new index:
MBS("FM.ExecuteSQLOnIdle";"CREATE INDEX \"IndexLastname\" ON \"Persons\" (\"LastName\");")
Add a global field:
MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable ADD MyGlobalField varchar global")
Create a field:
Set Variable [ $r ; Value: MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable ADD MyField varchar") ]
Pause/Resume Script [ Duration (seconds): ,1 ]
If [ MBS("FM.ExecuteSQL.LastError") ≠ 0 ]
Show Custom Dialog [ "Error adding column" ; MBS("FM.ExecuteSQL.LastError") & ": " & MBS("FM.ExecuteSQL.LastErrorMessage") ]
Else
Show Custom Dialog [ "Removed Column" ; "OK" ]
End If
Remove a field:
Set Variable [ $r ; Value: MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable DROP COLUMN MyField") ]
Pause/Resume Script [ Duration (seconds): 0.1 ]
If [ MBS("FM.ExecuteSQL.LastError") ≠ 0 ]
Show Custom Dialog [ "Error removing column" ; MBS("FM.ExecuteSQL.LastError") & ": " & MBS("FM.ExecuteSQL.LastErrorMessage") ]
Else
Show Custom Dialog [ "Removed Column" ; "OK" ]
End If
Change default value:
Set Variable [ $r ; Wert: MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE myTable ALTER myField SET DEFAULT 'FileMaker'") ]
Create numeric field with default value:
MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable ADD MyField decimal DEFAUlT 123“)
This function checks for a license.
Created 18th August 2014, last changed 25th March 2022