文件首頁
MySQL NDB Cluster API 開發者指南
相關文件 下載本手冊
PDF (US Ltr) - 3.6Mb
PDF (A4) - 3.6Mb


2.3.20 NdbOperation 類別

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

從 NDB 8.0.30 開始,NdbOperation 支援與 NdbInterpretedCode 實作類似的解譯程式碼 API。如需更多資訊,請參閱 NdbOperation 解譯程式碼 API

NdbOperation 類別概觀

父類別

子類別

NdbIndexOperationNdbScanOperation

描述

NdbOperation 表示「通用」資料操作。其子類別表示更特定類型的操作。如需操作類型及其對應的 NdbOperation 子類別清單,請參閱 NdbOperation::Type

方法

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

表 2.49 NdbOperation 類別方法和描述

名稱 描述
add_reg() 新增並儲存兩個暫存器的內容
branch_col_and_mask_eq_mask() 如果欄值 AND 位元遮罩等於位元遮罩,則分支
branch_col_and_mask_ne_mask() 如果欄值 AND 位元遮罩不等於位元遮罩,則分支
branch_col_and_mask_eq_zero() 如果欄值 AND 位元遮罩等於零,則分支
branch_col_and_mask_ne_zero() 如果欄值 AND 位元遮罩不等於零,則分支
branch_col_eq() 如果欄等於指定值,則分支
branch_col_eq_null() 如果欄為 NULL,則分支
branch_col_ge() 如果欄大於或等於指定值,則分支
branch_col_gt() 如果欄大於指定值,則分支
branch_col_le() 如果欄小於或等於指定值,則分支
branch_col_like() 如果欄值符合萬用字元模式,則分支
branch_col_lt() 如果欄小於指定值,則分支
branch_col_ne() 如果欄不等於指定值,則分支
branch_col_ne_null() 如果欄不是 NULL,則分支
branch_col_notlike() 如果欄值不符合萬用字元模式,則分支
branch_eq() 如果第一個暫存器值等於第二個暫存器值,則分支
branch_eq_null() 如果暫存器值為 null,則分支
branch_ge() 如果第一個暫存器值大於或等於第二個暫存器值,則分支
branch_gt() 如果第一個暫存器值大於第二個暫存器值,則分支
branch_label() 跳到解譯程式中的標籤
branch_le() 如果第一個暫存器值小於第二個暫存器值,則分支
branch_lt() 如果第一個暫存器值小於或等於第二個暫存器值,則分支
branch_ne() 如果第一個暫存器值不等於第二個暫存器值,則分支
branch_ne_null() 如果暫存器值不是 null,則分支
call_sub() 呼叫解譯程式副常式
def_label() 在解譯程式操作中定義跳躍標籤
def_subroutine() 定義解譯程式副常式
deleteTuple() 從資料表中移除元組
equal() 使用相等性定義搜尋條件
getBlobHandle() 用於存取 blob 屬性
getLockHandle() 取得操作的鎖定控制代碼
getLockMode() 取得操作的鎖定模式
getNdbError() 取得最新的錯誤
getNdbErrorLine() 取得發生最新錯誤之方法的編號
getTableName() 取得用於此操作的資料表名稱
getTable() 取得用於此操作的資料表物件
getNdbTransaction() 取得此操作的 NdbTransaction 物件
getType() 取得操作類型
getValue() 配置屬性值持有者以供稍後存取
incValue() 將值新增至屬性
insertTuple() 將新元組新增至資料表
interpret_exit_last_row() 終止交易
interpret_exit_nok() 以狀態 NOT OK 結束解譯程式
interpret_exit_ok() 以狀態 OK 結束解譯程式
interpretedDeleteTuple() 使用解譯程式刪除元組
interpretedUpdateTuple() 使用解譯程式更新元組
interpretedWriteTuple() 使用解譯程式寫入元組
load_const_u32() 將 32 位元常數值載入暫存器
load_const_u64() 將 64 位元常數值載入暫存器
load_const_null() NULL 載入暫存器
read_attr() 將指定屬性讀入暫存器
readTuple() 從資料表讀取元組
ret_sub() 從直譯程式子程序返回
setValue() 定義要設定或更新的屬性
sub_reg() 儲存兩個暫存器值的差
subValue() 從屬性中減去值
updateTuple() 更新表格中現有的元組
write_attr() 從暫存器寫入給定的屬性
writeTuple() 插入或更新元組

此類別沒有公用建構函式。若要建立 NdbOperation 的執行個體,您必須使用 NdbTransaction::getNdbOperation()

類型

NdbOperation 類別定義了三個公用類型,如下表所示

表 2.50 NdbOperation 類別類型與描述

名稱 描述
AbortOption 決定失敗的操作是否導致其所屬的交易失敗
LockMode 執行讀取操作時使用的鎖定類型
Type 操作存取類型

如需更多有關 NdbOperation 使用方式的資訊,請參閱第 1.4.2.3.2 節「單列操作」

NdbOperation 直譯程式碼 API

NDB 8.0.30 及更新版本中的 NdbOperation 支援類似於 NdbInterpretedCode 所使用的直譯程式碼 API。

首先,使用 updateTuple()writeTuple()deleteTuple() 其中一個來將操作定義為給定類型的操作 (更新、寫入或刪除)。這是要由直譯程式執行的操作;直譯程式本身是由各種暫存器、比較和分支指令組合而成。

直譯程式並非獨立的 NdbInterpretedCode 物件,儘管其行為很像一個。指令會指派給 NdbOperation 執行個體 (例如,myNdbOp->branch_col_lt(col1id, val1, col2id, val2))。若要執行直譯程式,請呼叫 NdbTransaction::execute()

NdbOperation 直譯程式碼 API 實作與 NdbInterpretedCode 所支援的實作之間的另一個差異在於,類似方法的引數順序不一定相同。此處列出其中一對方法

