文档主页
MySQL NDB 集群 API 开发者指南
相关文档 下载本手册
PDF (US Ltr) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.21 NdbRecAttr 类

本节提供有关 NdbRecAttr 类的信息。

NdbRecAttr 类概述

父类

子类

描述

NdbRecAttr 包含属性的值。使用 NdbRecAttr 对象在使用 NdbOperation::getValue() 方法检索属性值后存储该属性值。该对象由 NDB API 分配。此处显示一个简短的示例

MyRecAttr = MyOperation->getValue("ATTR2", NULL);

if(MyRecAttr == NULL)
  goto error;

if(MyTransaction->execute(Commit) == -1)
  goto error;

ndbout << MyRecAttr->u_32_value();

有关更多示例,请参见 第 2.5.2 节,“NDB API 使用同步事务的示例”

仅当调用 NdbTransaction::execute() 时,NdbRecAttr 对象才会使用其值实例化。在此之前,该值未定义。(使用 NdbRecAttr::isNULL() 检查该值是否已定义。)这意味着 NdbRecAttr 对象仅在调用 NdbTransaction::execute()Ndb::closeTransaction() 之间的时间段内具有有效信息。在调用 NdbTransaction::execute() 方法之前,NULL 指示器的值为 -1

方法

NdbRecAttr 具有许多方法,可直接从该类的实例中检索各种简单类型的值。

还可以通过使用 NdbRecAttr::aRef() 获取对值的引用,而不管其实际类型如何;但是,应注意,这不是类型安全的,需要用户进行强制转换。

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

表 2.57 NdbRecAttr 类方法和描述

名称 描述
~NdbRecAttr() 析构函数
aRef() 获取指向属性值的指针
char_value() 检索 Char 属性值
clone() 创建 RecAttr 对象的深层副本
double_value() 检索 Double 属性值,作为双精度值(8 字节)
float_value() 检索 Float 属性值,作为浮点数(4 字节)
get_size_in_bytes() 获取属性的大小(以字节为单位)
getColumn() 获取属性所属的列
getType() 获取属性的类型 (Column::Type)
isNULL() 测试属性是否为 NULL
int8_value() 检索 Tinyint 属性值,作为 8 位整数
int32_value() 检索 Int 属性值,作为 32 位整数
int64_value() 检索 Bigint 属性值,作为 64 位整数
medium_value() 检索 Mediumint 属性值,作为 32 位整数
short_value() 检索 Smallint 属性值,作为 16 位整数
u_8_value() 检索 Tinyunsigned 属性值,作为无符号 8 位整数
u_32_value() 检索 Unsigned 属性值,作为无符号 32 位整数
u_64_value() 检索 Bigunsigned 属性值,作为无符号 64 位整数
u_char_value() 检索 Char 属性值,作为无符号 char
u_medium_value() 检索 Mediumunsigned 属性值,作为无符号 32 位整数
u_short_value() 检索 Smallunsigned 属性值,作为无符号 16 位整数

NdbRecAttr 类没有公共构造函数;使用 NdbTransaction::execute() 创建该对象的实例。有关公共析构函数的信息,请参见 ~NdbRecAttr()

类型

NdbRecAttr 类未定义任何公共类型。

~NdbRecAttr()

描述

NdbRecAttr 类析构函数。

您应该仅删除在您的应用程序中使用 clone() 方法创建的 NdbRecAttr 对象的副本。

签名
~NdbRecAttr
    (
      void
    )
参数

.

返回值

.

NdbRecAttr::aRef()

描述

该方法用于获取对属性值的引用,作为 char 指针。该指针已针对数据类型适当对齐。在对读取值的交易执行 NdbTransaction::close() 时,NDB API 会释放内存。

签名
char* aRef
    (
      void
    ) const
参数

指向属性值的指针。因为该指针是常量,所以可以在调用 NdbOperation::getValue() 之后随时调用该方法。

返回值

.

NdbRecAttr::char_value()

描述

该方法获取存储在 NdbRecAttr 对象中的 Char 值,并将其作为 char 返回。

签名
char char_value
    (
      void
    ) const
参数

.

返回值

char 值。

NdbRecAttr::clone()

描述

该方法创建 NdbRecAttr 对象的深层副本。

应用程序应在不再需要时删除该方法创建的副本。

