ページの先頭行へ戻る
NetCOBOL V11.1 入門ガイド
FUJITSU Software

6.11 データベース機能を使ったプログラム(sample16)

ここでは、本製品で提供するサンプルプログラム-sample16-について説明します。sample16では、データベース(SQL)機能を使ってデータベースからデータを取り出しホスト変数に格納する例を示します。

データベースはサーバ上に存在し、クライアント側からこれにアクセスします。データベースのアクセスは、ODBCドライバを経由して行います。

ODBCドライバを使用するデータベースアクセスについては、“NetCOBOL ユーザーズガイド”の“リモートデータベースアクセス”を参照してください。

このプログラムを動作させるためには、以下の製品が必要です。

クライアント側
  • ODBCドライバマネージャ

  • ODBCドライバ

  • ODBCドライバの必要とする製品

サーバ側
  • データベース

  • データベースにODBCでアクセスするために必要な製品

sample16では、次に示すCOBOLの文を使っています。

sample16では、次に示す埋込みSQL文を使っています。

機能

サーバのデータベースにアクセスし、データベース上の表“STOCK”に格納されている全データをディスプレイ装置に表示します。データをすべて参照し終わると、データベースとの接続を切断します。

プログラムを実行する前に

ODBCドライバを経由してサーバのデータベースへアクセスできる環境を構築しておいてください。SERVERNAME1というサーバ名で接続するサーバを設定し、そのサーバのデータベース上に“STOCK“という名前で表を作成しておいてください。STOCK表は、以下の形式で作成してください。

列の名前

列の属性

GNO

2進整数、4桁

GOODS

固定長文字、20バイト

QOH

2進整数、9桁

WHNO

2進整数、4桁

STOCK表に格納しておくデータは任意です。以下に例を示します。

GNO

GOODS

QOH

WHNO

110

111

123

124

137

138

140

141

200

201

212

215

226

227

240

243

351

380

390

TELEVISION

TELEVISION

REFRIGERATOR

REFRIGERATOR

RADIO

RADIO

CASSETTE DECK

CASSETTE DECK

AIR CONDITIONER

AIR CONDITIONER

TELEVISION

VIDEO

REFRIGERATOR

REFRIGERATOR

CASSETTE DECK

CASSETTE DECK

CASSETTE TAPE

SHAVER

DRIER

85

90

60

75

150

200

120

80

04

15

0

05

08

15

25

14

2500

870

540

2

2

1

1

2

2

2

2

1

1

2

2

1

1

2

2

2

3

3

ODBC情報テンプレート(/opt/FJSVcbl64/config/template/ja_JP.UTF-8/odbcinf)を利用してODBC情報ファイルを作成してください。ここではDBMSACS.INFとします。

実行方法

以下に、sample16の実行例を示します。

$ cobol  -M  -o sample16 sample16.cob
最大重大度コードは I で,翻訳したプログラム数は 1 本です.
$ ODBC_INF= DBMSACS.INF; export ODBC_INF
$ ./sample16
$

以下の要求がACCEPT文によって、行われます。

ユーザID/パスワードを入力して下さい(ID/PASSWD):

要求に対し、ユーザIDとパスワードを斜線"/"で区切って入力してください。入力文字が65バイト以下の場合、65バイトになるように空白を入力して下さい。

実行結果

表から取り出されるデータは、以下のように表示されます。

$ sample16
             :
16件目のデータ:
      製品番号  =  +0243
      製品名    =  CASSETTE DECK
      在庫数量  =  +000000014
      倉庫番号  =  +0002
17件目のデータ:
      製品番号  =  +0351
      製品名    =  CASSETTE TAPE
      在庫数量  =  +000002500
      倉庫番号  =  +0002
18件目のデータ:
      製品番号  =  +0380
      製品名    =  SHAVER

      在庫数量  =  +000000870
      倉庫番号  =  +0003
19件目のデータ:
      製品番号  =  +0390
      製品名    =  DRIER
      在庫数量  =  +000000540
      倉庫番号  =  +0003
終了します
$