介绍相关的信息NdbTransaction
类。
- 父类
-
没有一个
- 子类
-
没有一个
- 描述
-
事务在NDB API中用
NdbTransaction
对象,该对象属于Ndb
对象,并使用Ndb: startTransaction ()
.控件表示的操作列表组成事务NdbOperation
类,或由它的一个子类-NdbScanOperation
,NdbIndexOperation
,或NdbIndexScanOperation
.每个操作只访问一个表。 - 方法
-
下表列出了该类的公共方法以及每个方法的用途或用途:
表2.65 NdbTransaction类方法及说明
的方法
readTuple ()
,insertTuple ()
,updateTuple ()
,writeTuple ()
,deleteTuple ()
,scanTable ()
,scanIndex ()
要求使用NdbRecord
. - 类型
-
NdbTransaction
定义了两种公共类型,如下表所示:
使用事务。在取得NdbTransaction
对象,它的应用如下:
使用以下方法中的任意一种将操作分配给事务:
getNdbOperation ()
getNdbScanOperation ()
getNdbIndexOperation ()
getNdbIndexScanOperation ()
调用这些方法之一定义操作。同一个操作上可以定义多个操作
NdbTransaction
对象,在这种情况下,它们将并行执行。定义了所有操作后,将execute ()
方法将它们发送到NDB
用于执行的内核。的
execute ()
方法返回时,NDB
内核已完成之前定义的所有操作的执行。所有分配的操作都应该正确定义之前调用
execute ()
方法。execute ()
以下面列出的三种模式之一运行:NdbTransaction: NoCommit
:执行操作而不提交。NdbTransaction:提交
:执行任何剩余的操作,然后提交完整的事务。NdbTransaction:回滚
:回滚整个事务。
execute ()
还配备了一个额外的错误处理参数,该参数提供了下面列出的两个备选方案:NdbOperation: AbortOnError
:任何错误都会导致事务中止。这是默认的行为。NdbOperation: AO_IgnoreError
:即使为该事务定义的一个或多个操作失败,该事务仍将继续执行。
- 描述
-
此方法关闭事务。这相当于打电话
Ndb: closeTransaction ()
.如果事务尚未提交,则在调用此方法时中止事务。看到Ndb: startTransaction ().
- 签名
-
Void关闭(Void)
- 参数
-
没有一个.
- 返回值
-
没有一个.
- 描述
-
该方法获取事务的提交状态。
- 签名
-
commitstatusstype commitStatus (void)
- 参数
-
没有一个.
- 返回值
-
事务的提交状态,类型的值
CommitStatusType
.
- 描述
-
使用删除元组
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_rec
是NdbRecord
被使用。的
result_row
可以零
如果不返回属性。的
result_mask
,如果没有零
,定义要读取并返回给客户机的属性子集。掩码被复制,因此在调用此方法返回后不需要保持有效。OperationOptions
(选择
)可用于提供更细粒度的操作定义控制。一个OperationOptions
结构传递时,带有指示出现哪些操作定义选项的标志。并非所有操作类型都支持所有操作选项;有关每种操作类型支持的选项,请参见NdbTransaction: readTuple ().可选
sizeOfOptions
参数提供此接口与前面的定义的向后兼容性OperationOptions
结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions
结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)
这个参数的值。
- 返回值
-
一个
常量
指针指向NdbOperation
表示这个写操作。如果有必要,可以检查操作是否有错误。
介绍相关的信息ExecType
数据类型。
- 描述
-
该类型设置事务的执行类型;也就是说,它是应该执行、执行并提交,还是应该中止。的参数
execute ()
方法。(见NdbTransaction: execute ().) - 枚举值
-
下表中列出了可能的值及描述:
- 描述
-
此方法用于执行事务。
- 签名
-
int execute (ExecType . exeexecTypeNdbOperation:: AbortOptionabortOption= NdbOperation::DefaultAbortOption, int力= 0)
- 参数
-
的
execute ()
方法接受这里列出的三个参数:执行类型(
ExecType
值);看到NdbTransaction: ExecType,以获取更多信息和可能的值。中止选项(
NdbOperation: AbortOption
值)。这种方法产生的误差是用
NdbOperation: getNdbError ()
而不是NdbTransaction: getNdbError ()
.信息。一个
力
参数,该参数确定何时将操作发送到NDB
内核。它接受下面列出的值中的一个:0
: Nonforced;自适应发送算法检测。1
:强迫;自适应发送算法检测。2
: Nonforced;自适应发送算法未检测到。
看到第1.4.4节“自适应发送算法”,以查询更多资料。
- 返回值
-
返回
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);
- 描述
-
该方法执行与的事务
ExecType
等于NoCommit
如果仍有任何给定类型的blob部分操作尚未执行。 - 签名
-
int executePendingBlobOps (Uint8 . int旗帜= 0xFF)
- 参数
-
的
旗帜
实参是位的结果或
,等于1 < <
,在那里optype
optype
是一个NdbOperation:类型
.默认对应于NdbOperation:类型::PrimaryKeyAccess
. - 返回值
-
返回
0
成功时,或-1
在失败。事务没有中止的事实并不一定意味着每个操作都是成功的;您必须分别检查每个操作的错误。
- 描述
-
该方法检索事务的全局检查点ID (GCI)。
每个提交的事务都属于一个GCI。当发生全局检查点时,已提交事务的日志保存在磁盘上。
通过将事务的GCI值与重新启动的NDB集群中最近恢复的GCI值进行比较,可以判断该事务是否恢复。
用这种方法无法确定带有此GCI的全局检查点是否已保存在磁盘上。
扫描事务的GCI是未定义的,因为在扫描事务中不执行更新。
没有GCI可用,直到
execute ()
被称为ExecType:提交
. - 签名
-
int getGCI (void)
- 参数
-
没有一个.
- 返回值
-
事务的GCI,或者
-1
如果没有可用的。
- 描述
-
获取blob读操作的当前批处理大小(以字节为单位)。当给定事务中要读取的blob数据量超过这个量时,将执行事务中所有挂起的blob读取操作。
- 签名
-
Uint32 getMaxPendingBlobReadBytes (void) const
- 参数
-
没有一个.
- 返回值
-
当前blob读批大小,以字节为单位。看到NdbTransaction: setMaxPendingBlobReadBytes (),以查询更多资料。
- 描述
-
获取blob写操作的当前批处理大小(以字节为单位)。当给定事务中要写入的blob数据量超过这个量时,将执行事务中所有挂起的blob写操作。
- 签名
-
Uint32 getMaxPendingBlobWriteBytes (void) const
- 参数
-
没有一个.
- 返回值
-
当前blob写批处理大小,以字节为单位。看到NdbTransaction: setMaxPendingBlobWriteBytes (),以查询更多资料。
- 描述
-
此方法返回最近发生错误的行号。
- 签名
-
int getdberrorline (void)
- 参数
-
没有一个.
- 返回值
-
最近错误的行号。
有关处理事务中错误的其他信息,请参见第1.4.2.3.6节“错误处理”.
- 描述
-
此方法检索导致错误的操作。
要获取有关实际错误的更多信息,请使用
NdbOperation: getNdbError ()
的方法NdbOperation
返回的对象。getNdbErrorOperation ()
. - 签名
-
NdbOperation* getNdbErrorOperation (void)
- 参数
-
没有一个.
- 返回值
-
的指针。
NdbOperation
.
有关处理事务中错误的其他信息,请参见第1.4.2.3.6节“错误处理”.
- 描述
-
此方法用于创建
NdbIndexOperation
与给定表相关联。同一个事务中的所有索引操作都必须用这个方法初始化。操作必须在执行之前定义。
- 签名
-
NdbIndexOperation* getNdbIndexOperation (const NdbDictionary::Index*指数)
- 参数
-
的
指数
要对其执行操作的对象。 - 返回值
-
一个指向新的指针
NdbIndexOperation
.
- 描述
-
此方法用于创建
NdbIndexScanOperation
与给定表相关联。同一事务中的所有索引扫描操作都必须使用此方法初始化。操作必须在执行之前定义。
- 签名
-
NdbIndexScanOperation* gettndbindexscanoperation (const NdbDictionary::Index*指数)
- 参数
-
的
指数
要对其执行操作的对象。 - 返回值
-
一个指向新的指针
NdbIndexScanOperation
.
- 描述
-
此方法用于创建
NdbOperation
与给定表相关联。同一事务中的所有操作都必须用此方法初始化。操作必须在执行之前定义。
- 签名
-
(const NdbDictionary::Table*表格)
- 参数
-
的
表格
要对其执行操作的对象。 - 返回值
-
一个指向新的指针
NdbOperation
.
- 描述
-
此方法用于创建
NdbScanOperation
与给定表相关联。同一事务中的所有扫描操作都必须用此方法初始化。操作必须在执行之前定义。
- 签名
-
NdbScanOperation* getNdbScanOperation (const NdbDictionary::Table*表格)
- 参数
-
的
表格
要对其执行操作的对象。 - 返回值
-
一个指向新的指针
NdbScanOperation
.
- 描述
-
此方法用于检索事务已完成的操作。它通常用于获取属于给定事务的所有操作,以检查错误。
NdbTransaction: getNextCompletedOperation(空)
返回事务的第一个NdbOperation
对象;NdbTransaction:: getNextCompletedOperation (
返回myOp
)NdbOperation
之后定义的对象NdbOperation
myOp
.该方法只能在事务执行之后使用,而在事务关闭之前使用。
- 签名
-
(const NdbOperation* . getNextCompletedOperation人事处)常量
- 参数
-
该方法只需要一个参数
人事处
,这是一个操作(NdbOperation
对象),或零
. - 返回值
-
下面的操作
人事处
,或者为事务定义的第一个操作getNextCompletedOperation ()
叫做使用零
.
- 描述
-
使用插入元组
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_rec
,combined_row
)单NdbRecord
表示记录、属性和数据。一排(
key_row
)所要插入的资料。的指针。
NdbRecord
指示属性(attr_rec
)插入。一排(
attr_row
)作为属性插入的数据。一个
面具
它可用于筛选要插入的列。OperationOptions
(选择
)可用于提供更细粒度的操作定义控制。一个OperationOptions
结构传递时,带有指示出现哪些操作定义选项的标志。并非所有操作类型都支持所有操作选项;有关每种操作类型支持的选项,请参见NdbTransaction: readTuple ().可选
sizeOfOptions
参数的以前定义用于保持此接口的向后兼容性OperationOptions
结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions
结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)
这个参数的值。
- 返回值
-
一个
常量
指针指向NdbOperation
表示此插入操作。
- 描述
-
该方法使用读取元组
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_ABORTOPTION
,OO_GETVALUE
,OO_PARTITION_ID
,OO_INTERPRETED
insertTuple ()
OO_ABORTOPTION
,OO_SETVALUE
,OO_PARTITION_ID
,OO_ANYVALUE
updateTuple ()
OO_ABORTOPTION
,OO_SETVALUE
,OO_PARTITION_ID
,OO_INTERPRETED
,OO_ANYVALUE
writeTuple ()
OO_ABORTOPTION
,OO_SETVALUE
,OO_PARTITION_ID
,OO_ANYVALUE
deleteTuple ()
OO_ABORTOPTION
,OO_GETVALUE
,OO_PARTITION_ID
,OO_INTERPRETED
,OO_ANYVALUE
可选
sizeOfOptions
参数的以前定义用于保持此接口的向后兼容性OperationOptions
结构。如果接口实现检测到异常的大小,它可以使用它来确定如何解释传递的数据OperationOptions
结构。要启用此功能,调用方应该通过sizeof (NdbOperation:: OperationOptions)
这个参数的值。
- 返回值
-
的指针。
NdbOperation
表示此读取操作(可用于检查错误)。
- 描述
-
此方法更新事务的超时计数器,从而避免由于事务超时而中止。
不建议对记录使用锁并长时间维护它,因为这可能会影响其他事务。
- 签名
-
Int刷新(无效)
- 参数
-
没有一个.
- 返回值
-
返回
0
成功,-1
在失败。
- 描述
-
此方法用于释放锁句柄(参见NdbOperation: getLockHandle)当不再需要时。为
NdbRecord
主键读操作,在执行相关的读操作之前不能调用此操作。与给定事务相关的所有锁句柄在该事务关闭时被释放。
- 签名
-
int releaseLockHandle (const NdbLockHandle* .lockHandle)
- 参数
-
的
NdbLockHandle
释放的对象。 - 返回值
-
0表示成功。
- 描述
-
执行表的索引范围扫描,可选排序。
- 签名
-
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_record
NdbRecord
结构必须保持在原地,直到扫描操作关闭。的
result_mask
指针是可选的。如果存在,则只包含相应位(按属性ID顺序)的列result_mask
都是在扫描中检索到的。的result_mask
是内部复制的,那么对比呢result_record
它在什么时候不需要有效execute ()
被调用。一个单一的
IndexBound
可以在此调用或在对?的单独调用中指定NdbIndexScanOperation: setBound ()
.要执行多范围读取,可以使用scan_flags
在ScanOptions
结构必须包括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
,可用于错误检查。
- 描述
-
方法执行表扫描
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
表示此扫描。如果有必要,可以检查操作是否有错误。
- 描述
-
为blob读操作设置批大小(以字节为单位)。当给定事务中要读取的blob数据量超过这个量时,将执行事务中所有挂起的blob读取操作。
- 签名
-
void setMaxPendingBlobReadBytes (Uint32 .字节)
- 参数
-
批的大小,视数量而定
字节
.使用0会导致禁用blob读批处理,这是默认行为(为了向后兼容)。 - 返回值
-
没有一个.
Blob读批处理也可以在mysql客户端和其他MySQL客户端应用程序使用MySQL服务器的——ndb-blob-read-batch-bytes
选项及其关联的MySQL Server系统变量。
- 描述
-
为blob写操作设置批大小(以字节为单位)。当给定事务中要写入的blob数据量超过这个量时,将执行事务中所有挂起的blob写操作。
- 签名
-
void setMaxPendingBlobWriteBytes (Uint32 .字节)
- 参数
-
批的大小,视数量而定
字节
.使用0会导致禁用blob写批处理,这是默认行为(为了向后兼容)。 - 返回值
-
没有一个.
Blob写批处理也可以在mysql客户端和其他MySQL客户端应用程序使用MySQL服务器的——ndb-blob-write-batch-bytes
选项及其关联的MySQL Server系统变量。
- 描述
-
当有多个模式对象时,启用或禁用模式对象所有权检查
Ndb_cluster_connection
对象在使用中。启用此检查时,将检查此事务使用的对象,以确保它们属于NdbDictionary
属于这个关系。这是通过从连接获取相同名称的模式对象,并将这些对象与传递给事务的模式对象进行比较来实现的。如果不匹配,则返回错误。此方法可用于NDB 7.3.9和NDB 7.4.4开始的调试目的。(Bug #19875977)您应该意识到,启用此检查会带来性能损失,因此您应该避免在生产设置中这样做。
- 签名
-
setSchemaObjOwnerChecks (bool .runChecks)
- 参数
-
单个参数
runChecks
.使用真正的
要启用所有权检查,假
禁用它们。 - 返回值
-
没有一个.
- 描述
-
这个方法在当前事务上创建一个解锁操作;对象引用的锁被解除锁定
NdbLockHandle
(见NdbOperation: getLockHandle)传给了方法。 - 签名
-
NdbOperation* unlock (const NdbLockHandle* .lockHandleNdbOperation:: AbortOptionao= NdbOperation::DefaultAbortOption)
- 参数
-
指向锁句柄的指针;此外,可选地,an
AbortOption
价值ao
.如果解锁操作失败—例如,由于该行已经被解锁—则
AbortOption
指定如何处理,默认情况是错误导致事务中止。 - 返回值
-
的指针。
NdbOperation
(创建的解锁操作)。
- 描述
-
对象更新元组
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
表示此操作(可用于检查错误)。
- 描述
-
此方法用于
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
表示这个写操作。如果有必要,可以检查操作是否有错误。