10bet网址
MySQL NDB集群API开发指南
下载本手册
PDF(美国Ltr)- 3.3 mb
PDF (A4)- 3.3 mb
HTML下载(TGZ)- 0.5 mb
HTML下载(Zip)- 0.5 mb


2.3.25 NdbTransaction类

介绍相关的信息NdbTransaction类。

NdbTransaction类概述

父类

没有一个

子类

没有一个

描述

事务在NDB API中用NdbTransaction对象,该对象属于Ndb对象,并使用Ndb: startTransaction ().控件表示的操作列表组成事务NdbOperation类,或由它的一个子类-NdbScanOperationNdbIndexOperation,或NdbIndexScanOperation.每个操作只访问一个表。

方法

下表列出了该类的公共方法以及每个方法的用途或用途:

表2.65 NdbTransaction类方法及说明

的名字 描述
close () 关闭事务
commitStatus () 获取事务的提交状态
deleteTuple () 使用删除元组NdbRecord
execute () 执行事务
executePendingBlobOps () 中执行事务NoCommit模式,如果它包含任何指定类型的尚未执行的blob部分操作。
getGCI () 获取事务的全局检查点ID (GCI)
getMaxPendingBlobReadBytes () 获取当前blob读批大小
getMaxPendingBlobWriteBytes () 获取当前blob写批处理大小
getNdbError () 获取最近的错误
getNdbErrorLine () 获取最近发生错误的行号
getNdbErrorOperation () 获取导致错误的最近操作
getNextCompletedOperation () 获取已执行的操作;用于查找错误
getNdbOperation () 得到一个NdbOperation
getNdbScanOperation () 得到一个NdbScanOperation
getNdbIndexOperation () 得到一个NdbIndexOperation
getNdbIndexScanOperation () 得到一个NdbIndexScanOperation
getTransactionId () 获取事务ID。
insertTuple () 使用插入元组NdbRecord
readTuple () 使用读取元组NdbRecord
refresh () 防止事务超时
releaseLockHandle () 发布一个NdbLockHandle对象,一旦不再需要
scanIndex () 使用执行索引扫描NdbRecord
scanTable () 使用执行表扫描NdbRecord
setMaxPendingBlobReadBytes () 设置blob读批大小
setMaxPendingBlobWriteBytes () 设置blob写批处理大小
setSchemaObjectOwnerChecks () 启用或禁用模式对象所有权检查
解锁() 在当前事务上创建解锁操作
updateTuple () 使用更新元组NdbRecord
writeTuple () 写一个元组NdbRecord

的方法readTuple ()insertTuple ()updateTuple ()writeTuple ()deleteTuple ()scanTable (),scanIndex ()要求使用NdbRecord

类型

NdbTransaction定义了两种公共类型,如下表所示:

表2.66 NdbTransaction类类型及说明

的名字 描述
CommitStatusType () 描述事务的提交状态
ExecType () 确定应该提交还是回滚事务

使用事务。在取得NdbTransaction对象,它的应用如下:

  1. 使用以下方法中的任意一种将操作分配给事务:

    • getNdbOperation ()

    • getNdbScanOperation ()

    • getNdbIndexOperation ()

    • getNdbIndexScanOperation ()

    调用这些方法之一定义操作。同一个操作上可以定义多个操作NdbTransaction对象,在这种情况下,它们将并行执行。定义了所有操作后,将execute ()方法将它们发送到NDB用于执行的内核。

  2. execute ()方法返回时,NDB内核已完成之前定义的所有操作的执行。

    所有分配的操作都应该正确定义之前调用execute ()方法。

  3. execute ()以下面列出的三种模式之一运行:

    • NdbTransaction: NoCommit:执行操作而不提交。

    • NdbTransaction:提交:执行任何剩余的操作,然后提交完整的事务。

    • NdbTransaction:回滚:回滚整个事务。

    execute ()还配备了一个额外的错误处理参数,该参数提供了下面列出的两个备选方案:

    • NdbOperation: AbortOnError:任何错误都会导致事务中止。这是默认的行为。

    • NdbOperation: AO_IgnoreError:即使为该事务定义的一个或多个操作失败,该事务仍将继续执行。