分支欄位方法比較。 諸如 branch_col_le() 等分支欄位方法會將提供的數值與欄位的值進行比較。這些方法會從右到左對前兩個引數進行動作,因此,舉例來說,branch_col_le(myColId, myValue, 8, true, myLabel) 的動作會如以下虛擬碼所示

if(myValue <= value(myColId))
  goto myLabel;

位元式邏輯比較。 這些比較類型僅支援位元欄位類型,且可用於測試位元欄位欄位與位元模式。傳入的值是一個位元遮罩,會與欄位資料執行位元式 AND 運算。位元欄位會以 32 位元文字的形式傳入和傳出 NDB API,位元從最低有效位元 (LSB) 設定到最高有效位元 (MSB)。平台的位元組順序控制哪個位元組包含 LSB:對於 x86,這是第一個 (第 0 個) 位元組;對於 SPARC 和 PPC 平台,這是最後一個 (第 3 個) 位元組。

您可以從 Uint32* 遮罩中,將位元遮罩的位元 n 設定為 1,如下所示

mask[n >> 5] |= (1 << (n & 31))

此處列出的方法支援四種不同的位元式比較分支

如需更多資訊,請參閱個別方法的描述。

NdbOperation::AbortOption

本節提供有關 AbortOption 資料類型的資訊。

描述

此類型用於決定失敗的操作是否應強制中止交易。它用作 execute() 方法的引數—如需更多資訊,請參閱 NdbTransaction::execute()

列舉值

下表顯示了可能的值及其描述

表 2.51 NdbOperation::AbortOption 類型值與描述

名稱 描述
AbortOnError 失敗的操作會導致交易中止。
AO_IgnoreOnError 失敗的操作會被忽略;交易會繼續執行。
DefaultAbortOption AbortOption 值會根據操作類型進行設定
  • 讀取操作:AO_IgnoreOnError

  • 掃描接管或 DML 操作:AbortOnError


如需更多資訊,請參閱 NdbTransaction::execute()

NdbOperation::add_reg()

描述

將兩個暫存器的內容相加;將結果儲存在第三個暫存器中。

簽名
int add_reg
    (
      Uint32 RegSource1, 
      Uint32 RegSource2, 
      Uint32 RegDest
    )
參數
RegSource1

包含要相加的第一個值的暫存器。

RegSource2

包含要相加的第二個值的暫存器。

RegDest

儲存結果的暫存器。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_eq_null()

描述

如果指定的欄位為 NULL,則分支至直譯程式中的標籤。

簽名
int branch_col_eq_null
    (
      Uint32 ColId, 
      Uint32 Label
    )
參數
ColId

要檢查的欄位 ID。

parLabelam

如果欄位為 NULL,則跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_ne_null()

描述

如果指定的欄位不為 NULL,則分支至直譯程式中的標籤。

簽名
int branch_col_ne_null
    (
      Uint32 ColId, 
      Uint32 Label
    )
參數
ColId

要檢查的欄位 ID。

parLabelam

如果欄位不為 NULL,則跳轉到的標籤。

傳回值

NdbOperation::branch_col_eq()

描述

如果給定的值等於指定欄位的值,則分支至直譯程式中的標籤。

注意

與其他 NdbOperation::branch_col_*() 方法一樣,branch_col_eg() 會依序將其第二個引數與第一個引數進行比較。

簽名
int branch_col_eq
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較的欄位 ID。

val

要比較的數值。

len

val 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 val 等於欄位值,則跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_ne()

描述

如果給定的值不等於指定欄位的值,則分支至直譯程式中的標籤。

注意

與其他 NdbOperation::branch_col_*() 方法一樣,branch_col_ne() 會依序將其第二個引數與第一個引數進行比較。

簽名
int branch_col_ne
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較的欄位 ID。

val

要比較的數值。

len

val 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果欄位值不等於 val,則跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_lt()

描述

如果給定的值小於欄位值,則分支至直譯程式中的標籤。

注意

與其他 NdbOperation::branch_col_*() 方法一樣,branch_col_lt() 會依序將其第二個引數與第一個引數進行比較。

簽名
int branch_col_lt
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較的欄位 ID。

val

要比較的數值。

len

val 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 val 小於欄位值,則跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_le()

描述

如果給定的值小於或等於欄位值,則分支至直譯程式中的標籤。

注意

與其他 NdbOperation::branch_col_*() 方法一樣,branch_col_le() 會依序將其第二個引數與第一個引數進行比較。

簽名
int branch_col_le
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較的欄位 ID。

val

要比較的數值。

len

val 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 val 小於或等於欄位值,則跳轉到的標籤。

傳回值

成功則傳回 0;否則傳回 -1。

NdbOperation::branch_col_gt()

描述

如果給定的值大於欄位值,則分支至直譯程式中的標籤。

注意

與其他 NdbOperation::branch_col_*() 方法一樣,branch_col_gt() 會依序將其第二個引數與第一個引數進行比較。

簽名
int branch_col_gt
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較的欄位 ID。

val

要比較的數值。

len

val 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 val 大於欄位值,則跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_ge()

描述

如果給定的值大於或等於欄位值,則分支至直譯程式中的標籤。

注意

如同其他的 NdbOperation::branch_col_*() 方法,branch_col_ge() 方法會將其第二個參數與第一個參數進行比較,順序依序為之。

簽名
int branch_col_ge
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較的欄位 ID。

val

要比較的數值。

len

val 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 val 大於或等於欄位值時,要跳轉到的標籤。

傳回值

成功時為 0,否則為 -1。

NdbOperation::branch_col_like()

描述

如果欄位值符合萬用字元模式則跳轉。此方法和 branch_col_notlike() 方法都支援 MySQL LIKE 運算子使用的萬用字元:% 代表 0 個或多個字元的任何字串,而 _ 代表任何單一字元。

