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    ==> 表示執行失敗。

文章標籤
全站熱搜
創作者介紹
創作者 Genero 的頭像
Genero

Genero 的部落格

Genero 發表在 痞客邦 留言(1) 人氣(10,426)