2012-07-13 93 views

回答

1

請原諒我,如果這是打破#2任何年齡限制規則;

鏈接到數據庫庫的樣本見http://opencobol.add1tocobol.com/#how-does-the-opencobol-compiler-work

,也許http://opencobol.add1tocobol.com/#does-opencobol-support-any-sql-databases

編輯:如由mbinette建議代替簡單鏈接

總之,OpenCOBOL是一個多相位編譯器。

  • 預處理的源文本。 COBC -E以產生後處理的文本到stdout和停止
  • 轉換爲C. COBC -C生成.C源代碼文件和停止
  • 翻譯使用本地C編譯器來彙編。 COBC -S生成.S彙編源程序和停止
  • 生成對象。 COBC -c將生成.o目標文件,並停止
  • 生成。 cobc -xcobc -mcobc -b用於可執行文件,模塊(.so或DLL),最後構建用於從多個命令行輸入中創建動態共享對象。

OpenCOBOL擅長共享庫和通過使用C應用程序二進制接口,可以動態加載使用COBOL CALL動詞大多數,如果不是全部的.so(或DLL)符號。

CALL "DB2-CONNECT" 
    USING 
     BY REFERENCE "database name" 
     BY CONTENT credentials 
     BY VALUE control-bits 
    RETURNING pointer-to-handle 
    ON EXCEPTION 
     DISPLAY "Can't find DB2-CONNECT, use -ldb2 with cobc" END-DISPLAY 
END-CALL 

我提出了上面的電話架,因爲我沒有DB2庫或手頭的文檔。

編譯程序來使用DB2服務你會使用類似

cobc -x myprogram.cob -ldb2 -L/path/to/DB2lib 

,或者更可能在一個較大的應用程序,沿

cobc -b myprogram.cob hisprogram.cob herprogram.cob 
export COB_LIBRARY_PATH=/path/to/development/libraries 
export COB_PRE_LOAD=db2-dev:other-dev-libs 
cobcrun myprogram 

有關詳細信息線的東西,請參閱常見問題解答,,希望永遠隱藏在以上的鏈接上。

指出從1.1開始的OpenCOBOL不支持EXEC語法。 DB2 EXEC預處理器可能會或可能不會生成適用於OpenCOBOL的COBOL。 我已經告訴了Oracle PRO * COBOL EXEC END-EXEC預編譯器生成與OpenCOBOL編譯用於連接到Oracle SQL COBOL源代碼。

+0

儘管此鏈接可能會回答問題,但最好在此處包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – mbinette 2012-11-25 07:23:07

+1

新的在這裏;謝謝你的提升。編輯答案。 – 2012-11-29 05:03:37

+0

賓果和upvoted! ;-) – mbinette 2012-11-29 16:34:30