本节提供有关 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
类析构函数。您应该仅删除在您的应用程序中使用
clone()
方法创建的NdbRecAttr
对象的副本。 - 签名
~NdbRecAttr ( void )
- 参数
无.
- 返回值
无.
- 描述
该方法用于获取对属性值的引用,作为
char
指针。该指针已针对数据类型适当对齐。在对读取值的交易执行NdbTransaction::close()
时,NDB API 会释放内存。- 签名
char* aRef ( void ) const
- 参数
指向属性值的指针。因为该指针是常量,所以可以在调用
NdbOperation::getValue()
之后随时调用该方法。- 返回值
无.
- 描述
该方法获取存储在
NdbRecAttr
对象中的Char
值,并将其作为char
返回。- 签名
char char_value ( void ) const
- 参数
无.
- 返回值
char
值。
- 描述
-
该方法创建
NdbRecAttr
对象的深层副本。应用程序应在不再需要时删除该方法创建的副本。
- 签名
NdbRecAttr* clone ( void ) const
- 参数
无.
- 返回值
NdbRecAttr
对象。这是原始对象的完整副本,包括所有数据。
- 描述
该方法获取存储在
NdbRecAttr
对象中的Double
值,并将其作为双精度值返回。- 签名
double double_value ( void ) const
- 参数
无.
- 返回值
双精度值(8 字节)。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Float
值,并将其作为浮点数返回。- 签名
float float_value ( void ) const
- 参数
无.
- 返回值
一个浮点数 (4 字节)。
- 描述
您可以使用此方法获取属性(元素)的大小。
- 签名
Uint32 get_size_in_bytes ( void ) const
- 参数
无.
- 返回值
属性的大小(以字节为单位),表示为一个无符号 32 位整数。
- 描述
此方法用于获取属性所属的列。
- 签名
const NdbDictionary::Column* getColumn ( void ) const
- 参数
无.
- 返回值
指向
Column
对象的指针。
- 描述
此方法用于获取列的数据类型。
- 签名
NdbDictionary::Column::Type getType ( void ) const
- 参数
无.
- 返回值
一个
Column::Type
值。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Small
值,并将其作为 8 位有符号整数返回。- 签名
Int8 int8_value ( void ) const
- 参数
无.
- 返回值
一个 8 位有符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Int
值,并将其作为 32 位有符号整数返回。- 签名
Int32 int32_value ( void ) const
- 参数
无.
- 返回值
一个 32 位有符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Bigint
值,并将其作为 64 位有符号整数返回。- 签名
Int64 int64_value ( void ) const
- 参数
无.
- 返回值
一个 64 位有符号整数。
- 描述
此方法检查给定属性值是否为
NULL
。- 签名
int isNULL ( void ) const
- 参数
无.
- 返回值
-
以下三种值之一
-1
: 属性值由于错误而未定义。0
: 属性值已定义,但不是NULL
。1
: 属性值已定义,并且为NULL
。
如果 NdbTransaction::execute()
尚未调用,则由 isNULL()
返回的值不确定。
- 描述
获取存储在
NdbRecAttr
对象中的Mediumint
值,并将其作为 32 位有符号整数返回。- 签名
Int32 medium_value ( void ) const
- 参数
无.
- 返回值
一个 32 位有符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Smallint
值,并将其作为 16 位有符号整数 (short) 返回。- 签名
short short_value ( void ) const
- 参数
无.
- 返回值
一个 16 位有符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Smallunsigned
值,并将其作为 8 位无符号整数返回。- 签名
Uint8 u_8_value ( void ) const
- 参数
无.
- 返回值
一个 8 位无符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Unsigned
值,并将其作为 32 位无符号整数返回。- 签名
Uint32 u_32_value ( void ) const
- 参数
无.
- 返回值
一个 32 位无符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Bigunsigned
值,并将其作为 64 位无符号整数返回。- 签名
Uint64 u_64_value ( void ) const
- 参数
无.
- 返回值
一个 64 位无符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Char
值,并将其作为无符号char
返回。- 签名
Uint8 u_char_value ( void ) const
- 参数
无.
- 返回值
一个 8 位无符号
char
值。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Mediumunsigned
值,并将其作为 32 位无符号整数返回。- 签名
Uint32 u_medium_value ( void ) const
- 参数
无.
- 返回值
一个 32 位无符号整数。
- 描述
此方法获取存储在
NdbRecAttr
对象中的Smallunsigned
值,并将其作为 16 位 (short) 无符号整数返回。- 签名
Uint16 u_short_value ( void ) const
- 参数
无.
- 返回值
一个 short (16 位) 无符号整数。