Symfoware(R) Server RDBユーザーズガイド 応用プログラム開発編 - FUJITSU -
目次 索引 前ページ次ページ

上へ第4章 応用プログラムの翻訳・結合編集
上へ4.2 Windowsを使用した場合の応用プログラムの翻訳・結合編集
上へ4.2.4 複数の翻訳単位から構成される応用プログラムの翻訳・結合編集の方法

4.2.4.2 動的結合する場合の翻訳・結合編集

図:複数の翻訳単位を動的結合する場合の翻訳・結合編集の方法に、複数の翻訳単を動的結合する場合の翻訳・結合編集の方法を示します。

[図:複数の翻訳単位を動的結合する場合の翻訳・結合編集の方法]

image

SQL文を使用する翻訳単は、sqlccまたはsqlcobolを使用して翻訳・結合編集を行います。

sqlccおよびsqlcobolのオプションの指定方法については、オンラインヘルプを参照してください。

応用プログラムによっては、SQL文を使用しない翻訳単位が存在する場合があります。

SQL文を使用しない翻訳単は、clコマンドまたはcobol32コマンドを使用して翻訳・結合編集を行います。

また、ロードモジュールを動的結合して作成するためには、副プログラムは共用ライブラリにロードモジュールとして作成し、主プログラムの翻訳・結合編集時に結合する副プログラムのロードモジュール名を指定する必要があります。

表:応用プログラムを動的結合する場合に必要なオプションに、応用プログラムを動的結合する場合に必要なオプションを示します。

[表:応用プログラムを動的結合する場合に必要なオプショ]

翻訳対象の性質

指定するオプション

備考

SQL文を含む翻訳単位

主プログラム

副プログラムのDLL名

結合する副プログラム

-M

COBOLの場合に指定

副プログラム

動的リンクオプション

動的結合の指定

SQL文を含まない翻訳単位

主プログラム

副プログラムのDLL名

結合する副プログラム

-M

COBOLの場合に指定

副プログラム

動的リンクオプション

動的結合の指定

■C言語使用時の例

例1

SQL文を使用する主プログラム(DEMO10MAIN.SC)と、SQL文を使用する2個の副プログラム(SUB1.SC、SUB2.SC)を動的結合します。DLL名は、副プログラムを“SUB1.LIB”および“SUB2.LIB”とします。主プログラムのロードモジュール名は、“DEMO10MAIN.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcc -L"/DLL /EXPORT:SUB1" SUB1.SC
sqlcc -L"/DLL /EXPORT:SUB2" SUB2.SC
sqlcc -L"/out:..\BIN\DEMO10MAIN.EXE SUB1.LIB SUB2.LIB"
      DEMO10MAIN.SC

 

例2

SQL文を使用しない主プログラム(DEMO11MAIN.C)と、SQL文を使用する副プログラム(SUB3.SC)、およびSQL文を使用しない副プログラム(SUB4.C)を動的結合します。副プログラムのライブラリ名は、“SUB3.LIB”および“SUB4.LIB”、主プログラムのロードモジュール名を“DEMO11MAIN.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcc -L"/DLL /EXPORT:SUB3" SUB3.SC
cl /c SUB4.C
link /DLL /EXPORT:SUB4 SUB4.OBJ
cl /o..\BIN\DEMO11MAIN.EXE DEMO11MAIN.C SUB3.LIB SUB4.LIB

■COBOL使用時の例

例1

SQL文を使用する主プログラム(DEMO12MAIN.SCOB)と、SQL文を使用する2個の副プログラム(SUB5.SCOB、SUB6.SCOB)を動的結合します。DLL名は、副プログラムを“SUB5.LIB”および“SUB6.LIB”とします。主プログラムのロードモジュール名は、“DEMO12MAIN.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcobol -L"/DLL /EXPORT:SUB5" SUB5.SCOB
sqlcobol -L"/DLL /EXPORT:SUB6" SUB6.SCOB
sqlcobol -L"/out:..\BIN\DEMO12MAIN.EXE SUB5.LIB SUB6.LIB"
       DEMO12MAIN.SCOB -M

 

例2

SQL文を使用しない主プログラム(DEMO13MAIN.COBOL)と、SQL文を使用する副プログラム(SUB7.SCOB)、およびSQL文を使用しない副プログラム(SUB8.COBOL)を動的結合します。副プログラムのDLL名は、“SUB7.LIB”および“SUB8.LIB”、主プログラムのロードモジュール名を“DEMO13MAIN.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlcobol -L"/DLL /EXPORT:SUB7" SUB7.SCOB 
cobol32 SUB8.COBOL
link /DLL /EXPORT:SUB8 SUB8.OBJ F3BICIMP.LIB LIBC.LIB KERNEL32.LIB
     USER32.LIB
cobol32 -M DEMO13MAIN.COBOL
link /out:..\BIN\DEMO13MAIN.EXE DEMO13MAIN.OBJ SUB7.LIB SUB8.LIB
     F3BICIMP.LIB LIBC.LIB KERNEL32.LIB USER32.LIB

目次 索引 前ページ次ページ

All Rights Reserved, Copyright (C) 富士通株式会社 2003-2004