close
STATUS vs SQLCA.SQLCODE
兩個都是系統內建變數,都是用來顯示執行SQL後的結果訊息

STATUS
加在SQL之後,中間不能有其它Code,否則STATUS的值會被改掉
通常是加在報表程式中,較不嚴謹

Ex:
SELECT * INTO l_pmc.* FROM pmc_file
WHERE pmc01 = g_ops.ops04 AND pmcacti='Y'
IF STATUS THEN
CALL cl_err('select pmc',STATUS,0) NEXT FIELD ops04
END IF


SQLCA.SQLCODE
加在SQL之後,SQLCA.SQLCODE的值會存放到下一個SQLCA.SQLCODE產生才被改掉
通常是加在維護程式與交易程式的UPDATE、INSERT、DELETE之後,比較嚴謹些

Ex:
SELECT * INTO l_npc.* FROM npc_file
WHERE npc01 = l_npq.npq01 and npc00 = l_npp.nppsys AND npc011=l_npq.npq011
ORDER BY npc02,npc03
IF SQLCA.sqlcode THEN
CALL cl_err('foreach:',SQLCA.sqlcode,1)
END IF



**差異
01.
SELECT * INTO l_pmc.* FROM pmc_file
WHERE pmc01 = g_ops.ops04 AND pmcacti='Y'
DISPLAY STATUS,SQLCA.SQLCODE
結果: 100,100

02.
SELECT * INTO l_pmc.* FROM pmc_file
WHERE pmc01 = g_ops.ops04 AND pmcacti='Y'
DISPLAY "STATUS Will Be Update!!" ---->中間加了其它的Code,STATUS的值就會被修改
DISPLAY STATUS,SQLCA.SQLCODE
結果: 0,100
arrow
arrow
    全站熱搜

    mosful 發表在 痞客邦 留言(0) 人氣()