8. the easiest way to send e-mail, text messages and faxes
from FileMaker Server 12
⢠Checks which e-mails
need to be sent, based
on FileMaker ďŹeld criteria
⢠Runs a background
process
⢠Supports plain text as
well as HTML e-mail
⢠Easy implementation
⢠Ideal for integration in
9. the ultimate developer tool that saves you tons of
development time
⢠Stores complete
FileMaker ďŹelds, tables,
scripts, script steps and
layouts in an easy-to-use
library.
⢠Clip Editor
⢠Clip History
⢠easy access with the
âsnippetsâfeature.
10. allows you to easily control printer switching from within
your FileMaker
⢠switches printers on the
ďŹy
⢠generates PDF in runtime
solutions
⢠captures printer
settings like page
orientation, paper size
etc. and restores them at
the time of printing
11. Do more with SQL in FileMaker
⢠uses SQL statements to
select, update, create or
delete FileMaker records.
⢠doesn't require any
drivers
⢠Returns native FileMaker
data types like dates,
images, formatted text,
⢠Debug tools
12. Menu
⢠FQL Engine demystiďŹed
⢠Overview of most common SQL commands
⢠Other DoSQL Commands
⢠Common mistakes
13. FQL engine?
⢠FileMaker code that accesses the data in
another way
⢠Providing an alternative way ofâtalkingâto
the data
⢠Using multiple FQL interfaces to the
database(s)
20. What does the FQL
engine support?
⢠SQL-92
⢠SELECT
⢠DELETE
⢠INSERT
⢠UPDATE
⢠CREATE TABLE
⢠ALTER TABLE
⢠CREATE INDEX
⢠DROP INDEX
21. What does
executeSQL support?
⢠SQL-92
⢠SELECT
⢠DELETE
⢠INSERT
⢠UPDATE
⢠CREATE TABLE
⢠ALTER TABLE
⢠CREATE INDEX
⢠DROP INDEX
29. Result = TEXT
⢠Date:â2013-08-15â
⢠Time:â02:49:03â
⢠Timestamp:â2013-08-15 02:49:03â
⢠Containers: only the name of the ďŹle: e.g.
image.jpeg
30. Select with DoSQL
⢠DoSQL can retrieve the data like ExecuteSQL
if you want
⢠FQL-engine does support native FileMaker
types, so does myFMbutler DoSQL 2
⢠DoSQL supports container ďŹelds
⢠Compatible with FileMaker Pro 11 and
above
34. INSERT,
UPDATE & DELETE
⢠Supported through JDBC, ODBC and the
plug-in API
⢠NOT supported through ExecuteSQL()
⢠So plug-ins are the only ones capable of
supporting FQL fully from the inside
35. Letâs start with INSERT
⢠syntax: INSERT INTO table_name
[(column_name, ...)] VALUES (expr, ...)
⢠can be a prepared statement ( it better be )
⢠VALUES can be a SELECT expression
⢠can be a lot faster than a script doing new
record, set ďŹeld, set ďŹeld,⌠why?
36. Committing records
⢠for JDBC & ODBC this is a setting
⢠the plug-in API is always auto-committing
and has no cursor support
37. INSERT
⢠No need to change the context
⢠Logging
⢠Audit trail
⢠Creating statistics, reports, ...
38. So, You Think You Can
UPDATE
⢠UPDATE table_name SET column_name =
expr, ... [ WHERE { conditions } ]
⢠A user can lock a record
⢠the error codes returned are the FileMaker
error codes ( e.g. 301 )!
⢠compare with SELECT, it will never return
error 401
39. Select for update
⢠SELECT for UPDATE only locks records on
JDBC and ODBC
⢠plug-in cannot lock a record, but SELECT for
UPDATE returns error when records are
locked
⢠user can lock a record
40. UPDATE
⢠No need to change the context
⢠Changing data (in bulk) of related records
⢠Triggering auto-enter calculations of related
records
41. Delete
⢠DELETE FROM table_name [ WHERE
{ conditions } ]
⢠check for record locking!
⢠check for privileges!
43. Modifying Structure
using SQL
⢠this is dangerous stuďŹ, keep backups
⢠a calculation ďŹeld cannot return a result
when the schema is being changed, this
results in a deadlock
⢠modifying schema on idle can be done
using DoSQL 2.
57. Use hard coded
field names
⢠Do not use GetFieldName ( ďŹeld ) instead
⢠Do not push FileMaker to solve
GetFieldName() validation bugs with
unrelated ďŹelds
Linda DuBose - http://www.sxc.hu
58. Use SQL in
Stored Calculations
⢠And see the continents move while your
schema recalculates
59. Never check for errors
⢠Just assume you SQL queries are perfect
⢠ExecuteSQL(): never check for Get
( LastError )
⢠DoSQL: set DoSQL_SupressAlerts( True ) and
never use DoSQL_LastErrNum
Michael & Christa Richert - http://www.sxc.hu
60. Leave your queries in
the data viewer
⢠when you are ďŹnished with debugging
and use your computer to grill your meat
Chris Chidsey - http://www.sxc.hu
61. Do more with SQL
⢠Even when itâs faster to do it using old
school methods
⢠Know that because SQL calculation are
harder to write, they must be the better way
do to things
Everything
62. Do more with SQL in FileMaker
⢠uses SQL statements to
select, update, create or
delete FileMaker records.
⢠doesn't require any
drivers
⢠Returns native FileMaker
data types like dates,
images, formatted text,
⢠Debug tools