2009年11月18日 星期三

Genero技轉沒教的事(06)-DEBUG使用FGLSQLDEBUG

有人問說:哪來那麼多技轉沒教的事?但,確實很多。主要是Genero它也是一個完整的程式語言,光用兩天的時間,除了講不了太多深入的東西,學員也不容易全部可以活用、應用,甚至『一目十行,過目即忘』,因此只好把遺珠之處,匯整到BLOG內,供各位慢慢參考。

言歸正傳。

程式開發完成後就是測試,測試程式有許多方法,包含使用Debug Tool,或自己寫display來顯示,本篇說明的是使用FGLSQLDEBUG環境變數來作Debug。

當程式是陣亡在某個深層的function或library時,若用debug tool要追入是一件麻煩的事﹝對我來說是﹞,若又不確認發生位置時,可以考慮使用FGLSQLDEBUG環境變數。

執行程式前export FGLSQLDEBUG=n 再執行程式就可以了﹝Windows使用set FGLSQLDEBUG=n;WEB Mode請打消您的念頭﹞,執行的過程會顯示在背景畫面上,參數n 值如下:

n=1,此時會將翻譯過的SQL statment﹝含程式所在module及行數﹞、SQL code,傳入傳出參數依照執行的順序,一個一個列出

n=2,上項外再增加ODI driver訊息,以xxx.c(2)表示﹝xxx表資料庫代碼,如ORA/MSV/DB2…﹞

n=3,上項外再增加db connect driver訊息,以xxx.c(3)表示

n=4 - 10,上項外再增加ODI driver WARING訊息,以xxx.c(4)表示

TIPTOP GP利用FGLSQLDEBUG環境變數做r.r2d工具,主要即是設定成FGLSQLDEBUG=3並將訊息就地導成log檔,做為判定問題之參考依據。

沒有留言:

張貼留言