2012-07-13 90 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