當進行Debug的時候,經常會遇到"SY-SUBRC"的傳回值。具體如何使用。在各種語句下傳回值。
================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含義 ================
使用SELECT語句選取查詢:
SY-SUBRC = 0: 至少有一行資料,當ENDSELECT語句執行完,SY-DBCNT中儲存著記錄的個數。
SY-SUBRC = 4: 沒有資料。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”時才會有,
表示: WHERE條件指定的記錄不止一行,結果是沒有記錄被選中。
使用INSERT語句,向表中插入一行,必須注意INSERT的順序與表中欄位的順序一致:
SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行數,0或1。
SY-SUBRC = 4: 由於有相同的KEY存在,所以插入失敗。
使用LOOP語句來遍曆一個內表:
SY-SUBRC = 0: 迴圈至少被執行一次。
SY-SUBRC = 4: 迴圈沒有被執行,可能是沒有資料,也可能是沒有合格記錄。
使用DELETE語句來刪除一條記錄:
SY-SUBRC = 0: 找到一行並刪除之,如果該表有不唯一主鍵,也就是有多條重複的記錄,則只刪除第一條記錄。
SY-SUBRC = 4: 沒有找到合格記錄,也沒有刪除。
使用UPDATE語句來更新一條記錄:
SY-SUBRC = 0: 找到記錄並更新,(如果有多條記錄呢?)
SY-SUBRC = 4: 沒有找到合格記錄,也沒有更新。
當進行Debug的時候,經常會遇到"SY-SUBRC"的傳回值。具體如何使用。在各種語句下傳回值。
================= FUNCTION MODULE (或RFC中) SY-SUBRC 的含義 ================
使用SELECT語句選取查詢:
SY-SUBRC = 0: 至少有一行資料,當ENDSELECT語句執行完,SY-DBCNT中儲存著記錄的個數。
SY-SUBRC = 4: 沒有資料。
SY-SUBRC = 8: 只有使用“SELECT SINGLE FOR UPDATE”時才會有,
表示: WHERE條件指定的記錄不止一行,結果是沒有記錄被選中。
使用INSERT語句,向表中插入一行,必須注意INSERT的順序與表中欄位的順序一致:
SY-SUBRC = 0: 插入成功,SY-DBCNT包含了插入的行數,0或1。
SY-SUBRC = 4: 由於有相同的KEY存在,所以插入失敗。
使用LOOP語句來遍曆一個內表:
SY-SUBRC = 0: 迴圈至少被執行一次。
SY-SUBRC = 4: 迴圈沒有被執行,可能是沒有資料,也可能是沒有合格記錄。
使用DELETE語句來刪除一條記錄:
SY-SUBRC = 0: 找到一行並刪除之,如果該表有不唯一主鍵,也就是有多條重複的記錄,則只刪除第一條記錄。
SY-SUBRC = 4: 沒有找到合格記錄,也沒有刪除。
使用UPDATE語句來更新一條記錄:
SY-SUBRC = 0: 找到記錄並更新,(如果有多條記錄呢?)
SY-SUBRC = 4: 沒有找到合格記錄,也沒有更新。