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:
9.3
9.4
9.5
10.0
10.1
10.2
10.3
10.4
10.5
10.6
Statistic
FMM
Blog
FM.ExecuteFileSQLOnIdle
This is similar to FM.ExecuteFileSQL, except that it waits until idle to execute.
| Component | Version | macOS | Windows | Linux | Server | FileMaker iOS SDK |
| FM FMSQL | 6.5 | Yes | Yes | Yes | Yes | Yes |
Parameters
| Parameter | Description | Example | Flags |
|---|---|---|---|
| SQL Statement | the SQL statement | ||
| FileName | The file name of the database. | Get(FileName) | |
| Column Delimiter | Columns Separator, only used with SELECT statement. Default is TAB | 9 | Optional |
| Record Delimiter | Record Separator, only used with SELECT statement, Default is Return | 13 | Optional |
| Params | Optional, pass here parameters. One parameter to this function for each parameter you want to pass to the SQL statement. | 123 | Optional |
Result
Returns OK or error.
Description
This is similar to FM.ExecuteFileSQL, except that it waits until idle to execute.You run a script pause after using this function to give it time to execute.
See the other function for more info.
Seems like on FileMaker 11 you get LastError 8310 if you use fields with underscore in the name. You avoid that by placing the field names in quotes.
Use FM.ExecuteSQL.LastErrorMessage and FM.ExecuteSQL.LastError to see error message.
Examples
Create a new text field in a table:
MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE TestTable ADD MyField varchar")
Create in a script and check error:
# set command to run
Set Variable [ $r ; Value: MBS("FM.ExecuteFileSQLOnIdle"; "ALTER TABLE Kontakte ADD MyField varchar"; "Kontakte.fmp12") ]
# Make pause to run it
Pause/Resume Script [ Duration (seconds): ,1 ]
# Check error status
Set Variable [ $errorNumber ; Value: MBS( "FM.ExecuteSQL.LastError" ) ]
Set Variable [ $errorMessage ; Value: MBS( "FM.ExecuteSQL.LastErrorMessage" ) ]
Create a field:
Set Variable [ $r ; Value: MBS("FM.ExecuteFileSQLOnIdle";"ALTER TABLE TestTable ADD MyField varchar"; Get(FileName)) ]
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 a new text field in a table with variables for the names:
MBS("FM.ExecuteSQLOnIdle";"ALTER TABLE \"" & $TableName & "\" ADD \"" & $FieldName & "\" \"" & $FieldType & "\"")
See also
- FM.ExecuteFileSQL
- FM.ExecuteSQL
- FM.ExecuteSQL.LastError
- FM.ExecuteSQL.LastErrorMessage
- FM.ExecuteSQLOnIdle
Blog Entries
FileMaker Magazin
Created 16th October 2016, last changed 14th March 2020
FM.ExecuteFileSQL - FM.ExecuteSQL
Feedback: Report problem or ask question.
Links
MBS Xojo Plugins