IF STATUS THEN
CALL cl_err("Show Errot Message",status,1)
LET g_success = 'N'
RETURN
END IF
IF SQLCA.sqlcode != 0 THEN
CALL cl_err("Show Errot Message",SQLCA.sqlcode,1)
LET g_success = 'N'
RETURN
END IF
-----------------------------------------------------------------------------------
STATUS 與 SQLCA.sqlcode 二者差別在於,
1. SQLCA.SQLCODE的值是由資料庫引擎返回的。而 status只是一個全域變數,用於反映的是 INFORMIX-4GL語句執行成功還是失敗,如打開Form顯示等 ( 當請求的 Form不存在,STATUS 將為負值 )。
2. 如果是要確認新增或更改是否OK,以上二種方法都可以。當SQL執行完後,STATUS 的值等於SQLCA.SQLCODE,故如需要確定執行是否成功,STATUS需要緊跟在 INSERT 與 UPDATE 之後。 SQLCA.SQLCODE則會再下一次的SQL 執行後,再被更新。
3. 如果是用於 SELECT ,可以用 SQLCA.sqlcode = 100 來判斷是否有找到。當然也可以用 其他方式來確認。( 如 建立 l_cnt)
4. SQLCA是全域的預定義記錄變數,由十個獨立的變數組成。它不用DEFINE 語句定義,是 INFORMIX-4GL已定義好的。
5. 以下為常用的 SQLCA.sqlcode :
SQLCA.sqlcode = 0 ==> 表示執行成功
SQLCA.sqlcode = 100 ==> 表示執行成功,但沒有記錄。
SQLCA.sqlcode < 0 ==> 表示執行失敗。

以前只知道沿用,現在終於知道詳細差別了,謝謝。