签名
NdbRecAttr* clone
    (
      void
    ) const
参数

.

返回值

NdbRecAttr 对象。这是原始对象的完整副本,包括所有数据。

NdbRecAttr::double_value()

描述

该方法获取存储在 NdbRecAttr 对象中的 Double 值,并将其作为双精度值返回。

签名
double double_value
    (
      void
    ) const
参数

.

返回值

双精度值(8 字节)。

NdbRecAttr::float_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Float 值,并将其作为浮点数返回。

签名
float float_value
    (
      void
    ) const
参数

.

返回值

一个浮点数 (4 字节)。

NdbRecAttr::get_size_in_bytes()

描述

您可以使用此方法获取属性(元素)的大小。

签名
Uint32 get_size_in_bytes
    (
      void
    ) const
参数

.

返回值

属性的大小(以字节为单位),表示为一个无符号 32 位整数。

NdbRecAttr::getColumn()

描述

此方法用于获取属性所属的列。

签名
const NdbDictionary::Column* getColumn
    (
      void
    ) const
参数

.

返回值

指向 Column 对象的指针。

NdbRecAttr::getType()

描述

此方法用于获取列的数据类型。

签名
NdbDictionary::Column::Type getType
    (
      void
    ) const
参数

.

返回值

一个 Column::Type 值。

NdbRecAttr::int8_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Small 值,并将其作为 8 位有符号整数返回。

签名
Int8 int8_value
    (
      void
    ) const
参数

.

返回值

一个 8 位有符号整数。

NdbRecAttr::int32_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Int 值,并将其作为 32 位有符号整数返回。

签名
Int32 int32_value
    (
      void
    ) const
参数

.

返回值

一个 32 位有符号整数。

NdbRecAttr::int64_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Bigint 值,并将其作为 64 位有符号整数返回。

签名
Int64 int64_value
    (
      void
    ) const
参数

.

返回值

一个 64 位有符号整数。

NdbRecAttr::isNULL()

描述

此方法检查给定属性值是否为 NULL

签名
int isNULL
    (
      void
    ) const
参数

.

返回值

以下三种值之一

  • -1: 属性值由于错误而未定义。

  • 0: 属性值已定义,但不是 NULL

  • 1: 属性值已定义,并且为 NULL

如果 NdbTransaction::execute() 尚未调用,则由 isNULL() 返回的值不确定。

NdbRecAttr::medium_value()

描述

获取存储在 NdbRecAttr 对象中的 Mediumint 值,并将其作为 32 位有符号整数返回。

签名
Int32 medium_value
    (
      void
    ) const
参数

.

返回值

一个 32 位有符号整数。

NdbRecAttr::short_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Smallint 值,并将其作为 16 位有符号整数 (short) 返回。

签名
short short_value
    (
      void
    ) const
参数

.

返回值

一个 16 位有符号整数。

NdbRecAttr::u_8_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Smallunsigned 值,并将其作为 8 位无符号整数返回。

签名
Uint8 u_8_value
    (
      void
    ) const
参数

.

返回值

一个 8 位无符号整数。

NdbRecAttr::u_32_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Unsigned 值,并将其作为 32 位无符号整数返回。

签名
Uint32 u_32_value
    (
      void
    ) const
参数

.

返回值

一个 32 位无符号整数。

NdbRecAttr::u_64_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Bigunsigned 值,并将其作为 64 位无符号整数返回。

签名
Uint64 u_64_value
    (
      void
    ) const
参数

.

返回值

一个 64 位无符号整数。

NdbRecAttr::u_char_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Char 值,并将其作为无符号 char 返回。

签名
Uint8 u_char_value
    (
      void
    ) const
参数

.

返回值

一个 8 位无符号 char 值。

NdbRecAttr::u_medium_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Mediumunsigned 值,并将其作为 32 位无符号整数返回。

签名
Uint32 u_medium_value
    (
      void
    ) const
参数

.

返回值

一个 32 位无符号整数。

NdbRecAttr::u_short_value()

描述

此方法获取存储在 NdbRecAttr 对象中的 Smallunsigned 值,并将其作为 16 位 (short) 无符号整数返回。

签名
Uint16 u_short_value
    (
      void
    ) const
参数

.

返回值

一个 short (16 位) 无符号整数。