2009年11月18日 星期三

Genero技轉沒教的事(05)-探究Genero需用環境變數

先來個版權聲明:以下有部份內容是從FourJS的Genero軟體線上說明文件節錄來的,再加上部份開發心得整合成這份文件。

Genero在程式運作時,﹝當然,走極簡風的小程式除外;﹞須要一些系統的環境變數﹝簡體中文稱:環境變量﹞來配合,以下挑選幾個重要的來說明用途;如果家裡的系統有些異常,請記得要檢查Users’ Profile裡面設定的環境變數值、及執行中這些環境變數是否遭到異動。

註:以下用『%Genero%』表示Genero安裝路徑

OS Environment﹝作業系統端﹞

  • PATH:廢話不多說,各位基礎應該知道的事。若程式執行操作遭到莫名無解的問題,請把『%Genero%\bin、%Genero\lib、%Genero%\dbdrivers』加入PATH。
  • LD_LIBRARY_PATH:UNIX專用環境變數,在設定shared library之用,請特別注意在64bit環境下,因為會與32混用,所以『LD_LIBRARY_PATH』是設定給32bit,『LD_LIBRARY_PATH_64』是設定給64bit的。﹝請特別小心Genero安裝的版本,使用ORACLE資料庫的要把ORACLE Library設定進來,如/usr/oracle/9i/lib﹞。
  • LANG:Genero文件上寫『使用LC_ALL,若沒有才用LANG』,但在TIPTOP GP內不使用LC_ALL,都使用LANG。此為註記使用語系,如:BIG5兩岸版為zh_TW.BIG5,UNICODE國際版為en_US.UTF8﹝依UNIX廠牌不同有些微差異,請以『locale -a』確認您系統正確字樣,Windows國際版一律定為 『*.fglutf8』﹞。

Genero Environment﹝Genero端,Genero/INFORMIX創來用的﹞

  • DBDATE:程式在顯示日期時使用的格式,一般常用『Y2MD/』﹝即:09/12/31,兩碼年,斜線分隔﹞;或『Y4MD/』﹝即:2009/12/31,四碼年,斜線分隔﹞;位置可調動如『MDY4/』;分隔符號可用 / – , . 及不表示﹝用0,如 MDY40﹞
  • DBDELIMITER:在使用Genero內建load / unload指令時,以此環境變數指定字 / 字元做為欄位分隔符號。為避免衝碼,TIPTOP GP將此符號設為Control-A,因此若直接查看可能會看到亂碼。
  • DBPATH:設定資源檔﹝TIPTOP GP只有畫面檔算﹞查找路徑變數,在純Genero環境﹝沒有INFORMIX DB即為純Genero環境,不要問我ORACLE / SQL Server算不算,沒說就不算,別再問了﹞可以用FGLRESOURCEPATH相互替代。TIPTOP GP應設定『%TOP%:%CUST%』,讓系統到這兩個目錄下,搭配程式所寫的『OPEN WINDOWS …WITH FORM “xxx/42f/xxxxxxx” 』就可以開出畫面。
  • FGLGUI:圖型介面為1,TIPTOP GP這裡永遠是 1,其他值會讓程式開不起來。
  • FGLDIR:設定%Genero%用,一般系統會裝一組Runtime,一組compiler用,作編譯程式時會由TIPTOP GP自動切換
  • FGLDBPATH:設定database dump出來的 schema file (*.sch)所存放路徑﹝單一路徑﹞,在編譯時需用。
  • FGLIMAGEPATH:若程式或畫面檔,或TOOLBAR等處需要使用圖檔 /icon檔來增加易讀易用性,可以將圖片放到FGLIMAGEPATH所指定的路徑下,在程式撰寫時就直接指定開啟的檔名就可以了。反之若執行時畫面上的圖檔都變紅色『X』,則請檢查是否有設定此環境變數,又,在此路徑下是否有該檔存在。
  • FGLLDPATH:搜尋42m用的PATH。請記得42r裡面是沒有註記路徑的,那它去哪裡找出42m所在?就是靠FGLLDPATH。反之,若『連結link』時錯誤訊息是找不到42m的話,除檢查是否已正常產生,也要檢查FGLLDPATH是否沒註記到。
  • FGLSERVER:指GDC的路徑,也就是client PC端GDC的ip+port,如『127.0.0.1』指本機的6400埠﹝預設﹞,若在PC端看到的GDC上註記:port 6405,則請改成『127.0.0.1:5』﹝offset為5,加起來 6400+5=6405﹞,若在此位址上沒有獲得回應,則執行時會顯示『FORMS statement error number -8086.』。
  • FGLPROFILE:啟動fglrun時要讀入的設定檔,一般會註記資料庫連線資料﹝如db resource,user name,login password﹞,若這個環境變數沒設,就『只』會讀取 %Genero%/etc/fglprofile﹝就算設了也會讀,若有重覆設定,以FGLPROFILE指定檔案內容為準﹞。
  • FGLSQLDEBUG:專章再探討。

希望以上的說明能對維護系統有所助益。

2 則留言:

  1. 想請教, FGLSERVER 中提到的 GDC 是指什麼?因我們正好遇到同樣問題 8086

    回覆刪除
    回覆
    1. GDC = Genero Desktop Client
      -8086 The socket connection timed out.
      大部份是Timeout的時間設的時間不一致的問題

      刪除