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

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

4.1.4.1 静的結合する場合の翻訳・結合編集

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

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

image

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

sqlcc、sqlfccおよびsqlcobolのオプションの指定方法については、“RDBコマンドリファレンス”を参照してください。

応用プログラムによっては、SQL文を使用しない翻訳単が存在する場合があります。SQL文を使用しない翻訳単位は、ccコマンド、gccコマンド、fccコマンドまたはcobolコマンドを使用して翻訳・結合編集を行います。

また、ロードモジュールを静的結合して作成するには、副プログラムのオブジェクトファイルを作成し、主プログラムに静的に結合編集する必要があります。

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

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

翻訳対象の性質

指定するオプション

備考

SQL文を含む翻訳単位

主プログラム

副プログラムのオブジェクトファイル名

結合する副プログラム

-M

COBOLの場合に指定

副プログラム

-c

オブジェクトファイルの作成

SQL文を含まない翻訳単位

主プログラム

副プログラムのオブジェクトファイル名

結合する副プログラム

-M

COBOLの場合に指定

-L/opt/FSUNrdb2b/li

RDBライブラリパス指定(Solaris OEの場合)

-L/opt/FJSVrdb2b/lib

RDBライブラリパス指定(Linuxの場合)

-lsqldrvm

RDBライブラリ名(マルチスレッドで動作する応用プログラムを静的結合する場合に使用)

-lsqldrv

RDBライブラリ名(32ビットマシンで実行する応用プログラムを静的結合する場合に使用)

-lsql64drv(注)

RDBライブラリ名(64ビットマシンで実行する応用プログラムを静的結合する場合に使用)

副プログラム

-c

オブジェクトファイルの作成

注) Symfoware Server Enterprise Extended Editionでのみ使用可能です。

■C言語使用時の例

以下の例において、sqlfccを利用する場合は、sqlccをsqlfccに、またccをfccに置き換えたものになります。

例1

SQL文を使用する主プログラム(demo04main.sc)と、SQL文を使用する2個の副プログラム(demo04sub1.sc、demo04sub2.sc)を静的結合します。ロードモジュール名は“demo04”とします。

cd /home/rdb2/application/src 
sqlcc demo04sub1.sc -c
sqlcc demo04sub2.sc -c
sqlcc demo04main.sc -o ../bin/demo04 demo04sub1.o
      demo04sub2.o 

 

例2

SQL文を使用しない主プログラム(demo05main.c)と、SQL文を使用する副プログラム(demo05sub1.sc)、およびSQL文を使用しない副プログラム(demo05sub2.c)を静的結合します。ロードモジュール名は“demo05”とします。

なお、Linuxの場合は、Lオプションに指定するパス名を読み替えてください。

cd /home/rdb2/application/src
sqlcc demo05sub1.sc -c
cc -c demo05sub2.c
cc -o ../bin/demo05 -L/opt/FSUNrdb2b/lib -lsqldrv demo05main.c
   demo05sub1.o demo05sub2.o

 

例3

64ビットマシンで実行する応用プログラムを静的結合す場合(Symfoware Server Enterprise Extended Editionでのみ静的結合可能)の例を示します。SQL文を使用しない主プログラム(demo08main.c)と、SQL文を使用する副プログラム(demo08sub1.sc)、およびSQL文を使用しない副プログラム(demo08sub2.c)を静的結合します。ロードモジュール名は“demo08”とします。

なお、Linuxの場合は、Lオプションに指定するパス名を読み替えてください。

cd /home/rdb2/application/src
sqlcc -v9 demo08sub1.sc -c
cc -xarch=v9 -c demo08sub2.c
cc -xarch=v9 -o ../bin/demo08 -L/opt/FSUNrdb2b/lib -lsql64drv
   demo08main.c  demo08sub1.o demo08sub2.o

■COBOL使用時の例

例1

SQL文を使用する主プログラム(demo06main.scob)と、SQL文を使用する2個の副プログラム(demo06sub1.scob、demo06sub2.scob)を静的結合します。ロードモジュール名は“demo06”とします。

cd /home/rdb2/application/src
sqlcobol demo06sub1.scob -c
sqlcobol demo06sub2.scob -c
sqlcobol demo06main.scob -M -o ../bin/demo06 demo06sub1.o
         demo06sub2.o

 

例2

SQL文を使用しない主プログラム(demo07main.cobol)と、SQL文を使用する副プログラム(demo07sub1.scob)、およびSQL文を使用しない副プログラム(demo07sub2.cobol)を静的結合します。ロードモジュール名は“demo07”とします。

cd /home/rdb2/application/src
sqlcobol demo07sub1.scob -c
cobol -c demo07sub2.cobol
cobol -M -o ../bin/demo07 -L/opt/FSUNrdb2b/lib -lsqldrv
      demo07main.cobol demo07sub1.o demo07sub2.o

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

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