Components | All | New | MacOS | Windows | Linux | iOS | ||||
Examples | Mac & Win | Server | Client | Guides | Statistic | FMM | Blog | Deprecated | Old |
FM.InsertOrUpdateRecord
Inserts or updates a record in a table in one line.
Component | Version | macOS | Windows | Linux | Server | iOS SDK |
FM FMSQL | 6.0 | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes | ✅ Yes |
Parameters
Parameter | Description | Example |
---|---|---|
FileName | The file name of where the table is inside. Can be empty to look for the table in all files. | Get(FileName) |
TableName | The name of the table to insert record into. Can be ID of table, so we lookup name by ID. Can be result of GetFieldName() function as we remove field name automatically. |
"Assets" |
IDField | The name of the field which provides an unique ID for each record, so we can identify the field. Can be ID of field, so we lookup name by ID. Can be result of GetFieldName() function as we remove table name automatically. |
"ID" |
IDValue | The value for the ID field to identify the record. Data type of parameter must match the data type of the field. |
$RecordID |
FieldName... | A field name to set. Can be ID of field, so we lookup name by ID. Can be result of GetFieldName() function as we remove table name automatically. |
"Model" |
FieldValue... | A field value to use for setting the field in the parameter before. Data type of parameter must match the data type of the field. |
"Test" |
Result
Returns OK or error.
Description
Inserts or updates a record in a table in one line.If the insert fails due to duplicate ID, we will update the record values.
You pass to this function table name (and optional filename).
To identify the record you pass the name of the ID field and the value for the record. The ID field must be unique.
Then you pass one pair of field name and value for each field you like to set in the new record.
This function combines FM.InsertRecord and FM.UpdateRecord. If the ID is already used, we update, else we insert a new record.
For one ID field, please use FM.InsertOrUpdateRecord, for two ID fields FM.InsertOrUpdateRecord2 and for three ID fields FM.InsertOrUpdateRecord3.
This function is broken in version 6.4 as it returns always a SQL error for insert. Please use 6.5 or newer.
With plugin version 7.2 or later, you can specify fields and table via IDs and the plugin will lookup them for you at runtime. Table IDs and table names must be unique across all open files for this to work correctly.
With plugin version 8.4 or newer, you can use GetFieldName() function to query field names and the plugin removes the table prefix with :: in the field name before passing it to SQL engine.
You can use FM.ExecuteSQL.LastSQL function to see later what SQL was created and run.
This function takes variable number of parameters. Pass as much parameters as needed separated by the semicolon in FileMaker.
Please repeat FieldName and FieldValue parameters as often as you need.
Examples
Update a record:
MBS( "FM.InsertOrUpdateRecord";
""; "Asset Management"; /* file and table name */
"Asset ID"; "1"; /* ID field and value */
"Information"; "Just a test"; /* first field and value */
"Category"; "BestItems" ) /* second field and value */
Insert or update record with 1 key field and 4 fields:
MBS("FM.InsertOrUpdateRecord"; $fileName; $tableName;
$field1; $value1; // <- primary key field name and value
$field2; $value2; $field3; $value3; $field4; $value4; $field5; $value5)
Set a field with red bold text:
MBS( "FM.InsertOrUpdateRecord";
Get(FileName); "Contacts";
"ID"; Contacts::ID;
"First"; TextStyleAdd ( TextColor ( "Hello" ; RGB ( 255 ; 0 ; 0 ) ); bold ) )
See also
- FM.ExecuteSQL
- FM.ExecuteSQL.LastSQL
- FM.InsertOrUpdateRecord2
- FM.InsertOrUpdateRecord3
- FM.InsertOrUpdateRecord4
- FM.InsertOrUpdateRecord5
- FM.InsertOrUpdateRecordQuery
- FM.InsertRecord
- JSON.InsertOrUpdateRecord
- SQL.InsertOrUpdateRecords
Release notes
- Version 11.2
- Added FM.InsertOrUpdateRecord4 and FM.InsertOrUpdateRecord5.
- Version 10.1
- Changed FM.InsertRecord, FM.CompareTables, FM.DeleteRecord, FM.DeleteRecords, FM.InsertOrUpdateRecord and FM.UpdateRecord to take table name from first field name if table name is empty.
- Version 8.5
- Added check to FM.InsertOrUpdateRecord2 to detect duplicate fields passed.
Blog Entries
- Insert or update with JSON
- New in MBS FileMaker Plugin 11.2
- MBS FileMaker Plugin, version 10.1pr1
- MBS FileMaker Plugin 6.0 for OS X/Windows
- MBS FileMaker Plugin, version 5.5pr1
FileMaker Magazin
This function is free to use.
Created 5th December 2015, last changed 15th April 2023