IBM Books

OS/400 版管理及程式設計指南

管理 Net.Data 應用程式中的異動

當您使用插入、刪除或更新陳述式來修改資料庫的內容時,修改的內容將不會變成永久的, 除非資料庫從 Net.Data 收到一個確定陳述式。如果發生錯誤,則 Net.Data 將傳送一個回轉陳述式給資料庫, 反轉自上次確定後所做的任何修改。

Net.Data 傳送確定及可能回轉的方式取決於您如何設定 TRANSACTION_SCOPE, 以及您是否明確地在巨集中指定確定。TRANSACTION_SCOPE 的值是 MULTIPLE 及 SINGLE。

MULTIPLE

指定在發出確定及可能回轉陳述式之前,Net.Data 將執行所有 SQL 陳述式。 在要求結束時,Net.Data 會傳送確定,而且如果順利發出了每一個 SQL 陳述式, 則確定將使得資料庫中的所有修改內容變成永久的。如果任一陳述式傳回錯誤, 則 Net.Data 將發出回轉陳述式,將資料庫設定回它的原始狀態。 如果未設定 TRANSACTION_SCOPE,MULTIPLE 將是預設值。

若要啟動這個確定方法,請將 TRANSACTION_SCOPE 設定為 MULTIPLE。

例如:

@DTW_ASSIGN(TRANSACTION_SCOPE,"MULTIPLE")

SINGLE

指定在每一個 SQL 陳述式順利完成後,Net.Data 將發出一個確定陳述式。如果 SQL 陳述式傳回錯誤,將發出回轉陳述式。 單一異動範圍可立即保障資料庫的修改;不過,使用這個範圍後,稍後可能無法使用回轉陳述式來還原修改的內容。

若要啟動這個確定方法,請將 TRANSACTION_SCOPE 設定為 SINGLE。例如:

@DTW_ASSIGN(TRANSACTION_SCOPE,"SINGLE")

您可以使用 COMMIT SQL 陳述式,在巨集中的任一 SQL 陳述式結束時, 發出一個確定陳述式。經由使 TRANSACTION_SCOPE 設定為 MULTIPLE, 並在那些您覺得已合格作為異動的陳述式群組結束時發出確定陳述式,您 (應用程式軟體開發者) 便可以完全控制應用程式中的確定及回轉行為。

若要發出 SQL 確定陳述式,您可以定義一個可在您的 HTML 區塊中任一點呼叫的函數:

%FUNCTION(DTW_SQL) user_commit() {
  commit
%}
%HTML {
  ...
  @user_commit()
  ...
%}


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]