NdbTransaction: close ()

描述

此方法关闭事务。这相当于打电话Ndb: closeTransaction ()

如果事务尚未提交,则在调用此方法时中止事务。看到Ndb: startTransaction ()

签名
Void关闭(Void)
参数

没有一个

返回值

没有一个

NdbTransaction: commitStatus ()

描述

该方法获取事务的提交状态。

签名
commitstatusstype commitStatus (void)
参数

没有一个

返回值

事务的提交状态,类型的值CommitStatusType

NdbTransaction: CommitStatusType

介绍相关的信息CommitStatusType数据类型。

描述

此类型用于描述事务的提交状态。

枚举值

下表中列出了可能的值及描述:

表2.67 NdbTransaction::CommitStatusType值及说明

的名字 描述
NotStarted 事务尚未启动。
开始 事务已经启动,但尚未提交。
承诺 事务已经完成,并且已经提交。
流产 事务被中止。
NeedAbort 事务遇到错误,但尚未中止。

事务的提交状态可以使用commitStatus ()

NdbTransaction: deleteTuple ()

描述

使用删除元组NdbRecord

签名
删除NdbOperation (NdbRecordkey_rec, const char*key_row, NdbRecord*result_rec, char *result_row, const unsigned char*result_mask= 0, const NdbOperation::OperationOptions*选择= 0, Uint32sizeOfOptions= 0)
参数

该方法采用以下参数:

  • key_rec指针是指向NdbRecord用于表或索引。如果在表上,则删除操作使用主键;如果在索引上,则操作使用唯一键。在这两种情况下key_rec必须包括键的所有列。

  • key_row传递给此方法定义要删除的元组的主键或唯一键,并且必须保持有效直到execute ()被称为。

  • result_recNdbRecord被使用。

  • result_row可以如果不返回属性。

  • result_mask,如果没有,定义要读取并返回给客户机的属性子集。掩码被复制,因此在调用此方法返回后不需要保持有效。

  • OperationOptions选择)可用于提供更细粒度的操作定义控制。一个OperationOptions结构传递时,带有指示出现哪些操作定义选项的标志。并非所有操作类型都支持所有操作选项;有关每种操作类型支持的选项,请参见NdbTransaction: readTuple ()

  • 可选sizeOfOptions参数提供此接口与前面的定义的向后兼容性OperationOptions结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)这个参数的值。

返回值

一个常量指针指向NdbOperation表示这个写操作。如果有必要,可以检查操作是否有错误。

NdbTransaction: ExecType

介绍相关的信息ExecType数据类型。

描述

该类型设置事务的执行类型;也就是说,它是应该执行、执行并提交,还是应该中止。的参数execute ()方法。(见NdbTransaction: execute ().)

枚举值

下表中列出了可能的值及描述:

表2.68 NdbTransaction::ExecType值及说明

的名字 描述
NoCommit 事务应该执行,而不是提交。
提交 应该执行并提交事务。
回滚 事务应该回滚。

NdbTransaction: execute ()

描述

此方法用于执行事务。

签名
int execute (ExecType . exeexecTypeNdbOperation:: AbortOptionabortOption= NdbOperation::DefaultAbortOption, int= 0)
参数

execute ()方法接受这里列出的三个参数:

返回值

返回0成功时,或-1在失败。事务没有中止的事实并不一定意味着每个操作都是成功的;您必须分别检查每个操作的错误。

此方法报告失败当且仅当事务被中止。在这种情况下,设置事务的错误信息以反映实际的错误代码和类别。

在a的情况下NoDataFound错误是可能的,你必须显式检查它,如下例所示:

