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

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を設定する場合