ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(埋込みSQL編)

6.2.3 コンパイル・リンクの方法

コンパイル・リンクを行うには、以下の2つの方法があります。

コンパイル・リンクを一括して実行する場合

コンパイル・リンクを一括して実行する場合は、sqlccコマンドまたはsqlcobolコマンドを利用します。

C言語を使用する場合

C言語用のコマンドはsqlccです。sqlccの入力ファイルは、SQL埋込みCプログラムのソースファイルです。このファイル名には拡張子として“.C”および“.LST”以外を指定する必要があります。出力ファイルは実行可能プログラムです。また、sqlccは作業用のファイルを作成します。作業用のファイルについては、ファイル名が自動的に決定されカレントディレクトリに作成されます。C言語の場合は、文字コード系に依存しないロードモジュールが作成されます。文字コード系は実行時にクライアント用の動作環境ファイルまたは環境変数で指定します。

sqlccの使用例を以下に示します。

“main”をもつSQL埋込みCプログラム(DEMO01.SC)をコンパイル・リンクします。ロードモジュールは“DEMO01.EXE”とします。

cd  C:\USERS\DEFAULT\APPLICATION\SRC
sqlcc -I C:\USERS\DEFAULT\APPLICATION\INCLUDE  DEMO01.SC  /Fe..\BIN\DEMO01.EXE
(1) (2) (3)

(1) インクルードファイルを検索するディレクトリを指定するオプション

(2) SQL埋込みCプログラムのファイル名

(3) clコマンド用のオプション

オプション

sqlccでは、使用するインクルードファイルの配置ディレクトリなどのオプションが指定できます。64ビットで実行するSQL埋込みCプログラムをコンパイル・リンクする場合は、v9オプションを指定してください。また、マルチスレッド環境で動作するまたはセションを操作する関数を利用するSQL埋込みCプログラムをコンパイル・リンクする場合は、Tオプションを指定してください。

参照

オプションの詳細については、“コマンドリファレンス”を参照してください。

SQL埋込みCプログラムのファイル名

SQL埋込みCプログラムで記述されたアプリケーションの、ソースファイルを指定します。

clコマンド用のオプション

sqlccはロードモジュールを作成するために、clコマンドを実行します。このとき、clコマンドに渡すオプションを指定します。

COBOLを使用する場合

COBOL言語用のコマンドはsqlcobolです。sqlcobolの入力ファイルは、SQL埋込みCOBOLプログラムのソースファイルです。このファイル名には拡張子として“.COB”および“.LST”以外を指定する必要があります。出力ファイルはロードモジュールです。また、sqlcobolは作業用のファイルを作成します。作業用のファイルについては、ファイル名が自動的に決定されカレントディレクトリに作成されます。COBOL言語の場合は、コンパイル時に文字コード系を指定します。sqlcobolの使用例を以下に示します。

主プログラムであるSQL埋込みCOBOLプログラム(DEMO02.SCOB)を、コンパイル・リンクします。ロードモジュールは“DEMO02.EXE”とします。

cd  C:\USERS\DEFAULT\APPLICATION\SRC
sqlcobol -I C:\USERS\DEFAULT\APPLICATION\INCLUDE -L"/OUT:..\BIN\DEMO02.EXE" DEMO02.SCOB -M
                             (1)             (2)     (3)       (4)

(1) インクルードファイルを検索するディレクトリを指定するオプション

(2) リンカ用のオプション

(3) SQL埋込みCOBOLプログラムのファイル名

(4) cobolコマンドまたはcobol32コマンド用のオプション

オプション

sqlcobolでは、使用する登録集原文ファイルの配置ディレクトリなどのオプションが指定できます。文字コード系としてUNICODEを使用する場合は、unオプションを指定してください。64ビットで実行するSQL埋込みCOBOLプログラムをコンパイル・リンクする場合は、v9オプションを指定してください。また、マルチスレッド環境で動作するSQL埋込みCOBOLプログラムをコンパイル・リンクする場合は、Tオプションを指定してください。

参照

オプションの詳細については、“コマンドリファレンス”を参照してください。

