ABAP語法 資料庫更新

2022-10-15 23:27:09 字數 3118 閱讀 4073

概覽要有效地進行程式設計資料庫更新,程式設計師必須主要關注於:

內容sap 資料庫環境

r/3 體系結構: 概述

sap 系統中的事務

更新繫結介紹

sap 鎖定介紹

更新程式設計技術

維護資料庫完整性

優化事務效能

未繫結的更新

在對話任務中的繫結更新

更新任務中的繫結更新

後台任務中的繫結更新

commit work 處理

rollback work 處理

後台處理考慮

繫結更新的錯誤處理

sap 系統中的鎖定

定義鎖定物件

呼叫 enqueue/dequeue 功能模組

_ 保持資料庫的正確性

_ 優化使用者的反應時間

sap 系統提供了許多更新資料庫的方法 。每種方法都利用了 sap 體系結構的不同特徵。 本章用以描述這些方法並提供選擇最適合使用者應用程式的方法指南。 下列主題提供資訊:

sap 資料庫環境 (頁 1)

更新程式設計技術 (頁 5)

sap 系統中的鎖定 (頁 14)

如果正在事務中更新資料庫,那麼 sap 資料庫環境提供可想而知的一些專用特徵。關於程式設計更新之前的快速入門,參見 :

sap 系統中的事務 (頁 2)

更新繫結介紹 (頁 3)

sap 鎖定介紹 (頁 5)

為了了解 r/3 系統如何執行資料庫更新,應該熟悉 r/3 體系結構。

sap 的**客戶機/伺服器配置包括演示(使用者前端),應用邏輯(使用者處理對話) 和資料儲存 (執行資料庫請求)。 演示伺服器使用 sapgui 程式提供 r/3 使用者介面。 如果使用者啟動事務,則 sapgui 傳遞條目到排程程式。

排程程式將掛起的處理任務分配給多個工作程序。具體的工作程序數取決於配置 。工作程序可以直接訪問資料庫, 該資料庫使用共享服務在不同的計算機上儲存 。

該對話工作程序交替控制當前使用者會話。如果使用者輸入動態處理請求系統處理, 則排程程式將其放入佇列。一旦對話工作程序為空,則佇列頂部的作業將被分配給該程序以便進行處理 。

然後,對話工作程序執行一對話步驟。每次更改螢幕之後,都將觸發資料庫的提交。這樣將清空螢幕間的對話程序,以允許其處理由排程程式所分配的新對話步驟。

由於已將任務分配給了空的工作程序,因此必須優化系統資源的使用並優化負載的承擔。但是,設計事務流時,事務開發者必須記住在事務處理期間工作程序必須切換多次 。如果事務更改了資料庫,那麼, 此事實十分重要,因為一旦工作程序清空,則系統釋放資料庫鎖定並關閉資料庫游標。

要保持更改正確 ,必須知道該點何時到達以及應採取的行動。 本章將說明用於程式設計的校正和有效資料庫更改的技術。abap/4 提供的優化資料庫更新的技術獨立於基礎資料庫,並且符合對話程式設計的特別要求 。

除對話程序外,每個 r/3 系統包含乙個或多個更新服務和乙個排隊服務 。使用這些服務更新 r/3 中的資料庫

對話事務可以直接或間接更改資料庫。對於直接更改,由對話工作程序執行更新程式。強制對話使用者等待直到作任何輸入之前更新操作已經完成為止 。

在非同步更新中,事務的對話部分與資料庫的實際更新分離(例如, 由於效能的原因)。專門的更新工作程序執行資料庫更新 。

排隊服務管理 r/3 系統中的內部鎖定。按照規則,關係型資料庫系統的鎖定機制不滿足 r/s 的要求。由不同工作程序處理對話步驟的事務甚至在切換時都必須保留賦予的鎖定。

每個鎖定不僅適用執行鎖定事務的應用伺服器,而且適用其它任何客戶機/伺服器配置。 因此,每個 r/3 系統只包含乙個排隊服務。(關於邏輯鎖定的詳細資訊, 參見 sap 鎖定介紹 (頁 5) )。

