delphi – 如何在UIB中使用Firebird事务隔离级别?
根据
documents,Firebird中有四个事务隔离级别.但是,据我所知,uib库(TUIBTransaction)中没有明确的隔离级别选择,但是有很多交易选项.我该怎么用?某处有文件吗?
解决方法
这些选项将改变隔离级别.正如@Arioch在其简短评论中所说,您可以更改隔离级别,更改TTransParams类型的属性选项.这是一组TTransParam,如下所示.
// 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,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,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_”部分并不难理解. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |