Topics   All   Mac OS X (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Guides   Examples
New in version: 7.2   7.3   7.4   7.5   8.0   8.1   8.2   8.3   8.4   8.5    Statistic  

FM.SQL.InsertRecordsToSQL

Inserts records in SQL database from records in memory.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
FM FMSQL SQL 6.4 Yes Yes Yes Yes Yes
MBS( "FM.SQL.InsertRecordsToSQL"; SQLref; Connection; InsertTableName; FieldNames { ; StartRow; EndRow; Replace } )   More

Parameters

Parameter Description Example value
SQLref The reference number returned by FM.SQL.Execute function. $SQLRef
Connection The connection reference number gained with SQL.NewConnection. $Connection
InsertTableName The name of the table to insert record into. "Assets"
FieldNames A list of field names for the insert.
Empty entries in the list are ignored.
"Model¶Names"
StartRow Optional
The index of the start row.
First row is 0.
Pass -1 or nothing for default which is starting with row 0.
-1
EndRow Optional
The index of the end row.
First row is 0. Last Row would be FM.SQL.RowCount-1.
Pass -1 to use all rows and the plugin will internally use RowCount-1.
-1
Replace Optional
Available in MBS FileMaker Plugin 7.1 or newer.
Set to 1 to replace existing entries.
Currently available for MySQL and databases with same syntax.
0

Result

Returns OK or error.

Description

Inserts records in SQL database from records in memory.
This function allows to easily copy a lot of records from a query in FileMaker database into a SQL database.
Please provide field names in other table. The order has to match those in the record set.
Due to passing in new field names, you can even rearrange values from one column to other while copying. In the SQL you can use functions for sums or join data from several tables together to fill a new table.
Reports an error if field name list doesn't match column count of the query result.
Function will fail if data types in source and dest fields do not match for assignment. e.g. date and time fields will not work, only timestamp fields.

For insert within FileMaker, please use FM.SQL.InsertRecords.

Examples

Insert Records to SQL database:

Set Variable [$InsertResult; Value:MBS( "FM.SQL.InsertRecordsToSQL"; $Records; $connection; $BaseTableName; $FieldNames)]

Copy records to SQLite:

Set Variable [ $Connection ; Value: MBS("SQL.NewConnection") ]
# Tell plugin where SQLite library is
Set Variable [ $result ; Value: MBS("SQL.InternalSQLiteLibrary.Activate") ]
# Tell plugin we want to use SQLite
Set Variable [ $result ; Value: MBS("SQL.SetClient"; $Connection; "SQLite") ]
# Connect to database in read/write/create mode. Creates new file if none exists.
Set Variable [ $result ; Value: MBS("SQL.Connect"; $Connection; "/Users/cs/Desktop/mydatabase.sqlite") ]
If [ $result = "OK" ]
    # Query records in FileMaker
    Set Variable [ $Records ; Value: MBS( "FM.SQL.Execute"; Get(FileName); "SELECT FirstName, LastName, Birthday FROM People") ]
    # Transfer to other database
    Set Variable [ $Records ; Value: MBS( "FM.SQL.InsertRecordsToSQL"; $Records; $Connection; "People"; "FirstName¶LastName¶Birthday") ]
    # Cleanup
    Set Variable [ $result2 ; Value: MBS("SQL.Commit"; $Connection) ]
    Set Variable [ $result2 ; Value: MBS( "FM.SQL.Release"; $Records ) ]
    If [ $result ≠ "OK" ]
        Show Custom Dialog [ "Error: " & $result ]
    Else
        Show Custom Dialog [ "Record exported." ]
    End If
End If
Set Variable [ $result2 ; Value: MBS("SQL.FreeConnection"; $Connection) ]

See also

Example Databases

Created 1st August 2016, last changed 7th November 2018


FM.SQL.InsertRecords   -   FM.SQL.JSONRecord

Feedback: Report problem or ask question.




Links
MBS Xojo tutorial videos