在通常意義下,事務是讓使用者更改資料庫的操作。該操作必須以「全部或沒有」 的方式執行 。如果事務執行成功, 則應該執行所有的更改 。如果事務遇到錯誤, 則不執行任何更改。

當在事務的中途發生錯誤時,應該取消該點前的任何資料庫更改。這將使資料庫保留事務開始前的狀態 。

在 sap 系統中,資料庫級事務和作為程式設計師設計的事務之間有重要區別。此區別(本節中說明)是用於執行資料庫更新的繫結技術的動機。

在 sap 系統中,單詞事務有幾種意義:

_ 資料庫事務(「luw」 或「資料庫 luw」)

在資料庫世界中,「全部或沒有」 事務稱為 luw(工作邏輯單元 )。luw 是必須作為單元執行的所有更新請求的時間段 。在 luw 結尾,系統或者提交對資料庫的更新或者丟棄這些更新( 丟棄更改稱為「反轉」 )。

每次提交或反轉既是乙個 luw 的結束又標誌著下乙個 luw 的開始。

sap 系統在每次更改螢幕時自動觸發資料庫的提交操作。這意味著資料庫 luw 最長維持從乙個螢幕到下乙個螢幕的更改。

_ 更新事務 (「sap luw」)

事務是組成邏輯單元的業務相關任務。該任務的執行需要幾個 sap 螢幕來實施 ,但是可以組成單個功能(例如, 顯示資料庫 、更改資料庫或者傳送訊息)。不是所有事務都涉及更新資料庫。

但是在本章中 ,我們只討論執行更新的事務(「 更新事務」 )。

作為邏輯單元,更新事務應該全部執行或根本不執行。因此有時稱它們為 sap luw,以使其同資料庫 luw 區分開來。 一般地,更新事務通常跨越幾個資料庫 luw,並且在 abap/4 級使用 commit work 命令關閉。

(該命令執行幾個任務 ,其間觸發資料庫執行 )。

_ abap/4 事務(「sap 事務」)

abap/4 事務是在單個事務**下結合的業務相關任務集。abap/4 事務可能包括幾個「更新事務」( 如同以前所作的說明) 。作為程式 ,abap/4 事務是包括模組儲存、 螢幕、選單介面、事務**等等的複雜物件。

3luw 和更新事務

「luw」 (工作邏輯單元)是資料庫更新必須以「全部或沒有」方式執行的時間段。或者全部執行( 提交),或者丟棄(返回)。在 abap/4 系統中,luw 和事務可以有幾個意義 :

_ luw( 或「資料庫 luw」或 「資料庫事務」)

這是由資料庫提交終止的更新集。 luw 最長從乙個螢幕更改維持到另乙個螢幕更改( 因為 sap 系統在每次螢幕更改時自動觸發資料庫的提交 )。

_ 更新事務 (或「sap luw」)

這是由 abap/4 提交終止的更新集。sap luw 的維持可以比資料庫 luw 的維持長得多,原因是大多數更新處理超過多重事務螢幕 。程式設計師通過發出 commit work 語句來終止更新事務。

邏輯資料庫和ABAP 4報表

生成 abap 4 報表時的邏輯資料庫 生成的選擇螢幕包含邏輯資料庫選擇 選擇標準和引數 和報表。在選擇螢幕上,只顯示報表中與資料評估相關的特定資料庫選擇。鏈結到邏輯資料庫的報表的執行行為 當執行鏈結到邏輯資料庫的報表時 系統以特定順序呼叫一系列處理塊 參見 abap 4 處理程式 頁錯誤!鏈結無效...

資料庫語法學習

查詢操作 select from emp e,dept d where 將smith的獎金設定為300美元 select from emp where ename smith update emp set salary 300 where ename smith 將smith的獎金新增300美元 u...

資料庫種類與資料庫結構

2 網狀結構模型 某醫院醫生 病房和病人之間的聯絡。即每個醫生負責 三個病人,每個病房可住一到四個病人。如果將醫生看成是乙個資料集合,病人和病房分別是另外兩個資料集合,那麼醫生 病人和病房的比例關係就是m n p 即m個醫生,n個病人,p間病房 這種資料結構就是網狀資料結構,它的一般結構模型,記錄r...