Administrator’s Guide
Table Of Contents
- Preface Introducing FileMaker Pro 5.5 Unlimited
- Chapter 1 Installing the FileMaker Web Server Connector
- Chapter 2 Administering the Web Server Connector
- Chapter 3 Publishing your database on the Web
- Types of web publishing
- Using the FileMakerPro Web Companion
- Creating a custom home page
- Creating a custom home page for Instant Web Publishing
- Creating a custom web site using a database layout
- Web Companion support for Internet mediatypes
- Monitoring your site
- Exporting data to a static HTML page
- Testing your site without a networkconnection
- Opening password-protected databasesremotely
- Chapter 4 Custom web publishing using CDML
- About the CDML examples
- General steps for custom web publishing using CDML
- About CDML format files
- Generating FileMakerPro CGI requests using CDML
- Using the CDML Tool and templates
- Modified CDML tags
- About the CDML Reference database
- Creating error messages
- Using an encoding parameter with a CDML replacement tag
- Planning your web site
- Chapter 5 Using FileMakerPro XML to deliver your data
- About the XML examples
- General process for custom web publishing using XML
- Generating an XML document
- Using the FMPDSORESULT grammar
- Using the FileMakerPro Extended XMLgrammars
- About UTF-8 encoded data
- Generating FileMakerPro CGI requests for an XML document
- Using style sheets with your XMLdocument
- Comparing CSS, XSLT, and JavaScript
- Looking at the XML Inventory example
- Chapter 6 Using Java and JDBC to deliver your data
- About the JDBC examples
- About JDBC
- Using the FileMaker JDBC Driver
- SQL supported by the FileMaker JDBCDriver
- FileMakerPro support for Unicodecharacters
- About the FileMaker JDBC Driver interfaces and extensions
- Example 1: Looking at the FileMakerPro Explorer application
- Example 2: Creating the JBuilder Inventoryapplication
- Example 3: Creating the Visual Cafe Inventory application
- Using the FileMaker Java classes
- Appendix A Valid names used in CGI requests for FileMaker XML data
- Generating a –find, –findall, or –findany request
- Generating a –view request
- Generating a –new request
- Generating an –edit request
- Generating a –delete request
- Generating a –dbnames request
- Generating a –layoutnames request
- Generating a –scriptnames request
- Generating a –dbopen request
- Generating a –dbclose request
- Specifying parameters for the request
- –db (Database)
- –lay (Layout)
- –format (Format)
- –recid (Record ID)
- –modid (Modification ID)
- –lop (Logical operator)
- –op (Comparison operator)
- –max (Maximum records)
- –skip (Skip records)
- –sortfield (Sort field)
- –sortorder (Sort order)
- –script (Script)
- –script.prefind (Script before Find)
- –script.presort (Script before Sort)
- –styletype (Style type)
- –stylehref (Style href)
- –password (Database password)
- field name (Name of specific field)
- Appendix B FileMaker Pro values for error codes
- Appendix C Enabling the FileMaker Pro Web Companion in MacOS X
- Index
6-6 FileMaker Pro 5.5 Unlimited Administrator’s Guide
{
System.out.println("Could not load driver");
}
catch(SQLException sqlException)
{
System.out.println("JDBC Error: " +
sqlException.getMessage());
}
}
}
Using the RecordID pseudo column
The FileMaker JDBC Driver provides a RecordID pseudo column
(in place of a primary key used by other types of databases) that can
be specified in the column name list of a SELECT statement or in the
WHERE clause of SELECT, UPDATE or DELETE statements. This
lets you guarantee that the statement will operate on a specific
record.
All other columns are ignored when the RecordID pseudo column is
used in a WHERE clause.
UPDATE "Employees.fp5" SET department='engineering' WHERE
recordid=4
Using the ModID pseudo column
Each record in a FileMaker Pro database has a corresponding
modification ID (ModID) number that increases incrementally every
time the record is modified. To detect modification collisions, the
FileMaker JDBC Driver provides a ModID pseudo column that can
be used in the WHERE clause of an UPDATE statement in
conjunction with the RecordID. The Web Companion compares the
ModID in the WHERE clause to the current ModID of the record and
an error is returned if they do not match.
...
Connection connection = DriverManager.getConnection("jdbc:fmpro:
http://localhost", "some_user", "some_password");
Statement statement = connection.createStatement();
// retrieve all of the records where department equals "engineering"
ResultSet resultSet = statement.executeQuery("SELECT recordid,
modid, "last name", "first name" FROM \"Employees.fp5\" WHERE
department='engineering'");
// create an UPDATE statement for changing the department to "software
// engineering"
PreparedStatement preparedStatement =
connection.prepareStatement("UPDATE \"Employees.fp5\" SET
department='software engineering' WHERE recordid=? AND
modid=?");
while (resultSet.next())
{
// set the recordid parameter
preparedStatement.setString(1,
resultSet.getString("RECORDID"));
// set the modid parameter
preparedStatement.setString(2, resultSet.getString("MODID"));
// change the department from "engineering" to "software
// engineering"
preparedStatement.executeUpdate();
}
...
SQL statement examples
The following are some examples of SQL statements, some of which
use RecordID and ModID pseudo columns, and DbOpen and
DbClose pseudo procedures:
SELECT recordid, modid, "last name", "first name", department FROM
"Employees.fp5" WHERE "last name"='smith' AND "first name" = 'joe'
SELECT * FROM "Employees.fp5" WHERE recordid=4
SELECT recordid, modid, * FROM "employees.fp5"