リンカ用のオプション

sqlcobolはロードモジュールを作成するために、リンカを実行します。このとき、リンカに渡すオプションを指定します。

SQL埋込みCOBOLプログラムのファイル名

SQL埋込みCOBOLプログラムで記述されたアプリケーションの、ソースファイルを指定します。

cobolコマンドまたはcobol32コマンド用のオプション

sqlcobolはロードモジュールを作成するために、cobolコマンドまたはcobol32コマンドを実行します。このとき、cobolコマンドまたはcobol32コマンドに渡すオプションを指定します。

プレコンパイルとコンパイルを分けて実行する場合

アプリケーションをコンパイル・リンクするために、まずsqlpcコマンドまたはsqlpcobコマンドを利用してプレコンパイルします。アプリケーションをプレコンパイルすることによって、アプリケーション中のSQL文をコンパイルし、標準のCプログラムまたはCOBOLプログラムに変換します。その後、clコマンド、cobolコマンドまたはcobol32コマンドを利用してロードモジュールを作成します。

注意

プレコンパイルによって作成されたソースファイルは、中身を変更しないでください。

C言語を使用する場合

C言語用のプレコンパイルコマンドは、sqlpcです。sqlpcコマンドの入力ファイルは、SQL埋込みCプログラムのソースファイルです。このファイル名には拡張子として“.C”および“.LST”以外を指定する必要があります。出力ファイルはCプログラムのソースファイルで、ファイル名に拡張子として“.C”が付きます。

参照

sqlpcコマンドの詳細については、“コマンドリファレンス”を参照してください。

プレコンパイルが終了したら、ロードモジュールを作成します。ロードモジュールを作成するためには、clコマンドを実行します。C言語の場合は、文字コード系に依存しないロードモジュールが作成されます。文字コード系は実行時にクライアント用の動作環境ファイルまたは環境変数で指定します。

C言語を使用した、コンパイル・リンクの例を以下に示します。

主プログラムであるSQL埋込みCプログラム(DEMO03.SC)を、コンパイル・リンクします。ロードモジュールは“DEMO03.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlpc DEMO03.SC
        (1)
cl /Fe..\BIN\DEMO03.EXE F3CWDRV.LIB DEMO03.C
                          (2)        (3)

(1) SQL埋込みCプログラムのファイル名

(2) RDBライブラリを指定するオプション

(3)プレコンパイル後のSQL埋込みCプログラムのファイル名

COBOLを使用する場合

COBOL用のプレコンパイルコマンドは、sqlpcobです。sqlpcobコマンドの入力ファイルは、SQL埋込みCOBOLプログラムのソースファイルです。このファイル名には拡張子として“.COB”および“.LST”以外を指定する必要があります。出力ファイルはCOBOLプログラムのソースファイルで、ファイル名に拡張子として“.COB”が付きます。

参照

sqlpcobコマンドの詳細については、“コマンドリファレンス”を参照してください。

プレコンパイルが終了したら、ロードモジュールを作成します。

COBOLを使用した、コンパイル・リンクの例を以下に示します。

32ビットで実行するアプリケーション:

ロードモジュールを作成するためには、cobol32コマンドを実行します。

主プログラムであるSQL埋込みCOBOLプログラム(DEMO04.COBOL)を、コンパイル・リンクします。ロードモジュールは“DEMO04.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlpcob DEMO04.COBOL
            (1)
cobol32 -M DEMO04.COB 
              (2)
link /out:..\BIN\DEMO04.EXE F3CWDRV.LIB  DEMO04.OBJ F3BICIMP.LIB LIBC.LIB KERNEL32.LIB USER32.LIB
                                (3)

(1) SQL埋込みCOBOLプログラムのファイル名

(2) プレコンパイル後のSQL埋込みCOBOLプログラムのファイル名

(3) RDBライブラリを指定するオプション

64ビットで実行するアプリケーション:

ロードモジュールを作成するためには、cobolコマンドを実行します。

例1