Ndb_cluster_connection myConnection;如果(myConnection。connect(4,5,1)) {cout << "无法在30秒内连接到集群。"< < endl;退出(1);myNdb(&myConnection, "test");//定义操作…myTransaction = myNdb->startTransaction();如果(myTransaction - > getNdbError()。classification == NdbError:NoDataFound) {cout << "没有发现记录。" << endl; // ... } myNdb->closeTransaction(myTransaction);

NdbTransaction: executePendingBlobOps ()

描述

该方法执行与的事务ExecType等于NoCommit如果仍有任何给定类型的blob部分操作尚未执行。

签名
int executePendingBlobOps (Uint8 . int旗帜= 0xFF)
参数

旗帜实参是位的结果,等于1 < <optype,在那里optype是一个NdbOperation:类型.默认对应于NdbOperation:类型::PrimaryKeyAccess

返回值

返回0成功时,或-1在失败。事务没有中止的事实并不一定意味着每个操作都是成功的;您必须分别检查每个操作的错误。

NdbTransaction: getGCI ()

描述

该方法检索事务的全局检查点ID (GCI)。

每个提交的事务都属于一个GCI。当发生全局检查点时,已提交事务的日志保存在磁盘上。

通过将事务的GCI值与重新启动的NDB集群中最近恢复的GCI值进行比较,可以判断该事务是否恢复。

用这种方法无法确定带有此GCI的全局检查点是否已保存在磁盘上。

扫描事务的GCI是未定义的,因为在扫描事务中不执行更新。

没有GCI可用,直到execute ()被称为ExecType:提交

签名
int getGCI (void)
参数

没有一个

返回值

事务的GCI,或者-1如果没有可用的。

NdbTransaction: getMaxPendingBlobReadBytes ()

描述

获取blob读操作的当前批处理大小(以字节为单位)。当给定事务中要读取的blob数据量超过这个量时,将执行事务中所有挂起的blob读取操作。

签名
Uint32 getMaxPendingBlobReadBytes (void) const
参数

没有一个

返回值

当前blob读批大小,以字节为单位。看到NdbTransaction: setMaxPendingBlobReadBytes (),以查询更多资料。

NdbTransaction: getMaxPendingBlobWriteBytes ()

描述

获取blob写操作的当前批处理大小(以字节为单位)。当给定事务中要写入的blob数据量超过这个量时,将执行事务中所有挂起的blob写操作。

签名
Uint32 getMaxPendingBlobWriteBytes (void) const
参数

没有一个

返回值

当前blob写批处理大小,以字节为单位。看到NdbTransaction: setMaxPendingBlobWriteBytes (),以查询更多资料。

NdbTransaction: getNdbError ()

描述

此方法用于获取最近的错误(NdbError).

签名
const NdbError& gettndberror (void)
参数

没有一个

返回值

引用NdbError对象。

有关处理事务中错误的其他信息,请参见第1.4.2.3.6节“错误处理”

NdbTransaction: getNdbErrorLine ()

描述

此方法返回最近发生错误的行号。

签名
int getdberrorline (void)
参数

没有一个

返回值

最近错误的行号。

有关处理事务中错误的其他信息,请参见第1.4.2.3.6节“错误处理”

NdbTransaction: getNdbErrorOperation ()

描述

此方法检索导致错误的操作。

要获取有关实际错误的更多信息,请使用NdbOperation: getNdbError ()的方法NdbOperation返回的对象。getNdbErrorOperation ()

签名
NdbOperation* getNdbErrorOperation (void)
参数

没有一个

返回值

的指针。NdbOperation

有关处理事务中错误的其他信息,请参见第1.4.2.3.6节“错误处理”

NdbTransaction: getNdbIndexOperation ()

描述

此方法用于创建NdbIndexOperation与给定表相关联。

同一个事务中的所有索引操作都必须用这个方法初始化。操作必须在执行之前定义。

签名
NdbIndexOperation* getNdbIndexOperation (const NdbDictionary::Index*指数
参数

指数要对其执行操作的对象。

返回值

一个指向新的指针NdbIndexOperation

NdbTransaction: getNdbIndexScanOperation ()

描述

此方法用于创建NdbIndexScanOperation与给定表相关联。

同一事务中的所有索引扫描操作都必须使用此方法初始化。操作必须在执行之前定义。

签名
NdbIndexScanOperation* gettndbindexscanoperation (const NdbDictionary::Index*指数
参数

指数要对其执行操作的对象。

返回值

一个指向新的指针NdbIndexScanOperation

NdbTransaction: getNdbOperation ()

描述

此方法用于创建NdbOperation与给定表相关联。

同一事务中的所有操作都必须用此方法初始化。操作必须在执行之前定义。

签名
(const NdbDictionary::Table*表格
参数

表格要对其执行操作的对象。

返回值

一个指向新的指针NdbOperation

NdbTransaction: getNdbScanOperation ()

描述

此方法用于创建NdbScanOperation与给定表相关联。

同一事务中的所有扫描操作都必须用此方法初始化。操作必须在执行之前定义。

签名
NdbScanOperation* getNdbScanOperation (const NdbDictionary::Table*表格
参数

表格要对其执行操作的对象。

返回值

一个指向新的指针NdbScanOperation

NdbTransaction: getNextCompletedOperation ()

描述

此方法用于检索事务已完成的操作。它通常用于获取属于给定事务的所有操作,以检查错误。

NdbTransaction: getNextCompletedOperation(空)返回事务的第一个NdbOperation对象;NdbTransaction:: getNextCompletedOperation (myOp返回NdbOperation之后定义的对象NdbOperationmyOp

该方法只能在事务执行之后使用,而在事务关闭之前使用。

签名
(const NdbOperation* . getNextCompletedOperation人事处)常量
参数

该方法只需要一个参数人事处,这是一个操作(NdbOperation对象),或

返回值

下面的操作人事处,或者为事务定义的第一个操作getNextCompletedOperation ()叫做使用

NdbTransaction: getTransactionId ()

描述

该方法用于获取事务ID。

签名
Uint64 getTransactionId (void)
参数

没有一个

返回值

事务ID,作为无符号64位整数。

NdbTransaction: insertTuple ()

描述

使用插入元组NdbRecord

签名
NdbOperation* insertTuple (NdbRecord* .key_rec, const char*key_row, NdbRecord*attr_rec, const char*attr_row, const unsigned char*面具= 0, const NdbOperation::OperationOptions*选择= 0, Uint32sizeOfOptions= 0)
NdbOperation* insertTuple (NdbRecord* .combined_rec, const char*combined_row, const unsigned char*面具= 0, const NdbOperation::OperationOptions*选择= 0, Uint32sizeOfOptions= 0)
参数

insertTuple ()接受以下参数:

  • 的指针。NdbRecord指示记录(key_rec)插入。

    此方法也可以使用单个NdbRecord指针和单字符指针(combined_reccombined_row)单NdbRecord表示记录、属性和数据。

  • 一排(key_row)所要插入的资料。

  • 的指针。NdbRecord指示属性(attr_rec)插入。

  • 一排(attr_row)作为属性插入的数据。

  • 一个面具它可用于筛选要插入的列。

  • OperationOptions选择)可用于提供更细粒度的操作定义控制。一个OperationOptions结构传递时,带有指示出现哪些操作定义选项的标志。并非所有操作类型都支持所有操作选项;有关每种操作类型支持的选项,请参见NdbTransaction: readTuple ()

  • 可选sizeOfOptions参数的以前定义用于保持此接口的向后兼容性OperationOptions结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)这个参数的值。

返回值

一个常量指针指向NdbOperation表示此插入操作。

NdbTransaction: readTuple ()

描述

该方法使用读取元组NdbRecord对象。

签名
NdbOperation* readTuple (const NdbRecord*key_rec, const char*key_row, NdbRecord*result_rec, char *result_rowNdbOperation:: LockModelock_mode= NdbOperation::LM_Read, const unsigned char*result_mask= 0, const NdbOperation::OperationOptions*选择= 0, Uint32sizeOfOptions= 0)
参数

该方法采用以下参数:

  • key_rec指针是指向NdbRecord用于表或索引。如果在表上,则操作使用主键;如果在索引上,则操作使用唯一键。在这两种情况下key_rec必须包括键的所有列。

  • key_row传递给此方法定义受影响元组的主键或唯一键,并且必须在execute ()被称为。

    如果不是,那就是面具,定义要读取、更新或插入的属性子集。只有在(面具attrId> 3] & (1<<(attrId& 7)))是受影响的列。掩码由方法复制,因此在调用返回后不必保持有效。

  • result_rec指针是指向NdbRecord用于保存结果

  • result_row为结果数据定义缓冲区。

  • lock_mode指定操作的有效锁定模式。看到NdbOperation: LockMode,以获取允许值和其他信息。

  • result_mask定义要读取的属性子集。只有在mask[attrId >> 3] & (1<<(attrId & 7))是受影响的列。掩码被复制,因此在方法调用返回后不必保持有效。

  • OperationOptions选择)可用于提供更细粒度的操作定义控制。一个OperationOptions结构传递时,带有指示出现哪些操作定义选项的标志。并非所有操作类型都支持所有操作选项;每种操作类型支持的选项如下表所示:

    表2.69 NdbTransaction::readTuple() OperationOptions (opts)参数的操作类型,每种类型支持的操作选项

    操作类型(方法) OperationOptions旗帜支持
    readTuple () OO_ABORTOPTIONOO_GETVALUEOO_PARTITION_IDOO_INTERPRETED
    insertTuple () OO_ABORTOPTIONOO_SETVALUEOO_PARTITION_IDOO_ANYVALUE
    updateTuple () OO_ABORTOPTIONOO_SETVALUEOO_PARTITION_IDOO_INTERPRETEDOO_ANYVALUE
    writeTuple () OO_ABORTOPTIONOO_SETVALUEOO_PARTITION_IDOO_ANYVALUE
    deleteTuple () OO_ABORTOPTIONOO_GETVALUEOO_PARTITION_IDOO_INTERPRETEDOO_ANYVALUE

  • 可选sizeOfOptions参数的以前定义用于保持此接口的向后兼容性OperationOptions结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)这个参数的值。

返回值

的指针。NdbOperation表示此读取操作(可用于检查错误)。

NdbTransaction: refresh ()

描述

此方法更新事务的超时计数器,从而避免由于事务超时而中止。

不建议对记录使用锁并长时间维护它,因为这可能会影响其他事务。

签名
Int刷新(无效)
参数

没有一个

返回值

返回0成功,-1在失败。

NdbTransaction: releaseLockHandle ()

描述

此方法用于释放锁句柄(参见NdbOperation: getLockHandle)当不再需要时。为NdbRecord主键读操作,在执行相关的读操作之前不能调用此操作。

与给定事务相关的所有锁句柄在该事务关闭时被释放。

签名
int releaseLockHandle (const NdbLockHandle* .lockHandle
参数

NdbLockHandle释放的对象。

返回值

0表示成功。

NdbTransaction: scanIndex ()

描述

执行表的索引范围扫描,可选排序。

签名
NdbIndexScanOperation* scanIndex (const NdbRecord*key_record, NdbRecord*result_recordNdbOperation:: LockModelock_mode= NdbOperation::LM_Read, const unsigned char*result_mask= 0, const NdbIndexScanOperation::IndexBound*绑定= 0, const NdbScanOperation::ScanOptions*选项= 0, Uint32sizeOfOptions= 0)
参数
  • key_record描述要扫描的索引。它必须是索引的关键记录;也就是说,它必须至少指定索引的所有键列。的key_record必须从要扫描的索引(而不是从基础表)创建。

  • result_record描述要从扫描返回的行。对于有序索引扫描,result_record必须是要扫描的索引的键记录;也就是说,它必须(至少)包含索引中的所有列(NDB API需要完整的索引键来对每个片段返回的有序行进行归并排序)。

    就像key_record,result_record必须从基础表创建,而不是从要扫描的索引创建。这两个key_record而且result_recordNdbRecord结构必须保持在原地,直到扫描操作关闭。

  • result_mask指针是可选的。如果存在,则只包含相应位(按属性ID顺序)的列result_mask都是在扫描中检索到的。的result_mask是内部复制的,那么对比呢result_record它在什么时候不需要有效execute ()被调用。

  • 一个单一的IndexBound可以在此调用或在对?的单独调用中指定NdbIndexScanOperation: setBound ().要执行多范围读取,可以使用scan_flagsScanOptions结构必须包括SF_MULTIRANGE.的连续调用可以添加其他边界NdbIndexScanOperation: setBound ()

    方法的相同行指针可指定等号边界low_key而且high_key通过设置低和高包含位。

    对于多范围扫描,low_key而且high_key指针必须唯一。换句话说,不允许在一次扫描中为几个不同的范围边界重用同一行缓冲区。但是,允许使用与。相同的行指针low_key而且high_key为了指定一个等号界限;方法之后的行也可以重用scanIndex ()方法返回—也就是说,它们不需要直到execute ()时间(不同于NdbRecord指针)。

  • 要指定其他选项,请传递一个ScanOptions结构。

  • sizeOfOptions存在以启用此接口的向后兼容性。的大小ScanOptions结构在编译客户机时使用,并允许检测旧样式的使用情况ScanOptions结构。如果不需要此功能,则可以将此参数保留为0。

返回值

当前的NdbIndexScanOperation,可用于错误检查。

NdbTransaction: scanTable ()

描述

方法执行表扫描NdbRecord对象读取列数据。

签名
NdbScanOperation* scanTable (NdbRecord* .result_recordNdbOperation:: LockModelock_mode= NdbOperation::LM_Read, const unsigned char*result_mask= 0, Uint32scan_flags= 0, Uint32平行= 0, Uint32批处理= 0)
参数

scanTable ()方法接受以下参数:

  • 的指针。NdbRecord用于存储结果。这result_record必须在execute ()已经打过电话了。

  • lock_mode对操作有效。看到NdbOperation: LockMode,以获取允许值和其他信息。

  • result_mask指针是可选的。如果存在,则只包含相应位(按属性ID顺序)的列result_mask都是在扫描中检索到的。的result_mask是内部复制的,那么对比呢result_record它在什么时候不需要有效execute ()被调用。

  • scan_flags可用于强制扫描的排序和排序条件。看到NdbScanOperation: ScanFlag,以获取允许值的列表。

  • 平行参数是所需的并行度,或者0对于最大并行性(以并行方式从所有片段接收行),这是默认值。

  • 批处理确定是否使用批处理。默认值是0(关闭)。

返回值

的指针。NdbScanOperation表示此扫描。如果有必要,可以检查操作是否有错误。

NdbTransaction: setMaxPendingBlobReadBytes ()

描述

为blob读操作设置批大小(以字节为单位)。当给定事务中要读取的blob数据量超过这个量时,将执行事务中所有挂起的blob读取操作。

签名
void setMaxPendingBlobReadBytes (Uint32 .字节
参数

批的大小,视数量而定字节.使用0会导致禁用blob读批处理,这是默认行为(为了向后兼容)。

返回值

没有一个

请注意

Blob读批处理也可以在mysql客户端和其他MySQL客户端应用程序使用MySQL服务器的——ndb-blob-read-batch-bytes选项及其关联的MySQL Server系统变量。

NdbTransaction: setMaxPendingBlobWriteBytes ()

描述

为blob写操作设置批大小(以字节为单位)。当给定事务中要写入的blob数据量超过这个量时,将执行事务中所有挂起的blob写操作。

签名
void setMaxPendingBlobWriteBytes (Uint32 .字节
参数

批的大小,视数量而定字节.使用0会导致禁用blob写批处理,这是默认行为(为了向后兼容)。

返回值

没有一个

请注意

Blob写批处理也可以在mysql客户端和其他MySQL客户端应用程序使用MySQL服务器的——ndb-blob-write-batch-bytes选项及其关联的MySQL Server系统变量。

NdbTransaction: setSchemaObjectOwnerChecks ()

描述

当有多个模式对象时,启用或禁用模式对象所有权检查Ndb_cluster_connection对象在使用中。启用此检查时,将检查此事务使用的对象,以确保它们属于NdbDictionary属于这个关系。这是通过从连接获取相同名称的模式对象,并将这些对象与传递给事务的模式对象进行比较来实现的。如果不匹配,则返回错误。

此方法可用于NDB 7.3.9和NDB 7.4.4开始的调试目的。(Bug #19875977)您应该意识到,启用此检查会带来性能损失,因此您应该避免在生产设置中这样做。

签名
setSchemaObjOwnerChecks (bool .runChecks
参数

单个参数runChecks.使用真正的要启用所有权检查,禁用它们。

返回值

没有一个

NdbTransaction:解锁()

描述

这个方法在当前事务上创建一个解锁操作;对象引用的锁被解除锁定NdbLockHandle(见NdbOperation: getLockHandle)传给了方法。

签名
NdbOperation* unlock (const NdbLockHandle* .lockHandleNdbOperation:: AbortOptionao= NdbOperation::DefaultAbortOption)
参数

指向锁句柄的指针;此外,可选地,anAbortOption价值ao

如果解锁操作失败—例如,由于该行已经被解锁—则AbortOption指定如何处理,默认情况是错误导致事务中止。

返回值

的指针。NdbOperation(创建的解锁操作)。

NdbTransaction: updateTuple ()

描述

对象更新元组NdbRecord对象。

签名
更新元组(const NdbRecord* .key_rec, const char*key_row, NdbRecord*attr_rec, const char*attr_row, const unsigned char*面具= 0, const NdbOperation::OperationOptions*选择= 0, Uint32sizeOfOptions= 0)
参数

updateTuple ()接受以下参数:

  • key_rec指针是指向NdbRecord用于表或索引。如果在表上,则操作使用主键;如果在索引上,则操作使用唯一键。在这两种情况下key_rec必须包括键的所有列。

  • key_row传递给此方法定义受影响元组的主键或唯一键,并且必须在execute ()被称为。

  • attr_rec是一个NdbRecord引用要更新的属性。

    请注意

    对于惟一索引操作,则attr_rec必须引用索引的基础表,而不是索引本身。

  • attr_row包含用于更新的新数据的缓冲区。

  • 面具,如果没有,定义要更新的属性的子集。掩码被复制,因此在调用此方法返回后不需要保持有效。

  • OperationOptions选择)可用于提供更细粒度的操作定义控制。一个OperationOptions结构传递时,带有指示出现哪些操作定义选项的标志。并非所有操作类型都支持所有操作选项;有关每种操作类型支持的选项,请参见NdbTransaction: readTuple ()

  • 可选sizeOfOptions参数的以前定义用于保持此接口的向后兼容性OperationOptions结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)这个参数的值。

返回值

NdbOperation表示此操作(可用于检查错误)。

NdbTransaction: writeTuple ()

描述

此方法用于NdbRecord写一个数据元组。

签名
NdbOperation* writeTuple (const NdbRecord*key_rec, const char*key_row, NdbRecord*attr_rec, const char*attr_row, const unsigned char*面具= 0, const NdbOperation::OperationOptions*选择= 0, Uint32sizeOfOptions= 0)
参数

该方法采用以下参数:

  • key_rec指针是指向NdbRecord用于表或索引。如果在表上,则操作使用主键;如果在索引上,则操作使用唯一键。在这两种情况下key_rec必须包括键的所有列。

  • key_row传递给此方法定义要写入的元组的主键或唯一键,并且必须保持有效直到execute ()被称为。

  • attr_rec是一个NdbRecord引用要写入的属性。

    对于惟一索引操作,则attr_rec必须引用索引的基础表,而不是索引本身。

  • attr_row包含新数据的缓冲区。

  • 面具,如果没有,定义要写入的属性的子集。掩码被复制,因此在调用此方法返回后不需要保持有效。

  • OperationOptions选择)可用于提供更细粒度的操作定义控制。一个OperationOptions结构传递时,带有指示出现哪些操作定义选项的标志。并非所有操作类型都支持所有操作选项;有关每种操作类型支持的选项,请参见NdbTransaction: readTuple ()

  • 可选sizeOfOptions参数的前面定义用于提供此接口的向后兼容性OperationOptions结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)这个参数的值。

返回值

一个常量指针指向NdbOperation表示这个写操作。如果有必要,可以检查操作是否有错误。