Symfoware Server アプリケーション開発ガイド(埋込みSQL編) - FUJITSU -
目次 索引 前ページ次ページ

第3章 アプリケーションの作成> 3.1 SQL埋込みCプログラムの作成方法

3.1.11 DECIMAL型またはNUMERIC型として宣言したホスト変数のコンパイル時の展開方法

ここでは、DECIMAL型およびNUMERIC型で宣言したホスト変数のデータ形式について説明します。

■DECIMAL型のデータ形

DECIMAL型のホスト変数を宣言すると、コンパイル時にchar型の配列に変換します。Cプログラムでは、変換されたchar型の変数でデータ操作を行います。以下に、DECIMAL型ホスト変数をchar型の配列に変換した例を示します。

DECIMAL型ホスト変数をchar型の配列に変換した例
アプリケーション中に以下のように宣言します。
DECIMAL(15,5) dec1;

          ↓コンパイル時にchar型の配列に変換します。

char    dec1[8];

DECIMAL型のホスト変数を使用する場合、変換されたchar型領域のデータ形式は以下のようになります。

◆DECIMAL(p,q) host1; と宣言されたホスト変数の場合

n:
データに対応する数値(16進数の0から9)
m:
符号(正:16進数のA,C,E,F 負:16進数のB,D)

データ設定の例

EXEC  SQL  BEGIN  DECLARE  SECTION;
   DECIMAL(5,2)     D1;
   DECIMAL(6,2)     D2;
EXEC  SQL  END  DECLARE  SECTION;

精度:5、位取り:2のホスト変数 D1 に123.45を設定する場合

精度:5、位取り:2のホスト変数 D1 に12.34を設定する場合

精度:6、位取り:2のホスト変数 D2 に1234.56を設定する場合

備考. 精度が偶数の場合の先頭4ビットは、0になります。

■NUMERIC型のデータ形

NUMERIC型のホスト変数を宣言すると、コンパイル時にchar型の配列に変換します。Cプログラムでは、変換されたchar型の変数でデータ操作を行います。以下に、NUMERIC型ホスト変数をchar型の配列に変換した例を示します。

NUMERIC型ホスト変数をchar型の配列に変換した例
アプリケーション中に以下のように宣言します。
NUMERIC(15,5) num1;

          ↓コンパイル時にchar型の配列に変換します。

char    num1[16];

NUMERIC型のホスト変数を使用する場合、変換されたchar型領域のデータ形式は以下のようになります。

◆NUMERIC(p,q) host1; と宣言されたホスト変数の場合

n:
データに対応する数値(16進数の0から9)
mm:
符号(正:16進数の2B 負:16進数の2D)

データ設定の例
EXEC  SQL  BEGIN  DECLARE  SECTION;
   NUMERIC(5,2)    N1;
EXEC  SQL  END  DECLARE  SECTION;

精度:5、位取り:2のホスト変数 N1 に123.45を設定する場合

精度:5、位取り:2のホスト変数 N1 に12.34を設定する場合


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

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