案例說明:
在 GP 5.1 / 5.2 / 5.25 版本中,在『極度的偶然』情況下,會發生 r.f2 編譯畫面時,一直發生 error:(GS-10067) Non existing schema ds attached to form 的錯誤
如上圖所示。而且更糟的是,所有的畫面檔編譯,都不行了﹝其實,沒有參考到 ds 資料庫所做出的 formonly 畫面還是可以編譯的﹞。
此時,首先應該會想到,去 $TOP/schema 目錄下檢查 ds.sch 有沒有存在?在的。
那,重新產生一下 ds.sch 是否就可以了? r.s2 ds 重新生成了,呃,問題一樣。
解決方法:
這種情況,應該是資料庫中存在了 Genero 認不得的資料型態。以 ORACLE 來說,就是 NUMBER(37) 或是不限長度的 NUMBER( ) 。此兩種欄位都會照常的產出資訊到 ds.sch 中,然後造成 compiler 讀取資料時發生異常錯誤,然後自我了斷。
解法 1 : 鋸箭法
很簡單,去 ds.sch 內搜尋『 ^^ 』的符號﹝分隔符號中間無數值,非表情符號﹞,然後把該行刪掉。
缺點:重新 r.s2 後,問題如怨念般地又出現了。
解法 2 : 完全解決法
請先使用鋸箭法,搜尋出問題欄位,再用 alter 工具調整 NUMBER 長度,或是取消該 table / column ﹝如果真的沒用途的話,請先確認過,有練過在這麼做﹞。然後重新 r.s2 看看是否就此解決。
缺點:有點麻煩,而且沒有人以後再纏著你問此問題,會有一點寂寞…
PS. Genero 2.4 / TIPTOP GP 5.3 起,錯誤訊息已修正為
/u1/topprod/tiptop/schema/ds.sch:149:error:(GS-11552) Can’t convert length for column ‘aao00’ of table ‘aao_file’.
/u1/topprod/tiptop/azz/4fd/p_zz.4fd:/ManagedForm@databaseName:error:(GS-24213) Non existing schema ds attached to document
問題發生處就更加明確了…