欄位的型別必須是 CHARVARCHARBINARYVARBINARY 其中之一。

簽名
int branch_col_like
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較其值的欄位 ID。

val

要比對的模式。

len

模式值的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果欄位值符合模式,要跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_notlike()

描述

如果欄位值不符合給定的萬用字元模式則跳轉。此方法和 branch_col_like() 方法都支援與 MySQL LIKE 運算子相同的萬用字元 % (0 個或多個字元) 和 _ (任何一個字元)。

欄位的型別必須是 CHARVARCHARBINARYVARBINARY 其中之一。

簽名
int branch_col_notlike
    (
      Uint32 ColId, 
      const void* val, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

要比較其值的欄位 ID。

val

要比對的模式。

len

模式值的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果欄位值不符合模式,要跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_and_mask_eq_mask()

描述

如果欄位的值與位元遮罩進行邏輯位元 AND 運算後,等於該位元遮罩,則跳轉。

另請參閱 位元邏輯比較

簽名
int branch_col_and_mask_eq_mask
    (
      Uint32 ColId, 
      const void* mask, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

使用具有此 ID 的欄位值。

遮罩

要與欄位值比較的位元遮罩。

len

mask 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 AND 運算的結果與遮罩相同,要跳轉到的分支。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_and_mask_ne_mask()

描述

如果欄位的值與位元遮罩進行邏輯位元 AND 運算後,不等於該位元遮罩,則跳轉。

另請參閱 位元邏輯比較

簽名
int branch_col_and_mask_ne_mask
    (
      Uint32 ColId, 
      const void* mask, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

使用具有此 ID 的欄位值。

遮罩

要與欄位值比較的位元遮罩。

len

mask 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 AND 運算的結果不等於遮罩,要跳轉到的分支。

傳回值

成功時為 0,否則為 -1。

NdbOperation::branch_col_and_mask_eq_zero()

描述

如果欄位的值與位元遮罩進行邏輯位元 AND 運算後,等於 0,則跳轉。

另請參閱 位元邏輯比較

簽名
int branch_col_and_mask_eq_zero
    (
      Uint32 ColId, 
      const void* mask, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

使用具有此 ID 的欄位值。

遮罩

要與欄位值比較的位元遮罩。

len

mask 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 AND 運算的結果等於 0,要跳轉到的分支。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_col_and_mask_ne_zero()

描述

如果欄位的值與位元遮罩進行邏輯位元 AND 運算後,不等於 0,則跳轉。

另請參閱 位元邏輯比較

簽名
int branch_col_and_mask_ne_zero
    (
      Uint32 ColId, 
      const void* mask, 
      Uint32 len,
      bool,
      Uint32 Label
    )
參數
ColId

使用具有此 ID 的欄位值。

遮罩

要與欄位值比較的位元遮罩。

len

mask 的長度。

-

為了舊版相容性而需要布林值 truefalse,但不再使用。

Label

如果 AND 運算的結果不等於 0,要跳轉到的分支。

傳回值

成功時返回 0,否則返回 -1。

NdbOperation::branch_ge()

描述

在直譯程式中定義搜尋條件。將右側暫存器值與左側值比較;如果右側值大於或等於左側值,則跳轉到標籤。

注意

此方法與其他 NdbOperation 比較分支方法一樣,會從右到左比較兩個暫存器值。

簽名
int branch_ge
    (
      Uint32 RegLvalue, 
      Uint32 RegRvalue, 
      Uint32 Label
    )
參數
RegLvalue

RegRvalue 比較的暫存器值。

RegRvalue

將此暫存器的值與 RegLvalue 比較;如果此值大於或等於 RegLvalue,則跳轉到標籤。

Label

如果 RegRvalue 大於或等於 RegLvalue,要跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_gt()

描述

在直譯程式中定義搜尋條件。將右側暫存器值與左側值比較;如果右側值大於左側值,則跳轉到標籤。

注意

此方法與其他 NdbOperation 比較分支方法一樣,會從右到左比較兩個暫存器值。

簽名
int branch_gt
    (
      Uint32 RegLvalue, 
      Uint32 RegRvalue, 
      Uint32 Label
    )
參數
RegLvalue

RegRvalue 比較的暫存器值。

RegRvalue

將此暫存器的值與 RegLvalue 比較;如果此值大於 RegLvalue,則跳轉到標籤。

Label

如果 RegRvalue 大於 RegLvalue,要跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_le()

描述

在直譯程式中定義搜尋條件。將右側暫存器值與左側值比較;如果右側值小於左側值,則跳轉到標籤。

注意

此方法與其他 NdbOperation 比較分支方法一樣,會從右到左比較兩個暫存器值。

簽名
int branch_le
    (
      Uint32 RegLvalue, 
      Uint32 RegRvalue, 
      Uint32 Label
    )
參數
RegLvalue

RegRvalue 比較的暫存器值。

RegRvalue

將此暫存器的值與 RegLvalue 比較;如果此值小於 RegLvalue,則跳轉到標籤。

Label

如果 RegRvalue 小於 RegLvalue,要跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_lt()

描述

在直譯程式中定義搜尋條件。將右側暫存器值與左側值比較;如果右側值小於或等於左側值,則跳轉到標籤。

注意

此方法與其他 NdbOperation 比較分支方法一樣,會從右到左比較兩個暫存器值。

簽名
int branch_lt
    (
      Uint32 RegLvalue, 
      Uint32 RegRvalue, 
      Uint32 Label
    )
參數
RegLvalue

RegRvalue 比較的暫存器值。

RegRvalue

將此暫存器的值與 RegLvalue 比較;如果此值小於或等於 RegLvalue,則跳轉到標籤。

Label

如果 RegRvalue 小於或等於 RegLvalue,要跳轉到的標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_eq()

描述

當兩個暫存器值相等時,跳轉到直譯程式中的標籤。

簽名
int branch_eq
    (
      Uint32 RegLvalue, 
      Uint32 RegRvalue, 
      Uint32 Label
    )
參數
RegLvalue

要比較的兩個暫存器值之一。

RegRvalue

要比較的另一個暫存器值。

Label

如果暫存器值相等,則跳轉到此標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_ne()

描述

當兩個暫存器值不相等時,跳轉到直譯程式中的標籤。

簽名
int branch_eq
    (
      Uint32 RegLvalue, 
      Uint32 RegRvalue, 
      Uint32 Label
    )
參數
RegLvalue

要比較的兩個暫存器值之一。

RegRvalue

要比較的另一個暫存器值。

Label

如果暫存器值不相等,則跳轉到此標籤。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::branch_ne_null()

描述

如果暫存器值不是 NULL,則跳轉到直譯程式中的標籤。

簽名
int branch_ne_null
    (
      Uint32 RegLvalue, 
      Uint32 Label
    )
參數
RegLvalue

要測試的暫存器。

Label

如果 RegLvalue 不是 NULL,則跳轉到此標籤。

傳回值

成功時返回 0;否則返回 -1。

NdbOperation::branch_eq_null()

描述

如果暫存器值為 NULL,則跳轉到直譯程式中的標籤。

簽名
int branch_ne_null
    (
      Uint32 RegLvalue, 
      Uint32 Label
    )
參數
RegLvalue

要測試的暫存器。

Label

如果 RegLvalueNULL,則跳轉到此標籤。

傳回值

成功則傳回 0;否則傳回 -1。

NdbOperation::branch_label()

描述

跳轉到直譯程式中的標籤。

簽名
int branch_label
    (
      Uint32 Label
    )
參數
Label

要跳轉到的標籤。

傳回值

成功時為 0;否則為 -1。

NdbOperation::call_sub()

描述

呼叫直譯程式中的子常式。

簽名
int call_sub
    (
      Uint32 Subroutine
    )
參數
子常式

子常式的編號。

傳回值

如果成功,則返回 0;否則返回 -1。

NdbOperation::def_label()

描述

在直譯運算中定義跳轉標籤。標籤會從 0 開始自動編號。

簽名
int def_label
    (
      int labelNumber
    )
參數
labelNumber

標籤編號。為了方便偵錯,此編號應與 NDB 執行的自動編號相符。

傳回值

成功時為 labelNumber,否則為 -1。

NdbOperation::def_subroutine()

描述

在直譯程式中定義子常式。

簽名
int def_subroutine
    (
      int SubroutineNumber
    )
參數
子常式編號

子常式的編號。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::deleteTuple()

描述

此方法將 NdbOperation 定義為 DELETE 運算。當呼叫 NdbTransaction::execute() 方法時,此運算會從資料表中刪除一個 Tuple。

簽名
virtual int deleteTuple
    (
      void
    )
參數

.

傳回值

成功時返回 0,失敗時返回 -1

NdbOperation::equal()

描述

此方法定義具有相等性的搜尋條件。如果屬性具有給定的值,則條件為真。若要設定多個屬性的搜尋條件,請多次呼叫 equal();在這種情況下,必須滿足所有條件才能選取 Tuple。

如果屬性的大小固定,則其值必須包含所有位元組。特別是,Char 值必須填補原生空間。如果屬性的大小可變,則其值必須以 1 或 2 個小端長度位元組開始 (如果其型別為 Long*,則為 2 個)。

使用 insertTuple() 時,您也可以使用 setValue() 定義搜尋索引鍵。請參閱 NdbOperation::setValue()

簽名

有 10 個版本的 equal(),每個版本的參數略有不同。所有這些版本都會顯示在此處

int  equal
    (
      const char* name,
      const char* value
    )

int  equal
    (
      const char* name,
      Int32       value
    )

int  equal
    (
      const char* name,
      Uint32      value
    )

int  equal
    (
      const char* name,
      Int64       value
    )

int  equal
    (
      const char* name,
      Uint64      value
    )

int  equal
    (
      Uint32      id,
      const char* value
    )

int  equal
    (
      Uint32 id,
      Int32  value
    )

int  equal
    (
      Uint32 id,
      Uint32 value
    )

int  equal
    (
      Uint32 id,
      Int64  value
    )

int  equal
    (
      Uint32 id,
      Uint64 value
    )
參數

此方法需要兩個參數

  • 第一個參數可以是下列其中一項

    1. 屬性的 name (字串)

    2. 屬性的 id (不帶正負號的 32 位元整數)

  • 第二個參數是要測試的屬性 value。此值可以是下列 5 種型別的任何一種

    • 字串

    • 32 位元整數

    • 不帶正負號的 32 位元整數

    • 64 位元整數

    • 不帶正負號的 64 位元整數

傳回值

如果發生錯誤,則返回 -1

NdbOperation::getBlobHandle()

描述

此方法用於取代 blob 屬性的 getValue()setValue()。它會建立一個 blob 控制代碼(NdbBlob 物件)。使用相同引數的第二次呼叫會傳回先前建立的控制代碼。此控制代碼會連結到操作,並自動維護。

簽名

此方法有兩種形式,取決於呼叫時使用的是 blob 屬性的名稱還是 ID

virtual NdbBlob* getBlobHandle
    (
      const char* name
    )

virtual NdbBlob* getBlobHandle
    (
      Uint32 id
    )
參數

此方法採用單一參數,可以是下列其中之一

  • 屬性的名稱

  • 屬性的ID

傳回值

無論使用哪種參數類型,此方法都會傳回 NdbBlob 執行個體的指標。

NdbOperation::getLockHandle

描述

傳回目前操作的鎖定控制代碼指標。與 NdbRecord 搭配使用時,必須先使用 OO_LOCKHANDLE 操作選項要求鎖定控制代碼。對於其他操作,可以單獨使用此方法。在任何情況下,在執行操作之前,都無法使用此方法傳回的 NdbLockHandle 物件。

簽名
const NdbLockHandle* getLockHandle
    (
      void
    ) const

const NdbLockHandle* getLockHandle
    (
      void
    )
參數

.

傳回值

可供 NdbTransaction 方法 unlock()releaseLockHandle() 使用的 NdbLockHandle 指標。

使用鎖定控制代碼方法。交易中讀取操作取得的共用或獨佔鎖定通常會保留到交易認可或中止為止。在交易認可或中止之前,可以透過在定義讀取操作時要求鎖定控制代碼來釋放這些鎖定。執行讀取操作後,可以使用 NdbLockHandle 建立新的解除鎖定操作 (使用 NdbTransaction::unlock())。執行解除鎖定操作時,會釋放讀取操作放置的資料列鎖定。

以下列出釋放這些鎖定所需的步驟

注意事項

  • 與其他操作類型一樣,可以批次處理解除鎖定操作。

  • 每個 NdbLockHandle 物件都參考單一主要索引鍵讀取操作在資料列上放置的鎖定。資料庫中的單一資料列可能有多個並行鎖定持有者 (模式 LM_Read),並且可能有多個鎖定持有者處於暫止狀態 (LM_Exclusive),因此釋放一個鎖定持有者的宣告可能不會導致資料列的可觀察鎖定狀態發生變更。

  • 掃描鎖定接管操作支援鎖定控制代碼;必須在執行鎖定接管之前要求鎖定控制代碼。

  • 唯一索引讀取操作不支援鎖定控制代碼和解除鎖定操作。

NdbOperation::getLockMode()

描述

此方法取得操作的鎖定模式。

簽名
LockMode getLockMode
    (
      void
    ) const
參數

.

傳回值

LockMode 值。請參閱 NdbOperation::LockMode

NdbOperation::getNdbError()

描述

此方法取得最近發生的錯誤(NdbError 物件)。

簽名
const NdbError& getNdbError
    (
      void
    ) const
參數

.

傳回值

NdbError 物件。

NdbOperation::getNdbErrorLine()

描述

此方法擷取發生最新錯誤的方法編號。

簽名
int getNdbErrorLine
    (
      void
    ) const
參數

.

傳回值

方法編號(整數)。

NdbOperation::getTable()

描述

此方法用於擷取與操作相關聯的資料表物件。

簽名
const NdbDictionary::Table* getTable
    (
      void
    ) const
參數

.

傳回值

指向 Table 執行個體的指標。

NdbOperation::getTableName()

描述

此方法擷取操作使用的資料表名稱。

簽名
const char* getTableName
    (
      void
    ) const
參數

.

傳回值

資料表名稱。

NdbOperation::getNdbTransaction()

描述

取得此操作的 NdbTransaction 物件。

簽名
virtual NdbTransaction* getNdbTransaction
    (
      void
    ) const
參數

.

傳回值

指向 NdbTransaction 物件的指標。

NdbOperation::getType()

描述

此方法用於擷取此操作的存取類型。

簽名
Type getType
    (
      void
    ) const
參數

.

傳回值

Type 值。

NdbOperation::getValue()

描述

此方法準備擷取屬性值。NDB API 會為 NdbRecAttr 物件配置記憶體,稍後將使用該物件來取得屬性值。這可以使用許多 NdbRecAttr 存取子方法之一來完成,要使用的確切方法取決於屬性的資料類型。(這包括泛型 NdbRecAttr::aRef() 方法,它會以 char* 擷取資料,而不論其實際類型為何。您應該注意,這不是類型安全的,需要使用者明確轉換。)

此方法不會從資料庫提取屬性值;在呼叫 NdbTransaction::execute() 之前,此方法傳回的 NdbRecAttr 物件是不可讀取或列印的。

如果特定屬性未變更,則對應的 NdbRecAttr 具有 UNDEFINED 狀態。可以使用 NdbRecAttr::isNULL() 來檢查此情況,在這種情況下,它會傳回 -1

請參閱 NdbTransaction::execute()NdbRecAttr::isNULL()

簽名

此方法有三個版本,每個版本都有不同的參數

NdbRecAttr* getValue
    (
      const char* name,
      char*       value = 0
    )

NdbRecAttr* getValue
    (
      Uint32 id,
      char*  value = 0
    )

NdbRecAttr* getValue
    (
      const NdbDictionary::Column* col,
      char*                        value = 0
    )
參數

此方法的所有三種形式都有兩個參數,第二個參數是選擇性的(預設值為 0)。它們僅在第一個參數的類型方面有所不同,可以是下列任何一種

  • 屬性名稱

  • 屬性ID

  • 定義屬性的資料表

在這三種情況下,第二個參數都是一個字元緩衝區,其中會傳回非 NULL 屬性值。如果屬性為 NULL,則只會將其儲存在此方法傳回的 NdbRecAttr 物件中。

如果在 getValue() 方法呼叫中未指定 ,或如果傳遞 0 作為值,則 NdbRecAttr 物件會提供記憶體管理來儲存接收到的資料。如果接收到的資料的最大大小超過小固定大小,則會使用 malloc() 來儲存資料:對於小大小,會提供一個小的固定內部緩衝區(範圍為 32 個位元組)。此儲存體由 NdbRecAttr 執行個體管理;它會在釋放操作時釋放,例如在交易關閉時;您想要保留的任何寫入此處的資料都應在此記憶體釋放發生之前複製到其他位置。

如果您為 傳遞非零指標,則假設此指標指向的記憶體部分足以容納資料行的最大值;任何傳回的資料都會寫入該位置。指標應至少為 32 位元對齊。

在此方法中,無法使用索引欄來取代資料表欄。在資料表欄不可用的情況下,您可以使用使用 getName() 取得的屬性名稱來代替。

傳回值

指向 NdbRecAttr 物件的指標,該物件用於保留屬性的值,或 NULL 指標,表示發生錯誤。

擷取整數。可以從作為此方法第二個參數傳遞的 緩衝區以及 NdbRecAttr 物件本身擷取整數值。另一方面,如果沒有緩衝區傳遞到 getValue(),則可以從 NdbRecAttr 取得字元資料(請參閱 NdbRecAttr::aRef())。但是,只有在提供緩衝區的情況下,字元資料才會寫入緩衝區,在這種情況下,無法從傳回的 NdbRecAttr 物件擷取字元資料。在後一種情況下,NdbRecAttr::aRef() 會傳回指向空字串的緩衝區。

存取位元值。以下範例示範如何從 value 緩衝區檢查給定的位元。在此,op 是一個操作(NdbOperation 物件),name 是要從中取得位元值的欄位名稱,而 trans 是一個 NdbTransaction 物件。

Uint32 buf[];

op->getValue(name, buf); /* bit column */

trans->execute();

if(buf[X/32] & 1 << (X & 31)) /* check bit X */
{
  /* bit X set */
}

NdbOperation::GetValueSpec

本節提供有關 GetValueSpec 資料結構的資訊。

父類別

NdbOperation

描述

此結構用於指定要作為 NdbRecord 操作一部分取得的額外值。

成員

構成此結構的元素如下表所示

表 2.52:GetValueSpec 結構的成員名稱、類型和描述

名稱 Type 描述
column const Column* 若要指定要讀取的額外值,呼叫者必須提供此值,以及(可選的 NULLappStorage 指標。
appStorage void* 如果此指標為 null,則接收到的值會儲存在 NdbRecAttr 物件管理的記憶體中。否則,接收到的值會儲存在指標所指向的位置(並且仍然可以使用 NdbRecAttr 物件存取)。
重要

呼叫者有責任確保滿足以下條件

  1. appStorage 指向足夠的空間來儲存任何返回的資料。

  2. execute() 呼叫返回之前,不要重複使用或釋放 appStorage 指向的記憶體。

recAttr NdbRecAttr* 在定義操作之後,recAttr 包含指向用於接收資料的 NdbRecAttr 物件的指標。

無法使用 GetValueSpec 指定 Blob 讀取。

如需詳細資訊,請參閱第 2.3.22 節,「NdbRecord 介面」

NdbOperation::incValue()

描述

解譯的程式指令,將值加到屬性。可以透過名稱或 ID 指定屬性。因此,此方法有四個版本,它們具有略有不同的參數,如簽章下所示。

此指令使用暫存器 6 和 7,並在其操作過程中覆寫這些暫存器。

對於掃描和 NdbRecord 操作,請改用 NdbInterpretedCode 介面。

簽名
int incValue
    (
      const char* anAttrName, 
      Uint32 aValue
    )
int incValue
    (
      const char* anAttrName, 
      Uint64 aValue
    )
int incValue
    (
      Uint32 anAttrId, 
      Uint32 aValue
    )
int incValue
    (
      Uint32 anAttrId, 
      Uint64 aValue
    )
參數
anAttrName

屬性的名稱。

anAttrId

屬性 ID。

aValue

要新增的值;可以是 32 位元或 64 位元整數。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::insertTuple()

描述

此方法定義要作為 INSERT 操作的 NdbOperation。當呼叫 NdbTransaction::execute() 方法時,此操作會將新的元組新增到表格。

簽名
virtual int insertTuple
    (
      void
    )
參數

.

傳回值

成功時返回 0,失敗時返回 -1

NdbOperation::interpret_exit_last_row()

描述

終止整個交易。

簽名
int interpret_exit_last_row
    (
      void
    )
參數

傳回值

成功時返回 0;否則返回 -1。

NdbOperation::interpret_exit_nok()

描述

使用狀態 NOT OK 和可選的錯誤代碼(請參閱第 2.4.2 節,「依類型劃分的 NDB 錯誤代碼」)退出解譯的程式。

簽名
int interpret_exit_nok
    (
      Uint32 ErrorCode
    )

int interpret_exit_nok
    (
      void
    )
參數
ErrorCode

可選的錯誤代碼,預設為錯誤 899。應用程式應使用錯誤代碼 626 或 6000-6999 範圍內的任何代碼。支援錯誤代碼 899 以實現向後相容性,但建議改用 626。對於其他錯誤代碼,其行為是未定義的,並且可能會隨時變更,恕不另行通知。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::interpret_exit_ok()

描述

使用狀態 OK 退出解譯的程式。

簽名
int interpret_exit_ok
    (
      void
    )
參數

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::interpretedDeleteTuple()

描述

使用解譯的程式刪除元組。

簽名
virtual 
int interpretedDeleteTuple
    (
      void
    )
參數

.

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::interpretedUpdateTuple()

描述

使用解譯的程式更新元組。

簽名
virtual
int interpretedUpdateTuple
    (
      void
    )
參數

.

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::interpretedWriteTuple()

描述

使用解譯的程式寫入元組。

簽名
virtual
int interpretedWriteTuple
    (
      void
    )
參數

.

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::load_const_u32()

描述

將 32 位元常數值載入暫存器。

簽名
int load_const_u32
    (
      Uint32 RegDest, 
      Uint32 Constant
    )
參數
RegDest

目標暫存器。

常數

要載入到暫存器的值。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::load_const_u64()

描述

將 64 位元常數值載入暫存器。

簽名
int load_const_u64
    (
      Uint64 RegDest, 
      Uint64 Constant
    )
參數
RegDest

目標暫存器。

常數

要載入到暫存器的值。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::load_const_null()

描述

NULL 載入暫存器。

簽名
int load_const_null
    (
      Uint32 RegDest
    )
參數
RegDest

目標暫存器。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::LockMode

本節提供有關 LockMode 資料類型的資訊。

描述

此類型描述執行讀取操作時使用的鎖定模式。

列舉值

下表顯示此類型的可能值及其描述

表 2.53:NdbOperation::LockMode 類型的值和描述

名稱 描述
LM_Read 使用共用鎖定讀取
LM_Exclusive 使用獨佔鎖定讀取
LM_CommittedRead 忽略鎖定;讀取上次提交的資料
LM_SimpleRead 使用共用鎖定讀取,但直接釋放鎖定

還支援髒讀 (LM_Dirty),但這通常僅用於內部用途,不應用於部署在生產環境中的應用程式。

NdbOperation::OperationOptions

本節提供有關 OperationOptions 資料結構的資訊。

父類別

NdbOperation

描述

這些選項會傳遞至 NdbRecord 的主要索引鍵和掃描接管操作方法,這些方法在 NdbTransactionNdbScanOperation 類別中定義。

大多數 NdbTransaction::*Tuple() 方法(請參閱第 2.3.25 節,「NdbTransaction 類別」)採用額外的 sizeOfOptions 參數。這是可選的,旨在允許介面實作保持與可能傳遞舊版(較小)OperationOptions 結構的舊版未重新編譯的用戶端向後相容。此效果是透過將 sizeof(OperationOptions) 傳遞到此參數中來實現的。

每個選項類型都透過在 optionsPresent 中設定對應的位元來標記為存在。(只有在 optionsPresent 中標記的選項類型才需要有合理的資料。)所有資料都會在操作定義時從 OperationOptions 結構(和任何子結構)中複製出來。如果不需要選項,則可以傳遞 NULL 來代替。

成員

構成此結構的元素如下表所示

表 2.54:NdbOperation::OperationOptions 結構的成員名稱、類型和描述

名稱 Type 描述
optionsPresent Uint64 哪些旗標存在。
[...] 旗標:

接受的名稱和值如下列所示

  • OO_ABORTOPTION: 0x01

  • OO_GETVALUE: 0x02

  • OO_SETVALUE: 0x04

  • OO_PARTITION_ID: 0x08

  • OO_INTERPRETED: 0x10

  • OO_ANYVALUE: 0x20

  • OO_CUSTOMDATA: 0x40

  • OO_LOCKHANDLE: 0x80

  • OO_QUEUABLE

    0x100

  • OO_NOT_QUEUABLE

    0x200

  • OO_DEFERRED_CONSTAINTS

    0x400

  • OO_DISABLE_FK

    0x800

  • OO_NOWAIT

    0x1000

旗標的類型。
abortOption AbortOption 特定於操作的中止選項;只有在預設中止選項行為不令人滿意時才需要。
extraGetValues GetValueSpec 要讀取的額外欄位值。
numExtraGetValues Uint32 要讀取的額外欄位值數量。
extraSetValues SetValueSpec 要設定的額外欄位值。
numExtraSetValues Uint32 要設定的額外欄位值數量。
partitionId Uint32 將掃描限制為具有此 ID 的分割區;或者,您可以在此處提供 PartitionSpec。對於索引掃描,可以為每個範圍提供分割資訊。
interpretedCode NdbInterpretedCode 要作為掃描一部分執行的解譯程式碼。
anyValue Uint32 要在此操作中使用的 anyValue。NDB Cluster 複寫使用它來儲存 SQL 節點的伺服器 ID。透過啟動 SQL 節點並使用 --server-id-bits 選項(這會導致 server_id 中只有部分位元用於唯一識別它)設定為小於 32,其餘位元可用於儲存使用者資料。
customData void* 要與此操作關聯的資料指標。
partitionInfo PartitionSpec 用於限制此掃描的分割資訊。
sizeOfPartInfo Uint32 邊界分割資訊的大小。

如需詳細資訊,請參閱第 2.3.22 節,「NdbRecord 介面」

NdbOperation::read_attr()

描述

將依名稱或 ID 識別的屬性讀入暫存器。

簽名
int read_attr
    (
      const char* anAttrName, 
      Uint32 RegDest
    )

int read_attr
    (
      Uint32 anAttrId, 
      Uint32 RegDest
    )
參數
anAttrName

屬性名稱。使用此名稱或屬性 ID。

anAttrId

屬性 ID。使用此 ID 或屬性的名稱。

RegDest

目標暫存器。

傳回值

成功時,傳回 0;否則傳回 -1。

NdbOperation::readTuple()

描述

此方法將 NdbOperation 定義為 READ 作業。當呼叫 NdbTransaction::execute() 方法時,此作業會讀取一個元組。

簽名
virtual int readTuple
    (
      LockMode mode
    )
參數

mode 指定讀取作業使用的鎖定模式。如需可能的值,請參閱 NdbOperation::LockMode

傳回值

成功時返回 0,失敗時返回 -1

NdbOperation::ret_sub()

描述

從直譯程式子常式返回。

簽名
int ret_sub
    (
      void
    )
參數

.

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::setValue()

描述

此方法定義要設定或更新的屬性。

有許多 NdbOperation::setValue() 方法會將特定類型作為輸入(傳值而非傳遞指標)。應用程式程式設計師有責任使用正確的類型。

NDB API 會檢查應用程式是否將正確的長度傳送到介面,如 length 參數中所指定。 char* 值可以包含任何資料類型或任何類型的陣列。如果未提供長度,或將長度設定為零,則 API 會假設指標是正確的,並且不會檢查它。

若要設定 NULL 值,請使用以下結構

setValue("ATTR_NAME", (char*)NULL);

當您使用 insertTuple() 時,NDB API 會自動偵測到它應該改用 equal()

此外,在使用 insertTuple() 時,無需在其他屬性之前對索引鍵屬性使用 setValue()

簽名

有 14 個版本的 NdbOperation::setValue(),每個版本的參數略有不同,如下所示

int setValue
    (
      const char* name,
      const char* value
)

int setValue
    (
      const char* name,
      Int32       value
    )

int setValue
    (
      const char* name,
      Uint32      value
    )

int setValue
    (
      const char* name,
      Int64       value
    )

int setValue
    (
      const char* name,
      Uint64      value
    )

int setValue
    (
      const char* name,
      float       value
    )

int setValue
    (
      const char* name,
      double      value
    )

int setValue
    (
      Uint32      id,
      const char* value
    )

int setValue
    (
      Uint32 id,
      Int32  value
    )

int setValue
    (
      Uint32 id,
      Uint32 value
    )

int setValue
    (
      Uint32 id,
      Int64  value
    )

int setValue
    (
      Uint32 id,
      Uint64 value
    )

int setValue
    (
      Uint32 id,
      float  value
    )

int setValue
    (
      Uint32 id,
      double value
    )
參數

此方法需要以下兩個參數

  • 第一個參數識別要設定的屬性,並且可能是以下其中之一

    1. 屬性 name (字串)

    2. 屬性 id (無符號 32 位元整數)

  • 第二個參數是要設定屬性的 value;其類型可以是以下 7 種類型中的任何一種

    1. 字串 (const char*)

    2. 32 位元整數

    3. 不帶正負號的 32 位元整數

    4. 64 位元整數

    5. 不帶正負號的 64 位元整數

    6. 倍精度浮點數

    7. 單精度浮點數

    如需關於值的格式和長度的重要資訊,請參閱 NdbOperation::equal()

傳回值

如果失敗,則傳回 -1

NdbOperation::SetValueSpec

本節提供關於 SetValueSpec 資料結構的資訊。

父類別

NdbOperation

描述

此結構用於指定要設定的額外值,作為 NdbRecord 作業的一部分。

成員

構成此結構的元素如下表所示

表 2.55 NdbOperation::SetValueSpec 屬性,包含類型和描述

名稱 Type 描述
column 欄位 若要指定要讀取的額外值,呼叫者必須提供此值,以及(可選的 NULLappStorage 指標。
void* 這必須指向要設定的值,或者如果屬性要設定為 NULL,則指向 NULL。在定義作業時會複製指向的值,並且在執行時間之前不必保留在原位。

無法使用 SetValueSpec 設定 Blob 值。

如需詳細資訊,請參閱第 2.3.22 節,「NdbRecord 介面」

NdbOperation::sub_reg()

描述

將兩個暫存器值的差儲存在第三個暫存器中。

簽名
int sub_reg
    (
      Uint32 RegSource1, 
      Uint32 RegSource2, 
      Uint32 RegDest
    )
參數
param
RegSource1

包含要減去的值的暫存器。

RegSource2

包含要減去的值的暫存器。

RegDest

儲存結果的暫存器。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::subValue()

描述

直譯程式指令,從直譯作業中的屬性減去一個值。 可以依名稱或 ID 指定屬性。 因此,此方法有四個版本,其參數略有不同,如 簽名 下所示。

incValue() 一樣,此指令使用暫存器 6 和 7,並在其操作過程中覆寫這些暫存器。

對於掃描和 NdbRecord 操作,請改用 NdbInterpretedCode 介面。

簽名
int subValue
    (
      const char* anAttrName, 
      Uint32 aValue
    )
int subValue
    (
      const char* anAttrName, 
      Uint64 aValue
    )
int subValue
    (
      Uint32 anAttrId, 
      Uint32 aValue
    )
int subValue
    (
      Uint32 anAttrId, 
      Uint64 aValue
    )
參數
anAttrName

屬性的名稱

anAttrId

屬性 ID

aValue

要減去的值;這可以是 32 位元或 64 位元整數。

傳回值

成功則傳回 0,否則傳回 -1。

NdbOperation::Type

本節提供關於 Type 資料類型的資訊。

描述

Type 用於描述作業存取類型。每個存取類型都由 NdbOperation 或其子類別之一支援,如下表所示

列舉值

下表顯示了可能的值及其描述

表 2.56 NdbOperation::Type 資料類型值和描述

名稱 描述 適用的類別
PrimaryKeyAccess 使用資料表主索引鍵的讀取、插入、更新或刪除作業 NdbOperation
UniqueIndexAccess 使用唯一索引的讀取、更新或刪除作業 NdbIndexOperation
TableScan 完整資料表掃描 NdbScanOperation
OrderedIndexScan 排序索引掃描 NdbIndexScanOperation

NdbOperation::updateTuple()

描述

此方法將 NdbOperation 定義為 UPDATE 作業。當呼叫 NdbTransaction::execute() 方法時,此作業會更新資料表中找到的元組。

簽名
virtual int updateTuple
    (
      void
    )
參數

.

傳回值

成功時返回 0,失敗時返回 -1

NdbOperation::write_attr()

描述

從暫存器寫入屬性值。要寫入的屬性可以依名稱或 ID 指定。

簽名
int write_attr
    (
      const char* anAttrName, 
      Uint32 RegSource
    )

int write_attr
    (
      Uint32 anAttrId, 
      Uint32 RegSource
    )
參數
anAttrName

屬性名稱。使用此名稱或屬性 ID。

anAttrId

屬性 ID。使用此 ID 或屬性的名稱。

RegSource

來源暫存器。

傳回值

成功時返回 0;否則返回 -1。

NdbOperation::writeTuple()

描述

此方法將 NdbOperation 定義為 WRITE 作業。當呼叫 NdbTransaction::execute() 方法時,此作業會將元組寫入資料表。如果元組已存在,則會更新它;否則會執行插入。

簽名
virtual int writeTuple
    (
      void
    )
參數

.

傳回值

成功時返回 0,失敗時返回 -1