Concurrency Handling in Applications

Iron Speed Designer implements optimistic concurrency handling in applications using stored procedures.  Applications created with in-line SQL are not created with concurrency handling.

Specifically, Iron Speed Designer calculates a checksum for each record.  If the checksum is different when the application prepares to update a record, then the application assumes record was changed by another user.  A warning message is displayed on the application page alerting the second user.

Database

Concurrency Handling

Microsoft Access

Not supported

Microsoft SQL Server 2005
Microsoft SQL Server 2000
Microsoft MSDE

Applications built on Microsoft SQL Server 2005, Microsoft SQL Server 2000, and the MSDE edition of Microsoft SQL Server 2000, use the Binary Checksum function to perform the checksum calculation.  The Binary Checksum function ignores these field types: text, ntext, image, cursor, and sql_variant.

Microsoft SQL Server 7

Microsoft SQL Server 7 does not support checksum calculations, so concurrency handling is not implemented for applications built on Microsoft SQL Server 7 databases.

Note: Iron Speed Designer support for SQL Server 7 was discontinued on June 30, 2006.

Oracle 9i and 10g

Concurrency handling is not implemented for applications built on Oracle 9i and 10g databases.

Caveats

Several scenarios can thwart the concurrency handling mechanism:

(1) One or more fields are computed in the database.  If your table has a field that is "computed in the database" by a database trigger or stored procedure, then the record will be changed causing the concurrency handling signature to be different.

(2) Code customization changes the record outside of the data access layer.  A code customization that updates the database outside of your application’s data access layer will cause the concurrency handling signature to be different.

(3) Database triggers.  Database triggers that make changes to the underlying table will cause the concurrency signature to be different.

See Also

Concurrency Control