// Transaction parameters TTransParam = ( { prevents a transaction from accessing tables if they are written to by other transactions.} tpConsistency, { allows concurrent transactions to read and write shared data. } tpConcurrency, { Concurrent, shared access of a specified table among all transactions. } {$IFNDEF FB_21UP} tpShared, { Concurrent, restricted access of a specified table. } tpProtected, tpExclusive, {$ENDIF} { Specifies that the transaction is to wait until the conflicting resource is released before retrying an operation [Default]. } tpWait, { Specifies that the transaction is not to wait for the resource to be released, but instead, should return an update conflict error immediately. } tpNowait, { Read-only access mode that allows a transaction only to select data from tables. } tpRead, { Read-write access mode of that allows a transaction to select, insert, update, and delete table data [Default]. } tpWrite, { Read-only access of a specified table. Use in conjunction with tpShared, tpProtected, and tpExclusive to establish the lock option. } tpLockRead, { Read-write access of a specified table. Use in conjunction with tpShared, tpProtected, and tpExclusive to establish the lock option [Default]. } tpLockWrite, tpVerbTime, tpCommitTime, tpIgnoreLimbo, { Unlike a concurrency transaction, a read committed transaction sees changes made and committed by transactions that were active after this transaction started. } tpReadCommitted, tpAutoCommit, { Enables an tpReadCommitted transaction to read only the latest committed version of a record. } tpRecVersion, tpNoRecVersion, tpRestartRequests, tpNoAutoUndo {$IFDEF FB20_UP} ,tpLockTimeout {$ENDIF} );
由于Interbase 6.0代码“opensourced”,API的文档没有太大变化.因此,如果您想要了解其中任何一个,您正在查找的文档都在Interbase手册中.
你可以在这里得到它们http://www.firebirdsql.org/en/reference-manuals/
下面我在link中引用安·哈里森来快速解释一下常用的选项:
isc_tpb_consistency can cause performance problems due the fact that it’s locking tables and possibly excluding concurrent access.
isc_tpb_concurrency is the design center for Firebird. Readers don’t
block writers, writers don’t block readers, and both get a consistent
view of the database.isc_tpb_read_committed + isc_tpb_rec_version + isc_tbp_read_only give
inconsistent results and occasionally produces an error on a blob
read*, but unlike other modes, it does not block garbage collection so
it’s a good mode for long running read transactions that don’t have to
get the “right” answer.isc_tpb_read_committeed + isc_tpb_rec_version has the same performance
as isc_tpb_concurrency, but gets inconsistent results – the same query
run twice in the same transaction may return different rows.isc_tpb_read_committed + isc_tpb_no_rec_version + isc_tpb_wait is
slower than other modes because it will wait for a change to be
commited rather than reading the newest committed version. Like all
variants of isc_tpb_read_committed, it does not produce consistent
results.isc_tpb_read_committed + isc_tpb_no_rec_version + isc_tpb_no_wait
gives lots and lots of deadlock errors because every time a reader
encounters a record that’s being changed, it returns an error.
注意:我希望您可以看到,除了参数名称不同之外,如果删除“isc_tpb_”部分并不难理解.