本節提供有關 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
類別解構函式方法。您應該只刪除應用程式中使用
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 位元) 無符號整數。