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 示例”

一个对象只有在 被调用NdbRecAttr时才用它的值实例化 。NdbTransaction::execute()在此之前,该值是未定义的。( NdbRecAttr::isNULL()用于检查值是否已定义。)这意味着 对象仅在 调用 和NdbRecAttr之间具有有效信息 。 指标的值一直到 方法被调用为止。 NdbTransaction::execute()Ndb::closeTransaction()NULL-1NdbTransaction::execute()

方法

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

也可以通过使用 NdbRecAttr::aRef();来获取对值的引用,而不管其实际类型如何。但是,您应该知道这不是类型安全的,需要用户强制转换。

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

表 2.56 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析构方法。

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

签名
~NdbRecAttr
    (
      void
    )
参数

没有

返回值

没有

NdbRecAttr::aRef()

描述

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

签名
char* aRef
    (
      void
    ) const
参数

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

返回值

没有

NdbRecAttr::char_value()

描述

此方法获取Char存储在NdbRecAttr对象中的值,并将其作为char.

签名
char char_value
    (
      void
    ) const
参数

没有

返回值

一个char值。

NdbRecAttr::克隆()

描述

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

当不再需要时,应用程序应删除由此方法创建的副本。

签名
NdbRecAttr* clone
    (
      void
    ) const
参数

没有

返回值

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

NdbRecAttr::double_value()

描述

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

签名
double double_value
    (
      void
    ) const
参数

没有

返回值

双精度(8 字节)。

NdbRecAttr::float_value()

描述

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

签名
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()

描述

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

签名
Int8 int8_value
    (
      void
    ) const
参数

没有

返回值

一个 8 位有符号整数。

NdbRecAttr::int32_value()

描述

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

签名
Int32 int32_value
    (
      void
    ) const
参数

没有

返回值

一个 32 位有符号整数。

NdbRecAttr::int64_value()

描述

此方法获取Bigint存储在NdbRecAttr对象中的值,并将其作为 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()

描述

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

签名
Int32 medium_value
    (
      void
    ) const
参数

没有

返回值

一个 32 位有符号整数。

NdbRecAttr::short_value()

描述

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

签名
short short_value
    (
      void
    ) const
参数

没有

返回值

一个 16 位有符号整数。

NdbRecAttr::u_8_value()

描述

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

签名
Uint8 u_8_value
    (
      void
    ) const
参数

没有

返回值

一个 8 位无符号整数。

NdbRecAttr::u_32_value()

描述

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

签名
Uint32 u_32_value
    (
      void
    ) const
参数

没有

返回值

一个 32 位无符号整数。

NdbRecAttr::u_64_value()

描述

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

签名
Uint64 u_64_value
    (
      void
    ) const
参数

没有

返回值

一个 64 位无符号整数。

NdbRecAttr::u_char_value()

描述

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

签名
Uint8 u_char_value
    (
      void
    ) const
参数

没有

返回值

一个 8 位无符号char值。

NdbRecAttr::u_medium_value()

描述

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

签名
Uint32 u_medium_value
    (
      void
    ) const
参数

没有

返回值

一个 32 位无符号整数。

NdbRecAttr::u_short_value()

描述

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

签名
Uint16 u_short_value
    (
      void
    ) const
参数

没有

返回值

短(16 位)无符号整数。