文件首頁
MySQL NDB Cluster API 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.21 NdbRecAttr 類別

本節提供有關 NdbRecAttr 類別的資訊。

NdbRecAttr 類別概觀

父類別

子類別

描述

NdbRecAttr 包含屬性的值。在透過 NdbOperation::getValue() 方法擷取屬性值後,會使用 NdbRecAttr 物件來儲存屬性值。此物件由 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 指標的值為 -1,直到叫用 NdbTransaction::execute() 方法為止。

方法

NdbRecAttr 具有多種方法,可直接從此類別的實例擷取各種簡單類型的值。

也可以使用 NdbRecAttr::aRef() 來取得值的參考(無論其實際類型為何);但是,您應該注意這不是類型安全的,並且需要使用者進行類型轉換。

下表列出此類別的所有公用方法,以及每個方法的目的或用途

表 2.57 NdbRecAttr 類別方法與描述

名稱 描述
~NdbRecAttr() 解構函式方法
aRef() 取得屬性值的指標
char_value() 擷取 Char 屬性值
clone() 建立 RecAttr 物件的深層副本
double_value() 以雙精度浮點數 (8 位元組) 擷取 Double 屬性值
float_value() 以浮點數 (4 位元組) 擷取 Float 屬性值
get_size_in_bytes() 以位元組為單位取得屬性的大小
getColumn() 取得屬性所屬的欄
getType() 取得屬性的類型 (Column::Type)
isNULL() 測試屬性是否為 NULL
int8_value() 以 8 位元整數擷取 Tinyint 屬性值
int32_value() 以 32 位元整數擷取 Int 屬性值
int64_value() 以 64 位元整數擷取 Bigint 屬性值
medium_value() 以 32 位元整數擷取 Mediumint 屬性值
short_value() 以 16 位元整數擷取 Smallint 屬性值
u_8_value() 以無號 8 位元整數擷取 Tinyunsigned 屬性值
u_32_value() 以無號 32 位元整數擷取 Unsigned 屬性值
u_64_value() 以無號 64 位元整數擷取 Bigunsigned 屬性值
u_char_value() 以無號 char 擷取 Char 屬性值
u_medium_value() 以無號 32 位元整數擷取 Mediumunsigned 屬性值
u_short_value() 以無號 16 位元整數擷取 Smallunsigned 屬性值

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 位元) 無符號整數。