本節提供有關 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()測試屬性是否為 NULLint8_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 位元) 無符號整數。