Windows Server(R) 2003 x64 Editions、Windows Server(R) 2008 for x64またはWindows Server(R) 2008 R2 for x64において、64ビットで実行する場合の例を以下に示します。
主プログラムであるSQL埋込みCOBOLプログラム(DEMO05.COBOL)を、コンパイル・リンクします。ロードモジュールは“DEMO05.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlpcob -v9 DEMO05.COBOL
              (1)
cobol -M DEMO05.COB 
           (2)
link /out:..\BIN\DEMO05.EXE F3CWDRV_x64.LIB DEMO05.OBJ F4AGCIMP.LIB LIBCMT.LIB BUFFEROVERFLOWU.LIB KERNEL32.LIB USER32.LIB
                                (3)

(1) SQL埋込みCOBOLプログラムのファイル名

(2) プレコンパイル後のSQL埋込みCOBOLプログラムのファイル名

(3) RDBライブラリを指定するオプション

例2

Windows Server(R) 2003 for Itanium、Windows Server(R) 2008 for ItaniumまたはWindows Server(R) 2008 R2 for Itaniumにおいて、64ビットで実行する場合の例を以下に示します。
主プログラムであるSQL埋込みCOBOLプログラム(DEMO05.COBOL)を、コンパイル・リンクします。ロードモジュールは“DEMO05.EXE”とします。

cd C:\USERS\DEFAULT\APPLICATION\SRC
sqlpcob -v9 DEMO05.COBOL
              (1)
cobol -M DEMO05.COB 
           (2)
link /out:..\BIN\DEMO05.EXE F3CWDRV_IA64.LIB DEMO05.OBJ F6AGCIMP.LIB LIBCMT.LIB BUFFEROVERFLOWU.LIB KERNEL32.LIB USER32.LIB
                                (3)

(1) SQL埋込みCOBOLプログラムのファイル名

(2) プレコンパイル後のSQL埋込みCOBOLプログラムのファイル名

(3) RDBライブラリを指定するオプション

コンパイル・リンクする場合に必要なオプション

clコマンド、cobolコマンドおよびcobol32コマンドの実行時には、必要に応じてオプションを指定します。アプリケーションをコンパイル・リンクする場合に必要なオプションを以下に示します。

表6.9 アプリケーションをコンパイル・リンクする場合に必要なオプション

指定するオプション

オプションの役割

-M

COBOLの場合に指定

F3CWDRV.LIB

RDBライブラリの指定(32ビットのシングルスレッドで動作するアプリケーションをコンパイル・リンクする場合に使用)

F3CWDRVM.LIB

RDBライブラリの指定(32ビットのマルチスレッドで動作するアプリケーションをコンパイル・リンクする場合に使用)

F3CWDRV_IA64.LIB

RDBライブラリの指定(Windows Server(R) 2003 for Itanium、Windows Server(R) 2008 for ItaniumまたはWindows Server(R) 2008 R2 for Itaniumにおいて64ビットのシングルスレッドで動作するアプリケーションをコンパイル・リンクする場合に使用)

F3CWDRVM_IA64.LIB

RDBライブラリの指定(Windows Server(R) 2003 for Itanium、Windows Server(R) 2008 for ItaniumまたはWindows Server(R) 2008 R2 for Itaniumにおいて64ビットのマルチスレッドで動作するアプリケーションをコンパイル・リンクする場合に使用)

-MT

マルチスレッドで動作するアプリケーションをコンパイル・リンクする場合に指定

F3CWDRV_x64.LIB

RDBライブラリの指定(Windows(R) XP for x64、Windows Server(R) 2003 x64 Editions、Windows Server(R) 2008 for x64またはWindows Server(R) 2008 R2 for x64において64ビットのシングルスレッドで動作するアプリケーションをコンパイル・リンクする場合に使用)

F3CWDRVM_x64.LIB

RDBライブラリの指定(Windows(R) XP for x64、Windows Server(R) 2003 x64 Editions、Windows Server(R) 2008 for x64またはWindows Server(R) 2008 R2 for x64において64ビットのマルチスレッドで動作するアプリケーションをコンパイル・リンクする場合に使用)