ノンストップデータベース　HiRDB Version 10 XDM/RD E2接続機能

解説・手引・文法書

3020-6-565-60

前書き

対象製品

●適用OS：AIX 7.1，AIX 7.2，AIX 7.3

P-1M62-35A1 HiRDB Server Version 10 10-08

P-1M62-1BA1 HiRDB/Run Time Version 10 10-08

P-1M62-1CA1 HiRDB/Developer's Kit Version 10 10-08

P-1M62-1DA1 HiRDB/Run Time Version 10(64) 10-08

P-1M62-1EA1 HiRDB/Developer's Kit Version 10(64) 10-08

●適用OS：Red Hat Enterprise Linux 7 (64-bit x86_64)，Red Hat Enterprise Linux 8 (64-bit x86_64)，Red Hat Enterprise Linux 9 (64-bit x86_64)

P-8462-35A1 HiRDB Server Version 10 10-08

P-8462-1DA1 HiRDB/Run Time Version 10(64) 10-08

P-8462-1EA1 HiRDB/Developer's Kit Version 10(64) 10-08

●適用OS：Red Hat Enterprise Linux 7 (64-bit x86_64)，Red Hat Enterprise Linux 8 (64-bit x86_64)，Red Hat Enterprise Linux 9 (64-bit x86_64)

P-8362-1BA1 HiRDB/Run Time Version 10 10-08

P-8362-1CA1 HiRDB/Developer's Kit Version 10 10-08

P-8362-3CA1 HiRDB Developer's Suite Version 10 10-08

●適用OS：Windows Server 2016，Windows Server 2019，Windows Server 2022，Windows 10 Pro (x64)，Windows 10 Enterprise (x64)，Windows 11

P-2962-91A4 HiRDB Server Version 10 10-08

●適用OS：Windows Server 2016，Windows Server 2019，Windows Server 2022，Windows 10，Windows 11

P-2662-11A4 HiRDB/Run Time Version 10 10-08

P-2662-12A4 HiRDB/Developer's Kit Version 10 10-08

P-2662-32A4 HiRDB Developer's Suite Version 10 10-08

●適用OS：Windows Server 2016，Windows Server 2019，Windows Server 2022，Windows 10 Home (x64)，Windows 10 Pro (x64)，Windows 10 Enterprise (x64)，Windows 11

P-2962-11A4 HiRDB/Run Time Version 10(64) 10-08

P-2962-12A4 HiRDB/Developer's Kit Version 10(64) 10-08

これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。

輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

HITACHI，HiRDB，Cosminexus，DABroker，DBPARTNER，HAモニタ，JP1，OpenTP1，TPBroker，uCosminexus，VOS3/LS，VOS3/US，VOS3/XS，XDMは，株式会社 日立製作所の商標または登録商標です。

Amazon Web Services，AWS，Powered by AWSロゴ，Amazon Elastic Compute Cloud (Amazon EC2)，Amazon Route 53は，Amazon.com, Inc.またはその関連会社の商標です。

AMDは，Advanced Micro Devices, Inc.の商標です。

Hibernate is a registered trademark of Red Hat, Inc. in the United States and other countries.

Hibernateは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

IBM，AIX，DataStageおよびPowerHAは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

Jboss is a registered trademark of Red Hat, Inc. in the United States and other countries.

Jbossは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

Linuxは，Linus Torvalds氏の米国およびその他の国における登録商標です。

Microsoft，Access，ActiveX，Azure，Excel，Visual Basic，Visual C++，Visual Studio，Windows，Windows Serverは，マイクロソフト 企業グループの商標です。

Oracle(R)，Java，MySQL及びNetSuiteは，Oracle，その子会社及び関連会社の米国及びその他の国における登録商標です。文中の社名，商品名等は各社の商標または登録商標である場合があります。

Red Hat, and Red Hat Enterprise Linux are registered trademarks of Red Hat, Inc. in the United States and other countries. Linux(R) is the registered trademark of Linus Torvalds in the U.S. and other countries.

Red Hat，およびRed Hat Enterprise Linux は，米国およびその他の国におけるRed Hat, Inc.の登録商標です。Linux(R)は，米国およびその他の国におけるLinus Torvalds 氏の登録商標です。

RHEL is a trademark or a registered trademark of Red Hat, Inc. in the United States and other countries.

RHELは，米国およびその他の国におけるRed Hat, Inc.の商標または登録商標です。

UNIXは，The Open Groupの登録商標です。

VeritasおよびVeritasロゴは，米国およびその他の国におけるVeritas Technologies LLCまたはその関連会社の商標または登録商標です。

その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。

発行

2024年4月　3020-6-565-60

著作権

All Rights Reserved. Copyright (C) 2018, 2024, Hitachi, Ltd.

変更内容

変更内容(3020-6-565-60)　HiRDB Version 10 10-08

追加・変更内容

変更個所

クライアントとサーバ間のネットワーク上で送受信するデータを暗号化する機能をサポートしました。

これによって，パケットスニファリングなどで悪意のあるユーザが不正にデータを参照することを防止できます。

表4-1

単なる誤字・脱字などはお断りなく訂正しました。

変更内容(3020-6-565-50)　HiRDB Version 10 10-07

追加・変更内容

クライアント−サーバ間の接続で新たな接続方式をサポートしました。これによって，クライアント側ファイアウォールでポート開放が不要となるほか，NAPTが設定されたネットワーク環境で接続できるようになります。

HiRDBの適用OSに次のOSを追加しました。

AIX V7.3

Red Hat Enterprise Linux 9

変更内容(3020-6-565-40)　HiRDB Version 10 10-06

追加・変更内容

HP-UXに関する説明を削除しました。

変更内容(3020-6-565-30)　HiRDB Version 10 10-05

追加・変更内容

HiRDBの適用OSにWindows Server 2022を追加しました。

はじめに

このマニュアルは，次に示す製品のHiRDBの埋込み型UAPからXDM/RD E2のデータベースを操作する機能（XDM/RD E2接続機能）の概要，XDM/RD E2接続機能を使用する場合の環境設定やSQLの言語仕様などについて説明したものです。なお，ここに記載されていない前提情報については，マニュアル「HiRDB Version 10 解説」を参照してください。

HiRDB Server Version 10

HiRDB/Run Time Version 10

HiRDB/Run Time Version 10(64)

HiRDB/Developer's Kit Version 10

HiRDB/Developer's Kit Version 10(64)

HiRDB Developer's Suite Version 10

対象読者

このマニュアルは，HiRDBクライアントからXDM/RD E2のデータベースを操作するUAPの作成者，およびUAPの実行者を対象としています。なお，UAPの作成者の方は，C言語のプログラミングまたはCOBOL言語のプログラミングを理解していることを前提としています。また，UAPの実行者の方は，適用OSの基礎的な知識を持っていることを前提としています。

図中で使用する記号

このマニュアルの図中で使用する記号を次のように定義します。

文法で使用する記号

文法の説明に使用する各種の記号について説明します。ここで述べる文法記述記号，属性表示記号，および構文要素記号は，実際には記述しないでください。

文法記述記号

文法の説明で使用する記号です。

文法記述記号

意味

｛　　｝

この記号で囲まれている複数の項目の中から一つを選択することを示します。

（例）

PDODBESCAPE=｛0｜1｝

これは，PDODBESCAPEオペランドの指定値として0と1から選択できることを示します。

〔　　〕

この記号で囲まれた項目は省略できることを示します。

（例）

PDHOST=DBコネクションサーバのホスト名〔，予備系のホスト名〕

これは，予備系のホスト名を省略できることを示します。

｜（ストローク）

記号｛　　｝で囲まれた複数の項目を一つずつの項目に区切ることを示します。

（例）

PDPRMTRC=｛YES｜NO｝

これは，PDPRMTRCオペランドの設定値としてYESとNOの項目に区切ることを示します。

　　（下線）

指定値を省略したときにシステムが設定する標準値を示します。

（例）

PDEXWARN=｛YES｜NO｝

これは，PDEXWARNオペランドを省略したときにPDEXWARN=NOと仮定されることを示します。

属性表示記号

ユーザ指定値の範囲などの説明で使用する記号です。

属性表示記号

意味

〜

この記号の後にユーザ指定値の属性を示します。

《　　》

ユーザが指定しなかった場合に仮定される値を示します。

<　　>

ユーザ指定値の構文要素を示します。

((　　))

ユーザ指定値の指定範囲を示します。

構文要素記号

ユーザ指定値の内容の説明で使用する記号です。

構文要素記号

意味

<英字>

アルファベット（A〜Z，a〜z）と下線（_）

<英字記号>

アルファベット（A〜Z，a〜z）と＃，＠，￥

<英数字>

英字と数字（0〜9）

<英数字記号>

英字記号と数字

<符号なし整数>

数字

<識別子>

先頭がアルファベットの英数字列

<文字列>

任意の文字の配列

<記号名称>

先頭が英字記号の英数字記号

UNIX版の場合，￥は使用できません。

<パス名>※

UNIX版の場合：/，英数字，ピリオド（.），＃，および＠

Windows版の場合：￥，英数字，ピリオド（.），空白，丸括弧，＃，および＠

注

すべて半角文字を使用してください。また，英字の大文字と小文字は区別されます。さらに，パス名は使用しているOSに依存します。

注※

パス名に空白，または丸括弧を含む場合は，前後を引用符（"）で囲んでください。

なお，Windows版の場合，コロン（：）をドライブ名に使用できます。

HiRDBのデータベース言語の出典

このマニュアルで記述するHiRDBのデータベース言語仕様は，次に示す規格を基に日立製作所独自の解釈と仕様を追加したものです。原開発者に謝意を表するとともに，仕様の出典を示します。

JIS X 3005規格群　データベース言語SQL

ISO/IEC 9075　Information technology - Database languages - SQL -

注

JIS：日本工業規格（Japanese Industrial Standard）

ISO：国際標準化機構（International Organization for Standardization）

IEC：国際電気標準会議（International Electrotechnical Commission）

1　概要

この章では，HiRDBクライアントのXDM/RD E2接続機能の概要について説明します。

1.1　特長

HiRDBクライアントでのXDM/RD E2接続機能の目的，および適用形態について説明します。

1.1.1　目的

情報処理システムを構築するとき，PC，WS，メインフレームを適材適所に使用することが求められます。例えば，開発ツールの豊富なPCまたはWS上でUAPを開発して，メインフレーム上のデータベースに接続するなどです。

XDM/RD E2接続機能は，メインフレームのVOS3/FSまたはVOS3/LS上で動作するXDM/RD E2に，PCまたはWS上で動作するHiRDBのUAPから直接アクセスする機能です。XDM/RD E2接続機能を利用することで，メインフレーム（XDM/RD E2）をハイエンドデータベースサーバとして利用できます。

XDM/RD E2接続機能では，HiRDBクライアントからDBコネクションサーバを経由してXDM/RD E2に接続します。

XDM/RD E2接続機能の特長を次に示します。

XDM/RD E2のデータベースをアクセスするSQLを含んだ埋込み型UAPを，PC，WS上で開発・実行できます。また，HiRDBで構築したシステムで，データベースだけをVOS3上のXDM/RD E2へ移行し，UAPはそのままPCまたはWS上に残して，PC，WS上のUAPからXDM/RD E2のデータベースをアクセスできます。

HiRDBクライアントでは，サーバをHiRDBサーバとXDM/RD E2の2種類から選択できます。このとき，クライアント側はサーバのDBMSをほとんど意識しなくてもよいとともに，HiRDBクライアントとしてサポートしている機能（各種言語のプリプロセッサ，ODBCドライバなど）をそのまま使用できます。

VOS3側のSQL実行空間として，DBコネクションサーバを使用します。

DBコネクションサーバでは，クライアント数の増加に対応してSQLを処理するためのサーバ空間を追加したり，接続するサーバ空間を負荷に応じて自動的に選択したりできるため，クライアント数の増大などのシステムの大規模化に柔軟に対応できます。

1.1.2　適用形態

XDM/RD E2接続機能を利用したシステムの代表的な適用形態について説明します。

(1)　2階層型システム

PC上にXDM/RD E2をアクセスするSQLを含んだ埋込み型UAPを配置し，直接XDM/RD E2をアクセスする形態です。

従来は，同様のシステム形態にするためにはPC上のUAPでODBC関数などを用いていましたが，ODBC関数を利用したUAPの開発には適用言語の制限などがありました。

XDM/RD E2接続機能を利用することで，UAPにSQLを直接記述できるため，多様なUAPを作成できます。

2階層型システムの例を次の図に示します。

図1‒1　2階層型システムの例

HiRDBサーバにはHiRDBクライアントの機能が含まれますので，HiRDBサーバのあるマシンにUAPを置いて，そのUAPからXDM/RD E2にアクセスする形態もできます。

(2)　3階層型システム

WS上にOpenTP1を配置し，トランザクション管理をします。

OpenTP1のUAPはPC上のUAPとメッセージを送受信し，かつXDM/RD E2をアクセスするSQLを発行します。PC上のUAPは，メッセージの送受信だけを行い，SQLは発行しません。

OpenTP1を使用してトランザクション管理をすることで，2階層型システムに比べクライアント数を大幅に増やすことができます。

類似のシステム形態として，WSを使用する代わりにVOS3上にXDM/DCCM3を配置する形態（VOS3集中型）があります。

VOS3集中型に比べて，3階層型システムは，WSとメインフレームに機能および負荷を分散することで，さらに大規模なシステムを構築できます。

3階層型システムの例を次の図に示します。

図1‒2　3階層型システムの例

1.2　UAPの開発の流れ

UAPを開発する準備として，業務などで使用しているデータをデータベース化するために業務内容を分析します。分析した結果を基に全体的なデータベースの規模を検討し，UAPの概略を決定します。

UAPの開発作業と，このマニュアルの構成の関係を次の図に示します。

図1‒3　UAPの開発の流れ

注※

作業の内容については，XDM/RD E2のマニュアルを参照してください。

1.3　UAPの形式

XDM/RD E2のデータベースを操作するUAPの形式は，埋込み型です。

埋込み型は，高級言語で記述されたソースプログラムの中にSQLを直接記述する方式です。

埋込み型UAPの特長は，データベース操作（SQL）を含めて一つのプログラムとして記述できるため，プログラムの解析が容易なことです。

1.3.1　ソースプログラムの記述

埋込み型UAPに使用できる高級言語は，次のとおりです。

C言語

C++言語

COBOL言語

OOCOBOL言語

1.3.2　SQLの記述

SQLは，データベースの定義から操作，運用制御までの指示を記述するためのデータベース言語です。HiRDBでは，高級言語で記述したソースプログラムに埋め込んで利用できます。SQLの機能体系を次の図に示します。

図1‒4　SQLの機能体系

サーバとしてXDM/RD E2を使用する場合，使用できるSQLの仕様はXDM/RD E2が規定する仕様に従います。

ただし，埋込み言語については，HiRDBの仕様に従います。

XDM/RD E2接続機能を使用する場合のプログラム用SQL言語の種類と機能概略については，「SQL言語仕様」を参照してください。また，XDM/RD E2接続機能を使用する場合に使用できる埋込み言語については，「埋込み言語文法」を参照してください。

1.3.3　XDM/RD E2とのインタフェース

UAPはSQL文を発行することによって，インタフェース領域を使用してXDM/RD E2との情報のやり取りをします。

UAPとXDM/RD E2とのインタフェースを次の図に示します。

図1‒5　UAPとXDM/RD E2とのインタフェース

注※

インタフェース領域については，「インタフェース領域」を参照してください。

2　動作環境

この章では，XDM/RD E2接続機能の動作環境について説明します。

2.1　ソフトウェア構成

XDM/RD E2接続機能を使用するために必要な稼働OSと，プログラムプロダクト構成について説明します。

2.1.1　稼働OS

XDM/RD E2接続機能を利用できるクライアント側OSを次の表に示します。

表2‒1　XDM/RD E2接続機能を利用できるクライアント側OS

クライアント種別

XDM/RD E2接続機能を利用できるクライアント側OS

WS

AIX

Linux

PC

Windows

2.1.2　プログラムプロダクト構成

XDM/RD E2接続機能を使用する場合に，メインフレームに必要なプログラムプロダクトを次の表に，XDM/RD E2接続機能を使用するために必要なプログラムプロダクト構成を図「XDM/RD E2接続機能を使用するために必要なプログラムプロダクト構成」に示します。

表2‒2　XDM/RD E2接続機能を使用する場合に，メインフレームに必要なプログラムプロダクト

プログラムプロダクト

バージョン

XDM/RD E2※1

06-00以降

DBコネクションサーバ

03-00以降

XDM/Library for HiRDB※2

01-00以降

注※１

機能によって，使用できるXDM/RD E2のバージョンが違います。XDM/RD E2のバージョンに依存する機能について，次に示します。

項番

機能

機能が使用できるXDM/RD E2のバージョン

1

HiRDB クライアントの文字コードが日本語EUCの場合の，XDM/RD E2接続

09-01以降

2

各種のデータ型」

表「HiRDBクライアントからアクセスできるXDM/RD E2のデータ型」を参照

3

明示表

明示表を参照

4

各種の操作系SQL

表「HiRDBクライアントを使用する場合の操作系SQLの使用可否」を参照

5

各種の定義系SQL

表「HiRDBクライアントを使用する場合の定義系SQLの使用可否」を参照

6

各種の制御系SQL

表「HiRDBクライアントを使用する場合の制御系SQLの使用可否」を参照

7

繰返し列

07-00以降

8

配置を使用したFETCH

08-00以降

9

X/Openに連携したアプリケーションプログラムインタフェースを使用する

06-03以降

10

Type4 JDBCドライバを使用したXDM/RD E2接続

11-03以降

注※２

使用する機能によっては，より新しいバージョンの製品が必要になることがあります。詳細については，「SQL言語仕様」を参照してください。

図2‒1　XDM/RD E2接続機能を使用するために必要なプログラムプロダクト構成

3　UAPの設計

この章では，XDM/RD E2接続機能を使用する際に，UAPの設計段階で考慮する項目について説明します。

基本的なUAPの設計については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

3.1　UAP中でのSQLの基本構成

3.1.1　UAP中でのSQLの基本構成の説明

ここでは，UAP中でのSQLの基本構成の中で，特にHiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。

UAP中でのSQLの基本構成を次の図に示します。なお，ここではUAPをCOBOL言語で記述する場合について説明します。

図3‒1　UAP中でのSQLの基本構成

(1)　埋込み変数と標識変数の宣言

SQLで検索したデータをUAP側で受け取ったり，反対にUAP側のデータをSQLで表に挿入したりするには，両方の言語間の橋渡しをする変数が必要になります。このために，埋込み変数を使用します。また，ナル値を含むデータを受け渡す必要のあるときには，埋込み変数とあわせて標識変数を使用します。

SQL中での埋込み変数および標識変数の指定方法については，「検索，更新のSQL（実行文）」を参照してください。

埋込み変数および標識変数の宣言例を次に示します。

EXEC SQL
  BEGIN DECLARE SECTION  ……………1
END-EXEC.
77 XUSERID    PIC X(7).………………2
77 XPSWD      PIC X(7).………………2
77 XSCODE     PIC X(4).………………2
77 XSNAME     PIC N(8).………………2
77 XGRYO      PIC S9(9) COMP.………2
77 IGRYO      PIC S9(4) COMP.………3
EXEC SQL
  END DECLARE SECTION  ………………4
END-EXEC.

説明

埋込み変数の宣言の始まりを示します。

埋込み変数を宣言します。SQLとUAP側でデータを受け渡しするときには，あらかじめ決められた規則に従って記述します。SQLのデータ型とデータ記述については，「SQLのデータ型とデータ記述」を参照してください。

埋込み変数XGRYOに対する標識変数を宣言します。なお，BLOB型の埋込み変数に対する標識変数の場合は，PIC S9(9) COMP.となります。

埋込み変数の宣言の終わりを示します。

ナル値の既定値設定機能を使用している場合，検索結果がナル値のときはナル値の代わりに既定値（数データの場合は0，文字データの場合は空白）を埋込み変数で受け取ることができます。このとき，既定値とナル値とを区別しなくてよいのであれば，標識変数を使用する必要がなくなります。ナル値の既定値設定機能については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

(2)　XDM/RD E2との接続

XDM/RD E2にユーザの認可識別子とパスワードを通知して，UAPがXDM/RD E2を使用できる状態にします。これをXDM/RD E2との接続といいます。XDM/RD E2との接続方法を次に示します。

EXEC SQL
  CONNECT :XUSERID IDENTIFIED BY :XPSWD
END-EXEC.

説明

埋込み変数（:XUSERID）に格納された認可識別子および埋込み変数（:XPSWD）に格納されたパスワードでXDM/RD E2と接続します。

認可識別子

XDM/RD E2と接続する場合に有効となる認可識別子を次に示します。

優先順位

認可識別子の指定優先順序

1

CONNECT文で指定した認可識別子

2

環境変数PDUSERで指定した値

埋込み型UAP中のSQLに，認可識別子を省略した場合に仮定する認可識別子を次に示します。

定義系SQLおよび動的SQL

優先順位

認可識別子の指定優先順序

1

CONNECT文で指定した認可識別子

2

1を省略した場合は，環境変数PDUSERで指定した認可識別子

定義系SQL以外の静的SQL

優先順位

認可識別子の指定優先順序

1

プリプロセス時の「A」オプションで指定した既定認可識別子

2

1を省略した場合は，CONNECT文で指定した認可識別子

3

1，2を省略した場合は，環境変数PDUSERで指定した認可識別子

CALL文で呼び出すプロシジャ中のSQLに，認可識別子を省略した場合に仮定する認可識別子を次に示します。

静的SQL

プロシジャ所有者（外部プロシジャとして呼び出すUAPの所有者と同じ）

動的SQL

優先順位

認可識別子の指定優先順序

1

CONNECT文で指定した認可識別子

2

1を省略した場合は，環境変数PDUSERで指定した認可識別子

指定できる認可識別子とパスワードの規則は，XDM/RD E2の規則に従います。詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

(3)　カーソル宣言

HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。カーソル宣言については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(4)　エラー時の処置の指定

HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。エラー時の処置の指定については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(5)　検索，更新のSQL（実行文）

データを検索，更新，挿入，または削除するためのSQL文を記述します。各SQL文の記述方法については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

ただし，XDM/RD E2接続機能を使用する場合は，埋込み変数および標識変数の形式として，INDICATOR句は指定できません。XDM/RD E2の形式とXDM/RD E2接続機能を使用する場合の形式を次に示します。

XDM/RD E2の形式

埋込み変数指定：：＝〔ＧＲＯＵＰＩＴＥＭ〕　埋込み変数名　〔標識変数名〕
パラメタ指定：：＝パラメタ名　〔標識パラメタ名〕

　　標識変数名：：＝〔ＩＮＤＩＣＡＴＯＲ〕　埋込み変数名
　　標識パラメタ名：：＝〔ＩＮＤＩＣＡＴＯＲ〕　パラメタ名
　　埋込み変数名：：＝：〔ホスト識別子１．〕ホスト識別子２

XDM/RD E2接続機能を使用する場合の形式

埋込み変数指定：：＝〔ＧＲＯＵＰＩＴＥＭ〕　埋込み変数名　〔標識変数名〕
パラメタ指定：：＝パラメタ名　〔標識パラメタ名〕

　　標識変数名：：＝埋込み変数名
　　標識パラメタ名：：＝パラメタ名
　　埋込み変数名：：＝：〔ホスト識別子１．〕ホスト識別子２

(6)　エラーの判定

SQLの実行中にエラーが発生した場合，SQLCODE，SQLSTATEを参照すると，XDM/RD E2から返されるリターンコードがわかります。そのリターンコードを利用して，そのあとの処理をどうするか指示します。ただし，「エラー時の処置の指定」で，すでに同じ内容のエラー処理を指定している場合は，ここで指示する必要はありません。

XDM/RD E2接続機能を使用する場合は，SQLCODE変数で受け取るSQLCODEは，XDM/RD E2が設定するSQLCODEまたはHiRDBクライアントが設定するSQLCODEとなります。また，SQLSTATE変数で受け取る値は，XDM/RD E2が設定するSQLSTATEまたはHiRDBクライアントが設定するSQLSTATEとなります。

SQLCODEおよびSQLSTATEについては，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

DECLARE CURSORのような宣言文の直後に，エラーの判定はしないでください。エラーの判定をすると，不正なSQLCODEを参照して，XDM/RD E2が誤動作する場合があります。

(7)　トランザクションの有効化

HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。トランザクションの有効化については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(8)　トランザクションの無効化

HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で特に差異はありません。トランザクションの無効化については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(9)　XDM/RD E2からの切り離し

トランザクションを正常終了させて，UAPをXDM/RD E2から切り離します。DISCONNECT文は，RELEASE指定のCOMMIT文を実行したときと同じになります。

トランザクションを正常終了させて，UAPをXDM/RD E2から切り離すSQL文を次に示します。

EXEC SQL
  DISCONNECT
END-EXEC.

説明

トランザクションを正常終了させて，UAPをXDM/RD E2から切り離します。また，トランザクションを取り消したあとにUAPをXDM/RD E2から切り離す場合には，RELEASE指定のROLLBACK文を実行します。なお，DISCONNECT文，COMMIT文（RELEASE指定），ROLLBACK文（RELEASE指定）のどれも実行しないでUAPが終了した場合，ROLLBACK文（RELEASE指定）が自動的に実行され，実行中のトランザクションは無効となるので注意してください。

3.2　UAPの記述

ここでは，UAPを作成するときに考慮する必要がある基本的な内容の中で，特に，HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。

その他のUAPの記述については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

3.2.1　UAPの記述言語

UAPの形式は，高級言語で記述されたソースプログラム中に直接SQLを記述する埋込み型です。

XDM/RD E2接続機能で使用できるUAPの記述言語を次の表に示します。

表3‒1　UAPの記述言語

動作環境

記述言語

AIX，

Linux

C言語（最適化C）

C++言語（最適化C++）

COBOL言語（COBOL85およびCOBOL2002）

OOCOBOL言語（OOCOBOL）※

Windows

C言語（Microsoft Visual C++）

C++言語（Microsoft Visual C++）

COBOL言語（COBOL85およびCOBOL2002）

OOCOBOL言語（OOCOBOL）

注※

OSによっては，コンパイラがサポートされていないため，使用できない場合があります。

なお，埋込み型UAPは，そのままではコンパイルおよびリンケージができません。SQLプリプロセサを実行し，ポストソースプログラムに変換してからコンパイルとリンケージをしてください。プリプロセス，コンパイル，およびリンケージについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

3.2.2　インタフェース領域

インタフェース領域は，XDM/RD E2とUAPとの間で情報をやり取りするために使用します。インタフェース領域の種類と使用目的を次の表に示します。

表3‒2　インタフェース領域の種類と使用目的

領域名

使用目的

言語

C

COBOL

SQL連絡領域

SQLの実行結果の詳細情報を取得する

○※1

○※1

SQL記述領域

UAP実行時に動的に決定した入力変数の情報をシステムに通知する

UAPを動的に実行するために前処理したSQLの検索項目の情報を受け取る

列名記述領域を指定する

△

△

列名記述領域

UAPを動的に実行するために前処理したSQLの検索項目の情報を受け取る

△

△

型名記述領域

ユーザ定義型のデータ型名を受け取る

△

△

埋込み変数

埋込み型UAPのSQL中に指定して値の受け渡しをする

△

△

標識変数

埋込み型UAPのSQL中に指定して値の受け渡しをする

△

△

パラメタ

UAPを動的に実行するために前処理する SQLに対して，UAPから値を渡す

△

△※2

（凡例）

○：必要

△：任意

注※1

SQLプリプロセサを実行するとUAP中に展開されるので，宣言は不要です。SQLプリプロセサの実行については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

注※2

?パラメタの代わりに埋込み変数および標識変数を使用します。

XDM/RD E2接続機能使用時のSQL連絡領域，SQL記述領域，列名記述領域，および型名記述領域の詳細については，「SQL領域」を参照してください。

また，埋込み変数，標識領域，および?パラメタの詳細については，マニュアル「HiRDB SQLリファレンス」を参照してください。

3.3　性能向上，操作性向上に関するUAPの設計

ここでは，性能向上と操作性向上に関してUAP設計時に考慮する点の中で，特にHiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。

その他の性能向上，および操作性向上に関するUAP設計については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

3.3.1　配列を使用したFETCH機能

XDM/RD E2のバージョンによって，配列を使用したFETCH機能を使用できる場合とできない場合があります。配列を使用したFETCH機能を使用できるバージョンを次に示します。

配列を使用したFETCH機能を使用できるバージョン

XDM/RD E2 08-00以降

3.3.2　複数接続機能

(1)　機能概要

複数接続機能は，HiRDBクライアントで一つのUAPから，XDM/RD E2に対して複数のCONNECTを別々に実行できるようにする機能です。

複数接続機能のそれぞれの接続は独立していて，DBコネクションサーバのタスクは接続ごとに割り当てられて別々のトランザクション（別々のアクティビティ）として処理されるので，UAPは複数のSQL文を同時に実行できます。一つのUAPから複数接続できるので，実行するUAPの数を削減でき，全体としてのUAPのメモリ所要量を削減できます。

XDM/RD E2の最大接続数は，接続ごとに別ユーザとしてカウントされるので，ユーザ数の上限ではなく，同時にCONNECTする接続数の上限となります。

複数接続機能の特長を次に示します。

接続ごとに，異なるユーザID，パスワードを使用できます。

接続ごとに，複数のXDM/RD E2へ接続できます。環境変数グループを使用する場合は，ほかのHiRDBサーバと同時に接続することもできます。

複数接続機能の処理概要を図「複数接続機能の処理概要（マルチスレッドを使用しない場合）」および図「複数接続機能の処理概要（マルチスレッドを使用する場合）」に示します。

図3‒2　複数接続機能の処理概要（マルチスレッドを使用しない場合）

図3‒3　複数接続機能の処理概要（マルチスレッドを使用する場合）

(2)　コーディング例

複数接続機能を使用した場合のUAPのコーディング例については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(3)　規則

複数接続機能を使用する場合は，UAPのコンパイルおよびリンケージ時に専用のライブラリを指定する必要があります。

複数接続機能を使用する場合のコンパイルとリンケージについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

X/Open XAインタフェース環境下での複数接続機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

複数接続機能用ライブラリを使用するUAPでは，一つの接続を保持したままスレッドを分岐し，そのスレッドがSQLを実行する場合，ほかのSQLを発行するスレッドとの間で処理のシリアライズを必要とします。したがって，同一接続に対するSQLは同時に発行できません。異なる接続に対するSQLは同時に発行できます。

ALLOCATE CONNECTION HANDLE，FREE CONNECTION HANDLEのエラー情報を参照する場合，SQLCODE，SQLERRMではなく，リターンコード受け取り変数の値を参照してください。リターンコード受け取り変数については，マニュアル「HiRDB SQLリファレンス」を参照してください。

各接続で発行するSQLは，XDM/RD E2上ではそれぞれ別のアクティビティとして扱われます。

このため，ほかの接続で排他されている資源を別の接続で排他しようとした場合に，永久的な排他待ちになることがありますので注意してください※1。

また，スレッド間で発行するSQLの組み合わせによってデッドロックエラーになる場合がありますので注意してください※2。

注※1　例を次に示します。

1. 接続1が表1を更新

2. 同一スレッド内で，接続2が表1を更新

項番2.の操作が項番1.の操作を排他待ちする場合があり，この場合時間監視の制限値まで待ち続けることになります。

注※2　例を次に示します。

1. スレッド1で表1を更新

2. スレッド2で表2を更新

3. スレッド2で表1を更新

4. スレッド1で表2を更新

項番3.の操作が項番1.の操作を排他待ちし，項番4.の操作が項番2.の操作を排他待ちする場合があり，デッドロックとなります。

SQL連絡領域を参照する場合，直接SQLCAを参照しないで，SQLCで始まる連絡領域名を参照してください。

(4)　プラットフォームによる注意事項

複数接続機能を使用する場合，UAPが動作するプラットフォームによって次のことに注意する必要があります。次の注意が守られていない場合，UAPの実行時に不正な動作をする可能性があります。

(a)　UNIXの場合

複数接続機能は，マルチスレッド（DCEスレッド，リアルスレッド）およびシングルスレッド対応のUAPで使用できます。したがって，マルチスレッド対応のUAPで複数接続機能を使用する場合，HiRDBでのUAPの開発知識のほかに，DCEスレッド，リアルスレッドを用いたUAPの開発知識を必要とします。

(b)　Windowsの場合

複数接続機能は，マルチスレッド対応UAPでだけ使用できます。したがって，UAPのコンパイルで使用するCのランタイムライブラリの指定は，マルチスレッド．DLLを選択してください（「コンパイルオプション：コード生成」で，「マルチスレッド．DLL」を指定します）。

3.3.3　位置付け子機能

XDM/RD E2のバージョンによって，位置付け子機能を使用できる場合とできない場合があります。位置付け子機能を使用できるバージョンを次に示します。

位置付け子機能を使用できるバージョン

XDM/RD E2 11-00以降

なお，CLOB型の位置付け子機能を使用できるのは，XDM/RD E2接続の場合だけです。HiRDBサーバ接続の場合は使用できません。

3.4　他プログラムプロダクトとの関連

ここでは，他プログラムプロダクトがXDM/RD E2接続機能を使用する場合の関連事項について説明します。

3.4.1　OpenTP1との関連（XAインタフェースを使用する場合）

X/Openに準拠したAPIを使用して，OLTP環境でリソースマネジャとしてXDM/RD E2を使用できます。

このとき，OLTPシステムはXDM/RD E2をHiRDBサーバとみなして動作します。したがって，HiRDBの関連マニュアルをお読みになる場合は，「HiRDB」を「XDM/RD E2」に置き換えてお読みください。

(1)　必要となるプログラムプロダクトのバージョン

X/Openに準拠したAPIを使用して，XDM/RD E2に接続する場合に必要なVOS3のプログラムプロダクトのバージョンを次に示します。

XDM/RD E2：06-03以降

DBコネクションサーバ：03-02以降

上記のプログラムプロダクトに関連するプログラムプロダクトのバージョンについては，上記プログラムプロダクトのマニュアルを参照してください。

(2)　VOS3のプログラムプロダクトの定義

X/Openに準拠したAPIを使用して，XDM/RD E2に接続する場合に必要なVOS3のプログラムプロダクトの定義を次に示します。詳細については，各プログラムプロダクトのマニュアルを参照してください。

(a)　XDM/RD E2

OLTPシステムがOpenTP1の場合，XDM/RD E2に接続できるユーザ数を一つ多く定義します。

(b)　DBコネクションサーバ

二相コミット機能を使用する定義。

OLTPシステムがOpenTP1の場合，DBコネクションサーバに接続できるTCPコネクション数を一つ多く定義します。

(3)　UAP作成上の留意事項

(a)　SQL関連の注意事項

使用できないSQL

X/Openに準拠したAPIを使用しているUAPからは，次に示すSQLは使用できません。

定義系SQL

PURGE TABLE文

COMMIT文

CONNECT文

DISCONNECT文

ROLLBACK文

暗黙的ロールバック

X/Openに準拠したAPIを使用している場合，SQL実行時にXDM/RD E2で暗黙的ロールバック要因が発生すると，XDM/RD E2は自動的にロールバックします。

このため，暗黙的ロールバック要因が発生した場合は，XDM/RD E2以外の資源に対する整合性を保つために，速やかにトランザクションのロールバック※をする必要があります。

暗黙的ロールバック要因が発生すると，XDM/RD E2はロールバック以外の要求を実行できなくなります。

XDM/RD E2で暗黙的ロールバック要因が発生したかどうかは，SQL連絡領域（SQLCA）のSQLWARN6を参照して判断してください。暗黙的ロールバック要因が発生している場合，'W'が設定されています。なお，暗黙的ロールバック要因が発生した場合は，SQLCODEは負の値となります。

注※

ここで説明しているロールバックとは，トランザクションマネジャが用意するロールバック関数などの発行を示すものであり，SQLのROLLBACK文ではありません。

(b)　マルチスレッド用のライブラリに関する注意事項

一つのトランザクションからXDM/RD E2に対して複数のスレッドを使用して別々に接続できません。マルチスレッド環境でのXA接続は未サポートです。したがって，一つのトランザクションから同時に実行できるスレッドは一つであり，同一トランザクション内で複数のスレッドを使用してSQL文を同時に実行できません。

(4)　HiRDB XAライブラリ

X/Open XAインタフェースとは，分散トランザクション処理（DTP：Distributed Transaction Processing）システムのトランザクションマネジャ（TM：Transaction Manager）とリソースマネジャ（RM：Resource Manager）の接続インタフェースを規定したX/Openの標準仕様です。X/Open XAインタフェースを使用すると，リソースマネジャのトランザクション処理をトランザクションマネジャで制御できます。リソースマネジャのトランザクション処理をトランザクションマネジャで制御するには，リソースマネジャが提供するライブラリとトランザクションマネジャが提供するライブラリをUAPにリンケージします。

XDM/RD E2のUAPの処理をトランザクションマネジャで制御するために，HiRDBはHiRDB XAライブラリを提供しています※。HiRDB XAライブラリは，X/Open DTPソフトウェア・アーキテクチャのXAインタフェースの仕様に準拠しています。

注※

XDM/RD E2に接続する場合も，HiRDBサーバに接続する場合と同じHiRDB XAライブラリを使用します。

X/Open DTPモデルでのXDM/RD E2の位置づけを次の図に示します。

図3‒4　X/Open DTPモデルでのXDM/RD E2の位置づけ

(5)　HiRDB XAライブラリでサポートする機能

HiRDB XAライブラリでサポートする機能を次の表に示します。

ただし，XDM/RD E2をサーバとして使用する場合とHiRDBサーバを使用する場合では，サポートする機能が異なります。

表3‒3　HiRDB XAライブラリでサポートする機能

機能

説明

サポート有無

HiRDB

サーバ

XDM/RD E2

サーバ

トランザクションの移行

トランザクションのコミット処理を，UAPがHiRDBにアクセスしたときと異なるサーバプロセスで実行する機能です。ここでいうUAPとは，HiRDB XAライブラリを使用してHiRDBに接続するUAPのことです。

○

×※

一相最適化

二相コミット制御を一相に最適化する機能です。

○

○

読み取り専用

プリペア要求でHiRDBのリソースが更新されていない場合，トランザクションマネジャが二相目にコミット要求をしないで最適化する機能です。

○

○

動的トランザクションの登録

UAPを実行する直前に，HiRDBが動的にトランザクションを登録する機能です。

○

○

非同期XA呼び出し

トランザクションマネジャが非同期にHiRDB XAライブラリを呼び出す機能です。

×

×

複数接続機能

一つのUAPからXDM/RD E2に対して複数のCONNECTを別々に実行する機能です。

X/Open XAインタフェース環境下での複数接続機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

○

○

（凡例）

○：HiRDB XAライブラリでサポートしています。

×：HiRDB XAライブラリでサポートしていません。

注※

トランザクションの移行は使用できません。このため，HiRDBクライアント環境変数のPDXAMODEオペランドには0を指定するか，PDXAMODEオペランドの指定を省略してください。

(6)　システムの構成例

OLTPシステムを使用したシステムの構成例を次の図に示します。

図3‒5　OLTPシステムを使用したシステムの構成例

(7)　トランザクションの移行

トランザクションの移行は，XDM/RD E2に接続する場合には使用できません。

このため，HiRDBクライアント環境変数のPDXAMODEオペランドには0を指定するか，PDXAMODEオペランドの指定を省略してください。

(a)　トランザクションマネジャがOpenTP1の場合

XDM/RD E2に接続する場合は，トランザクションの移行が使用できないため，OpenTP1のコミット最適化およびプリペア最適化は使用できません。

ただし，OpenTP1システムの状態によっては，トランザクションの移行を使用しなくても，コミット最適化およびプリペア最適化を使用する指定（OpenTP1システム定義のトランザクションサービス定義のtrnstringオペランドに-dオプションを省略）ができます。

OpenTP1システム定義のトランザクションサービス定義のtrnstringオペランドの指定とOpenTP1システムの状態の組み合わせ可否を次に示します。

条件

組み合わせ可否

trnstringオペランドの指定

OpenTP1システムの状態

-dオプションを省略

同一OpenTP1システム内では一つのAPだけでグローバルトランザクションを構成している場合

可能

同一OpenTP1システム内では複数のAPでグローバルトランザクションを構成している場合

一つのAPだけがHiRDB XAライブラリとリンクしているとき

可能

複数のAPがHiRDB XAライブラリとリンクしているとき

不可能※

-dオプションを指定

該当しない

可能

注

-dオプションは，TP1/Server Baseのバージョンが03-03以降のときに指定できます。

注※

同一OpenTP1システム内では複数のAPでグローバルトランザクションを構成しており，かつ複数のAPがHiRDB XAライブラリとリンクしている場合は，trnstringオペランドに必ず-dオプションを指定してください。

trnstringオペランドについては，マニュアル「OpenTP1　システム定義」を参照してください。

コミット最適化およびプリペア最適化については，マニュアル「OpenTP1　プログラム作成の手引」を参照してください。

(8)　トランザクションマネジャへの登録

OLTPと連携するには，XDM/RD E2をトランザクションマネジャに登録する必要があります。XDM/RD E2をトランザクションマネジャに登録するには，OpenTP1のtrnlnkrmコマンドを使用します。

XDM/RD E2をトランザクションマネジャに登録するときには，次に示すどちらかの方法を選択してください。

動的登録方法

静的登録方法

なお，一つのトランザクションマネジャに対して，動的登録方法と静的登録方法を混在して使用できません。

(a)　動的登録方法とは

XDM/RD E2をトランザクションマネジャに動的登録すると，トランザクション内で最初のSQL文を発行したときに，UAPがトランザクションマネジャの制御下に入ります。UAPがXDM/RD E2を含む複数のリソースマネジャをアクセスする場合，またはUAPがXDM/RD E2をアクセスするとは限らない場合などに，トランザクションマネジャからのXDM/RD E2に対するトランザクション制御のオーバヘッドを削減できます。

(b)　静的登録方法とは

XDM/RD E2をトランザクションマネジャに静的登録すると，UAPがSQL文の発行に関係なく，トランザクションの開始時に常にトランザクションマネジャの制御下に入ります。

トランザクションマネジャがOpenTP1の場合，UAPとXDM/RD E2とのコネクションが切断されたとき（ユニットの異常終了またはサーバプロセスの異常終了などのとき）に，OpenTP1にはトランザクション開始時に再接続をする機能があるため，UAPの再起動が不要になります。

(c)　動的登録方法と静的登録方法の違い

動的登録方法と静的登録方法の違いを次の表に示します。

表3‒4　動的登録方法と静的登録方法の違い

差異のポイント

動的登録方法

静的登録方法

トランザクション開始時

管理しない

コネクション確立中かどうかの確認

トランザクションマネジャ制御下でのトランザクションの管理を開始

トランザクション内で最初のSQL発行時

トランザクションマネジャの制御下での管理を開始

XDM/RD E2のトランザクション開始

SQL文処理

XDM/RD E2のトランザクション開始

SQL文処理

トランザクション処理中のトランザクションマネジャとXDM/RD E2間の通信回数

SQL文数＋コミット処理通信回数

SQL文数＋コミット処理通信回数＋1（トランザクション開始処理用の通信分）

トランザクションマネジャとXDM/RD E2間のコネクションが，途中で切断したときの再接続方法※1

次回のトランザクション開始時に自動的に再接続※2

次回のトランザクション開始時に自動的に再接続※3

注※1

トランザクションマネジャがOpenTP1のときに限ります。

注※2

OpenTP1のtrn_rm_open_close_scopeオペランドにtransactionを指定している場合に自動的に再接続します。指定していない場合は，UAPをいったん終了させ，再起動する必要があります。

ただし，UAPがtx_openを再発行すれば，UAPを再起動しなくてもコネクションを再接続できます。詳細については，「トランザクションマネジャとXDM/RD E2間のコネクションが切断されたときの再接続方法」を参照してください。

注※3

UAPがtx_openを再発行すれば，UAPを再起動しなくてもコネクションを再接続できます。詳細については，「トランザクションマネジャとXDM/RD E2間のコネクションが切断されたときの再接続方法」を参照してください。

(9)　トランザクションマネジャに登録する情報

XDM/RD E2をリソースマネジャとしてトランザクションマネジャに登録する方法については，トランザクションマネジャのマニュアルを参照してください。このとき，次に示す情報をトランザクションマネジャに指定します。

(a)　RMスイッチ名

動的登録方法にするか静的登録方法にするかは，RMスイッチ名の指定で決まります。XDM/RD E2のRMスイッチ名（xa_switch_t 構造体名）を次に示します。

動的登録方法の場合：pdtxa_switch

静的登録方法の場合：pdtxa_switch_y

(b)　RM名

RMスイッチ（xa_switch_t 構造体）で定義されているリソースマネジャ名は，HiRDB_DB_SERVERです。

(c)　オープン文字列

トランザクションマネジャがxa_openでリソースマネジャをオープンするときに使用するオープン文字列は，複数接続機能を使用する場合に指定してください。複数接続機能を使用しない場合はオープン文字列を指定する必要はありません。

複数接続機能を使用する場合は，トランザクションマネジャに複数のXDM/RD E2を登録し，各XDM/RD E2に対してオープン文字列を指定します。オープン文字列には次に示す項目を指定します。

接続先で有効にする環境変数を設定したファイルの絶対パス名（OSがUNIXの場合）

接続先で有効にする環境変数をレジストリ登録したときに指定した環境変数グループ名（OSがWindowsの場合）

環境変数グループ識別子

OSがUNIXの場合は，"環境変数グループ識別子＋環境変数設定ファイル名"または"環境変数グループ識別子＊環境変数設定ファイル名"の形式で指定します。

OSがWindowsの場合は，"環境変数グループ識別子＋環境変数グループ名"または"環境変数グループ識別子＊環境変数グループ名"の形式で指定します。

これ以外の形式で指定した場合は，オープン文字列が無視されます。

また，環境変数グループ識別子は4バイト固定，オープン文字列は全体で257バイト以下で指定してください。

トランザクションマネジャがOpenTP1の場合のオープン文字列の登録例を次に示します。

トランザクションマネジャがOpenTP1の場合のオープン文字列の登録例

OpenTP1のトランザクションサービス定義のtrnstringオペランドでオープン文字列を登録します。ここでは二つのXDM/RD E2をOpenTP1に登録します。登録条件は次のとおりとします。

OSがUNIXの場合

リソースマネジャ

環境変数グループ識別子

環境変数設定ファイル名

XDMRD1

XRD1

/usr/conf/XDMRD/XDMRD11.ini

/usr/conf/XDMRD/XDMRD12.ini

XDMRD2

XRD2

/usr/conf/XDMRD/XDMRD21.ini

/usr/conf/XDMRD/XDMRD22.ini

OSがWindowsの場合

リソースマネジャ

環境変数グループ識別子

環境変数グループ名

XDMRD1

XRD1

xdmrd11

xdmrd12

XDMRD2

XRD2

xdmrd21

xdmrd22

オープン文字列の登録例を次に示します。

OSがUNIXの場合

trnstring -n HiRDB_DB_SERVER -i X1 -o "XRD1*/usr/conf/XDMRD/XDMRD11.ini" -O
"XRD1＋/usr/conf/XDMRD/XDMRD12.ini"
trnstring -n HiRDB_DB_SERVER -i X2 -o "XRD2*/usr/conf/XDMRD/XDMRD21.ini" -O
"XRD2＋/usr/conf/XDMRD/XDMRD22.ini"

OSがWindowsの場合

trnstring -n HiRDB_DB_SERVER -i X1 -o "XRD1*xdmrd11" -O "XRD1＋xdmrd12"
trnstring -n HiRDB_DB_SERVER -i X2 -o "XRD2*xdmrd21" -O "XRD2＋xdmrd22"

説明

-n：リソースマネジャ名を指定します。

-i：リソースマネジャ拡張子を指定します。

-o：トランザクションサービス用xa_open関数用文字列を指定します。

OpenTP1のトランザクションサービスプロセスが使用するオープン文字列を指定します。OSがUNIXの場合は"環境変数グループ識別子＊環境変数設定ファイル名"，OSがWindowsの場合は"環境変数グループ識別子＊環境変数グループ名"の形式で指定します。

-O：ユーザサーバ用xa_open関数用文字列を指定します。

ユーザサーバプロセスが使用するオープン文字列を指定します。OSがUNIXの場合は"環境変数グループ識別子＋環境変数設定ファイル名"，OSがWindowsの場合は"環境変数グループ識別子＋環境変数グループ名"の形式で指定します。

-oと-Oには同じ環境変数グループ識別子を指定してください。

-oと-Oに指定するファイルレジストリで設定する環境変数は同じ内容にしてください。

備考

OpenTP1のユーザサービス定義のtrnrmidオペランドで，ユーザサービスから接続するXDM/RD E2を選択します。XDMRD1とXDMRD2に接続する例を次に示します。

trnrmid -n HiRDB_DB_SERVER -i X1,X2

(d)　クローズ文字列

トランザクションマネジャがxa_closeでリソースマネジャをクローズするときに使用するクローズ文字列は指定不要です。

(e)　RM関連オブジェクト名

RM関連オブジェクト名には，次に示すライブラリ名を指定します。

(i)OSがUNIXの場合

ライブラリの種類

ライブラリ名

共用ライブラリ

シングルスレッド用

libzclty.sl（libzcltx.sl）

シングルスレッド用

（複数接続機能対応）

libzcltys.sl（libzcltxs.sl）

アーカイブ

ライブラリ

シングルスレッド用

libcltya.a（libcltxa.a）

注1

動的登録する場合は，（　）で囲まれているライブラリ名を指定してもかまいません。

注2

ライブラリには共用ライブラリとアーカイブライブラリの両方があります。用途に応じてどちらかを選択してください。ただし，次に示す利点があるため，共用ライブラリを指定することをお勧めします。

UAPのオブジェクトサイズが小さくなります。

HiRDBのバージョンアップ時に再リンケージが不要になります。

注3

共用ライブラリのサフィックスは，プラットフォームによって異なります。Linuxの場合は.so，AIXの場合は.aとなります。

(ii)OSがWindowsの場合

ライブラリの種類

ライブラリ名

シングルスレッド用

pdcltx32.lib

シングルスレッド用（複数接続機能対応）

pdcltxs.lib

(f)　クライアント環境定義

トランザクションマネジャにXDM/RD E2のトランザクション処理を制御させるためには，HiRDBのクライアント環境定義をトランザクションマネジャの定義に設定する必要があります。OLTP環境下でのクライアント環境定義の設定方法については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

トランザクションマネジャがOpenTP1の場合，クライアント環境定義のファイル名を次に示すOpenTP1のシステム定義に，putenv形式又はdcputenv形式で定義する必要があります。

HiRDBクライアント環境定義

システム環境定義

ユーザサービスデフォルト定義

ユーザサービス定義

トランザクションサービス定義

システム環境定義，ユーザサービスデフォルト定義，ユーザサービス定義，およびトランザクションサービス定義については，マニュアル「OpenTP1　システム定義」を参照してください。

なお，複数のOpenTP1と接続する場合は，HiRDBクライアント環境定義HiRDB_PDTMID，またはPDTMIDを必ず指定してください。

(10)　トランザクションマネジャへの登録例

XDM/RD E2をOpenTP1に登録するには，OpenTP1のtrnlnkrmコマンドを使用します。trnlnkrmコマンドの指定例を次に示します。

動的登録方法の場合

OSがUNIXの場合

trnlnkrm -a HiRDB_DB_SERVER -s pdtxa_switch -o /HiRDB/client/lib/libzcltx.sl

OSがWindowsの場合

trnlnkrm -a HiRDB_DB_SERVER -s pdtxa_switch
-o C:¥win32app¥hitachi¥hirdb_s¥client¥lib¥pdcltx32.lib

説明

-a：RM名を指定します。

-s：RMスイッチ名を指定します。RMスイッチ名は，登録方法（動的登録方法または静的登録方法）によって異なります。

-o：RM関連オブジェクト名（共用ライブラリのファイル名）を指定します。

静的登録方法の場合

OSがUNIXの場合

trnlnkrm -a HiRDB_DB_SERVER -s pdtxa_switch_y -o /HiRDB/client/lib/libzclty.sl

OSがWindowsの場合

trnlnkrm -a HiRDB_DB_SERVER -s pdtxa_switch_y
-o C:¥win32app¥hitachi¥hirdb_s¥client¥lib¥pdcltx32.lib

説明

-a：RM名を指定します。

-s：RMスイッチ名を指定します。RMスイッチ名は，登録方法（動的登録方法または静的登録方法）によって異なります。

-o：RM関連オブジェクト名（共用ライブラリのファイル名）を指定します。

(11)　トランザクションマネジャへの登録の変更

トランザクションマネジャへの登録を変更する場合には，次に示す手順に従ってトランザクションマネジャにXDM/RD E2を登録し直してください。

OpenTP1のtrnlnkrmコマンドで，トランザクションマネジャにXDM/RD E2を登録し直します。

OpenTP1のtrnmkobjコマンドで，トランザクション制御用オブジェクトファイルを再作成します。

2.で再作成したトランザクション制御用オブジェクトファイルおよび「トランザクションマネジャに登録する情報」に示した情報を基に，HiRDBのXAライブラリとリンクしていたすべてのUAPを再リンケージしてください。再リンケージをしないと，UAPの動作は保証されません。

(12)　トランザクションマネジャとXDM/RD E2間のコネクションが切断されたときの再接続方法

(a)　UAPで対処する方法

コネクションが切断された場合，実行中のUAPを再起動してください。再起動すると，自動的にコネクションが再接続されます。

UAPを再起動したくない場合は，コネクションが切断されたことを示すエラーがUAPに返ったときに，tx_open関数を再発行してください。tx_open関数を再発行することで，UAPを終了しなくても，サービスを続行できます。tx_open関数を再発行するときのコーディング例を次に示します。

コーディング例

int connection = 1;
void service(char *in_data,long *in_len,char *out_data,long *out_len) {
    if (connection == 0) {
       tx_close();
       tx_open();                       ……………コネクション切断時のtx_open再発行処理
    }
    tx_begin();
    EXEC SQL INSERT INTO ......;        ……………SQL文発行
    if (SQLCODE == 0) {
        tx_commit();
        *out_data = “OK”;
    } else {
        tx_rollback();
        *out_data = “NG”;
        if (SQLCODE == -563 || SQLCODE == -722) {
            connection = 0;              ……………コネクション切断を記憶
        }
    }
}

(b)　OpenTP1の機能を使用する方法

動的登録方法の場合は，OpenTP1のトランザクションサービス定義またはユーザサービス定義のtrn_rm_open_close_scopeオペランドにtransactionを指定してください。transactionを指定することで，OpenTP1はトランザクションの開始または終了でXDM/RD E2とのコネクションを確立または切断します。したがって，途中でコネクションが切断されても，次回のトランザクションの開始時にコネクションが再接続されます。

静的登録方法の場合は，トランザクションの開始時にXDM/RD E2とのコネクションが確立されているかどうかをトランザクションマネジャが確認します。コネクションが切断されている場合は，自動的に再接続されて，トランザクションを開始します。

(13)　TP1/Resource Manager Monitorの機能を使用したXDM/RD E2の監視

XDM/RD E2を使用する場合，TP1/Resource Manager Monitorの機能を使用したXDM/RD E2の監視はできません。

3.4.2　OpenTP1との関連（XAインタフェースを使用しない場合）

XAインタフェースを使用しない場合，特に制限事項はありません。

なお，HiRDBサーバを使用する場合と同様に，トランザクションの同期点制御はSQLのCOMMIT文を使用してください。OpenTP1のCBLDCTRN（'C-COMMIT'）関数などの同期点制御関数ではXDM/RD E2の同期点制御はできません。

3.4.3　OpenTP1以外の他プログラムプロダクトとの関連

HiRDBクライアントを経由してHiRDBサーバに接続できる他プログラムプロダクトが，XDM/RD E2接続機能を利用できるかどうかは，各プログラムプロダクトが発行するSQLの内容や，内部的に発行する特殊インタフェースの使用有無などによって異なります。

したがって，他プログラムプロダクトがXDM/RD E2接続機能を使用できるかどうかについては，各プログラムプロダクトの仕様を確認してください。

なお，HiRDBのディクショナリ表を検索するプログラムプロダクトについては，XDM/RD E2でHiRDB形式ディクショナリビュー表を作成していなければ，XDM/RD E2接続機能を使用することはできません。HiRDB形式ディクショナリビュー表については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−運用編−」を参照してください。

4　クライアントの環境設定

この章では，XDM/RD E2接続機能を使用する際のクライアントの環境設定について説明します。

その他のクライアントの環境設定については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

4.1　HiRDBクライアントの種類

PC，WSとも，HiRDBクライアントには次の2種類のプログラムプロダクトがあります。この二つのプログラムプロダクトを，HiRDBクライアントといいます。

HiRDB/Developer's Kit

HiRDB/Run Time

HiRDBクライアントの種類によって，UAPの作成から実行までの作業のうち，実行できる作業が異なります。UAPの作成から実行までの作業の流れを次に示します。

HiRDBクライアントの種類によって実行できる作業は次のとおりです。

HiRDB/Developer's Kit

項番1.〜項番4.の作業ができます。

HiRDB/Run Time

項番4.の作業ができます。HiRDBクライアントの提供物はHiRDBサーバにも含まれています。したがって，項番1.〜項番3.はHiRDBサーバの機能で実行してください。

4.2　HiRDBクライアントの環境設定手順

クライアントの環境設定手順を次に示します。

注※1

詳細は，「hostsファイルの設定」を参照してください。

注※2

クライアント環境定義については，「クライアント環境定義（環境変数の設定）」を参照してください。

4.3　hostsファイルの設定

HiRDBクライアントからXDM/RD E2に接続する場合は，クライアントマシンのhostsファイルに，次に示す情報を指定します。

接続するDBコネクションサーバのIPアドレス

接続するDBコネクションサーバのホスト名

hostsファイルとは，Windowsでは各TCP/IPが規定するhostsファイル，UNIXでは/etc/hostsファイルのことです。hostsファイルにホスト名を指定したあと，pingコマンドを使用して指定した内容が正しいか確認することをお勧めします。

4.4　クライアント環境定義（環境変数の設定）

XDM/RD E2接続機能を使用するとき，サーバとしてHiRDBを使用するかXDM/RD E2を使用するかによって生じる環境変数の差異と，XDM/RD E2で設定する環境変数の詳細について説明します。

4.4.1　XDM/RD E2接続機能使用時の環境変数の差異

XDM/RD E2接続機能使用時の環境変数の差異を次の表に示します。

なお，各環境変数の詳細は「クライアント環境定義の設定内容」を参照してください。

表4‒1　XDM/RD E2接続機能使用時の環境変数の差異

環境変数

内容

Type4 JDBC

ドライバ

差異の概要

使用

不使用

PDHOST

HiRDBサーバのホスト名〔，予備系HiRDBサーバのホスト名〕

○

○

XDM/RD E2をサーバとする場合は，DBコネクションサーバのホスト名またはIPアドレスを指定します。

PDNAMEPORT

HiRDBサーバのポート番号

○

○

XDM/RD E2をサーバとする場合は，DBコネクションサーバのサーバスケジュール番号を指定します。

PDFESHOST

フロントエンドサーバのホスト名 〔，予備系フロントエンドサーバのホスト名〕

×

×

−

PDSERVICEGRP

サーバ名

×

×

−

PDSRVTYPE

サーバの種別

△

△

XDM/RD E2をサーバとする場合は，VOS3を指定します。

PDSERVICEPORT

高速接続用のポート番号〔，予備系の高速接続用のポート番号〕

×

×

−

PDFESGRP

高速接続をする場合の接続するフロントエンドサーバグループ名称

×

×

−

PDCLTRCVPORT

クライアント受信ポート番号指定

×

×

−

PDCLTRCVADDR

クライアント受信IPアドレス指定

×

×

−

PDCONTYPE

HiRDB接続時の接続方式

×

×

−

PDTMID

OLTP識別子

×

◎

−

PDXAMODE

トランザクションの移行

×

△

XDM/RD E2をサーバとする場合は，1は指定できません。

PDTXACANUM

マルチスレッド対応XAインタフェースを使用したUAP当たりのトランザクション最大同時実行数

×

×

−

PDXARCVWTIME

トランザクション回復不可時の待ち合わせ時間

×

△

XDM/RD E2をサーバとする場合は，このオペランドは指定できません。

PDXATRCFILEMODE

X/Openに従ったAPIを使用した接続形態での，各種トレースファイル名の形式指定

×

◎

−

PDXAAUTORECONNECT

TP1/EEと連携する場合に，自動再接続をするかどうかを指定する

×

×

−

HiRDB_PDHOST

X/Openに準拠したAPI使用時のデフォルトのPDHOST

×

○

用語の差異。

HiRDB_PDNAMEPORT

X/Openに準拠したAPI使用時のデフォルトのPDNAMEPORT

×

○

用語の差異。

HiRDB_PDTMID

X/Openに準拠したAPI使用時のデフォルトのPDTMID

×

○

用語の差異。

HiRDB_PDXAMODE

X/Openに準拠したAPI使用時のデフォルトのPDXAMODE

×

△

XDM/RD E2をサーバとする場合は，1は指定できません。

PDUSER

ユーザ名/パスワード

○

○

XDM/RD E2をサーバとする場合は，指定できるユーザ名とパスワードの規則はXDM/RD E2の規則に従います。

PDCLTAPNAME

実行するUAPの識別名称

○

○

用語の差異。

PDCLTLANG

文字コード種別

×

△

XDM/RD E2をサーバとする場合は，SJISとUJISだけ指定できます。

PDLANG

UAP実行時の文字コード種別

×

×

−

PDDBLOG

UAP実行時のログの取得方式

×

×

XDM/RD E2をサーバとする場合にUAP実行時のログの取得方式を設定するには，DBコネクションサーバのサーバ空間起動制御文のJOURNAL句でジャーナル取得方法の設定をしてください。

PDEXWARN

拡張警告事象返却の要否

○

○

用語の差異。

SQLコードの差異。

PDSUBSTRLEN

1文字を表現する最大バイト数を指定

×

×

−

PDCLTCNVMODE

サーバクライアント間での文字コード変換指定

×

×

XDM/RD E2をサーバとする場合は，XDM/RD E2が文字コードを判定して自動的に文字コード変換を実行します。

PDCLTGAIJIDLL

ユーザ定義外字変換DLLファイル

×

×

XDM/RD E2をサーバとする場合に外字変換をするには，XDM/RD E2のRD環境定義文のCONVERT OPTION句で外字変換マッピング定義の指定をしてください。

PDCLTGAIJIFUNC

ユーザ定義外字変換関数名

×

×

−

PDCLTCNVUOCLIB

UOCのライブラリファイル名

×

×

−

PDCLTCNVUOCFUNC

UOCの文字コード変換関数名

×

×

−

PDCLTCNVBYTERATIO

UOCによる文字コード変換時の，1文字当たりのバイト数の比率

×

×

−

PDCLTGRP

クライアントグループ名称

×

×

−

PDAUTORECONNECT

自動再接続機能の有無

○

○

−

PDRCCOUNT

自動再接続機能でのCONNECTリトライ回数

◎

◎

−

PDRCINTERVAL

自動再接続機能でのCONNECTリトライ間隔

◎

◎

−

PDRCTIMING

自動再接続機能での再接続契機を指定する

◎

◎

−

PDAUTHTYPE

HiRDBクライアントがサーバへ接続するときの認証方式を指定する

×

×

−

PDUAPENVFILE

UAP環境定義ファイル名称

×

×

−

PDDBBUFLRU

UAPがアクセスしたページをグローバルバッファにキャッシュするときの処理に，LRU方式を適用するかどうかを指定する

×

×

−

PDHATRNQUEUING

トランザクションキューイング機能の各クライアントの使用有無を指定する

×

×

−

PDCLTBINDLOOPBACKADDR

HiRDBサーバとの通信で使用する受信ポートの生成時，ループバックアドレスでbind()するかどうかを指定する

×

×

−

PDEXTDECCHECK

外部10進項目の入力データのチェック有無を指定する

◎

◎

−

PDDEFAULTOPTION

クライアント環境定義およびプリプロセスオプションについて，省略時の動作を指定する

◎

◎

−

PDIPCFILEDIR

サーバ接続時に通信情報ファイルを格納するディレクトリ

×

×

−

PDSOCKETCRYPTO

HiRDBクライアントとHiRDBサーバ間の通信を暗号化するかどうかを指定する

×

×

−

PDASTHOST

HiRDB Control Manager - Agentのホスト名

×

×

−

PDASTPORT

HiRDB Control Manager - Agentのポート番号

×

×

−

PDSYSTEMID

HiRDBサーバのシステムID

×

×

−

PDASTUSER

コマンド実行ユーザ名／パスワード

×

×

−

PDCMDWAITTIME

コマンド実行時のクライアントの最大待ち時間

×

×

−

PDCMDTRACE

コマンドトレースファイルのサイズ

×

×

−

PDIPC

サーバとクライアントが同一ホストに存在する場合の，プロセス間通信の方法の指定

×

×

−

PDSENDMEMSIZE

クライアント側データ送信用メモリサイズ

×

×

−

PDRECVMEMSIZE

クライアント側データ受信用メモリサイズ

×

×

−

PDCWAITTIME

クライアントの最大待ち時間

○

○

用語の差異。

PDSWAITTIME

サーバの最大待ち時間

×

×

個別には該当する機能はありません。DBコネクションサーバのコントロール空間起動制御文のSVINTERVAL句で最大サーバ処理間隔監視時間を設定することで代用できます。

PDSWATCHTIME

トランザクション開始までのサーバ監視時間

×

×

PDCWAITTIMEWRNPNT

SQL実行時間警告出力契機とするクライアントの最大待ち時間に対する比率

×

×

−

PDKALVL

パケット送信機能の使用有無

×

×

−

PDKATIME

パケットの送信間隔

×

×

−

PDTIMEDOUTRETRY

CONNECTシステムコールでETIMEDOUTエラーが発生した場合のCONNECTリトライ回数

×

×

−

PDCONREFRCOUNT

CONNECTシステムコールでECONNREFUSEDエラーが発生した場合のCONNECTリトライ回数

×

×

−

PDCONREFRINTERVAL

CONNECTシステムコールでECONNREFUSEDエラーが発生した場合のCONNECTリトライ間隔

×

×

−

PDNBLOCKWAITTIME

ノンブロックモードでのコネクション確立監視時間

×

△

Windows版HiRDBクライアントを使用する場合は指定できません。

PDCONNECTWAITTIME

HiRDBサーバ接続時のHiRDBクライアントの最大待ち時間

×

×

−

PDCLTPATH

トレースファイル格納ディレクトリ

◎

◎

−

PDSQLTRACE

SQLトレースファイルのサイズ

◎

◎

−

PDUAPERLOG

クライアントエラーログファイルのサイズ

×

◎

−

PDERRSKIPCODE

クライアントエラーログトレースに出力を抑止するSQLコードの設定

×

◎

−

PDPRMTRC

SQLトレース情報へのパラメタ情報の出力有無

◎

◎

−

PDPRMTRCSIZE

SQLトレース情報にパラメタ情報を出力する場合のパラメタ情報の最大データ長

◎

◎

−

PDTRCMODE

トラブルシュート情報出力の設定

×

◎

−

PDUAPREPLVL

UAP統計レポートの出力情報レベル

△

△

XDM/RD E2をサーバとする場合は，SQLトレース情報だけが出力の対象となります。

PDREPPATH

統計レポートの格納ディレクトリ

○

○

XDM/RD E2をサーバとする場合は，SQLトレース情報だけが出力の対象となります。

PDTRCPATH

動的SQLトレースファイルの格納ディレクトリ

◎

◎

−

PDSQLTRCOPENMODE

SQLトレースファイルのオープン設定

◎

◎

−

PDSQLTEXTSIZE

SQLトレースに出力するSQL文のサイズ

◎

◎

−

PDSQLEXECTIME

SQLトレースに出力するSQL実行時間の出力有無

×

◎

−

PDRCTRACE

UAPの再接続トレースを出力するファイルのサイズ

◎

×

−

PDWRTLNPATH

WRITE LINE文の値式の値を出力するファイルの格納先ディレクトリ

◎

◎

XDM/RD E2のバージョンが11-00以降の場合に有効となります。

PDWRTLNFILSZ

WRITE LINE文の値式の値を出力するファイルの最大サイズ

○

○

XDM/RD E2のバージョンが11-00以降の場合に有効となります。

PDWRTLNCOMSZ

クライアントから実行要求したSQLで出力されるWRITE LINE文の値式の値の合計長

◎

◎

XDM/RD E2のバージョンが11-00以降の場合に有効となります。

PDUAPEXERLOGUSE

拡張SQLエラー情報出力機能を使用するかどうかを指定する

×

×

−

PDUAPEXERLOGPRMSZ

パラメタ情報の最大データ長

×

×

−

PDDNDPTRACE

ADO.NET 2.0に対応したHiRDBデータプロバイダ for .NET Frameworkで出力するメソッドトレースのファイルサイズ

×

×

−

PDSQLTRCFMT

SQLトレースの出力形式を指定する

◎

◎

−

PDVWOPTMODE

アクセスパス情報取得モード

×

×

−

PDTAAPINFPATH

HiRDB SQL Tuning Advisor用アクセスパス情報ファイルの出力先を指定

×

×

−

PDTAAPINFMODE

HiRDB SQL Tuning Advisor用アクセスパス情報ファイルのファイル名称形式を指定

×

×

−

PDTAAPINFSIZE

HiRDB SQL Tuning Advisor用アクセスパス情報ファイルの最大サイズを指定

×

×

−

PDSTJTRNOUT

UAPに関する統計情報のトランザクションごとの出力有無

×

×

−

PDLOCKLIMIT

ユーザ当たりの最大排他資源要求数

×

×

XDM/RD E2をサーバとする場合に最大排他資源要求数を設定するには，DBコネクションサーバのサーバ空間起動制御文のENQNUMLIMIT句で排他資源管理テーブル使用上限値を設定してください。

PDDLKPRIO

デッドロックプライオリティ値

×

×

XDM/RD E2をサーバとする場合にデッドロックプライオリティ値を設定するには，DBコネクションサーバのコントロール空間起動制御文，またはサーバ空間起動制御文のDEAD LOCK PRIORITY句でデッドロックプライオリティ値を設定してください。

PDLOCKSKIP

無排他条件判定の使用有無

×

×

−

PDFORUPDATEEXLOCK

FOR UPDATE句の指定時にWITH EXCLUSIVE LOCKを仮定するかどうかを指定する

×

×

−

PDISLLVL

データ保証レベル

×

×

XDM/RD E2をサーバとする場合にデータ保証レベルを設定するには，DBコネクションサーバのコントロール空間のDBMSオプション制御文，またはサーバ空間起動制御文のISOLATION LEVEL句でデータ保証レベルを設定してください。

PDSQLOPTLVL

SQL最適化オプション

×

×

XDM/RD E2をサーバとする場合にSQL最適化オプションを設定するには，DBコネクションサーバのコントロール空間のDBMSオプション制御文，またはサーバ空間起動制御文のOPTIMIZE LEVEL句で最適化レベルを設定してください。

PDADDITIONALOPTLVL

SQL拡張最適化オプション指定

×

×

−

PDHASHTBLSIZE

ハッシュジョイン，副問合せのハッシュ実行適用時のハッシュ表サイズ

×

×

−

PDDFLNVAL

ナル値の既定値設定

×

×

XDM/RD E2をサーバとする場合にナル値の規定値設定を設定するには，XDM/RD E2のRD環境定義文のDEFAUTL NULL VALUE OPTION句でナル値の既定値を設定してください。

PDAGGR

グループ分けのときに発生するグループ数

×

×

−

PDCMMTBFDDL

定義系SQL実行前の自動コミット要否

×

×

XDM/RD E2はトランザクション中でも定義系SQLを実行できます。ただし，定義系SQL実行前ではなく，定義系SQL実行後のコミットとなります。

PDPRPCRCLS

PREPARE文実行時のカーソルの自動クローズ機能の有無

◎

◎

XDM/RD E2のバージョンが11-00以降の場合に有効となります。

PDAUTOCONNECT

オートコネクト機能の有無

×

◎

−

PDDDLDEAPRPEXE

定義変更のための前処理結果無効化を許可するかどうかを指定する

×

×

−

PDDDLDEAPRP

ホールダブルカーソルで使用している表の定義変更を許可するかどうかを指定する

×

×

−

PDLCKWAITTIME

排他要求が待ち状態になってから，解除されるまでを監視する最大時間を指定する

×

×

−

PDCURSORLVL

カーソルの自動オープン・クローズ指定

×

◎

Type4 JDBCドライバを使用する場合，指定値は常に2となります。

PDDELRSVWDFILE

SQL予約語削除ファイル名

×

×

−

PDCALCMDWAITTIME

CALL COMMAND文によってコマンドまたはユティリティを開始してから終了するまでの，HiRDBクライアントの最大待ち時間を指定する

×

×

−

PDSTANDARDSQLSTATE

SQLSTATEの値を詳細に出力するかどうかを指定する

×

×

−

PDBLKF

ブロック転送の行数

○

○

用語の差異。

PDBINARYBLKF

定義長が32,001以上であるBINARY型選択式を問合せ指定に含む検索で，ブロック転送を適用可能にするかどうかを指定する

×

×

−

PDBLKBUFFSIZE

ブロック転送用クライアント・サーバ間の通信バッファサイズ

×

×

−

PDBINDRETRYCOUNT

UNIXドメインでのbindシステムコールでEADDRINUSEが返却された場合のリトライ回数を指定する

×

×

−

PDBINDRETRYINTERVAL

UNIXドメインでのbindシステムコールでEADDRINUSEが返却された場合のリトライ間隔を指定する

×

×

−

PDDBACCS

インナレプリカグループのアクセス世代番号指定

×

×

−

PDDBORGUAP

更新可能なオンライン再編成を使用するUAPを実行可能にするかどうかを指定する

×

×

−

PDSPACELVL

全角空白変換レベル

×

×

XDM/RD E2をサーバとする場合に空白変換方法を指定するときは，XDM/RD E2のRD環境定義文のKEIS CODE SPACE LEVEL句でデータの変換レベルを指定してください。

PDCLTRDNODE

RDノード名称

□

□

−

PDTP1SERVICE

XDM/RD E2にOpenTP1のサービス名称を通知するかどうかを指定する

×

□

−

PDRDCLTCODE

XDM/RD E2接続機能でのクライアント側の文字コード

×

□

−

PDCNSTRNTNAME

制約名定義の指定位置

×

×

−

PDTMPTBLRDAREA

一時表および一時インデクスを格納するRDエリアの候補を指定する

×

×

−

PDBESCONHOLD

バックエンドサーバ接続保持機能の使用有無

×

×

−

PDBESCONHTI

バックエンドサーバ接続保持有効トランザクション間隔

×

×

−

PDODBSTATCACHE

SQLColumns，SQLStatistics関数のキャッシュ

×

◎

−

PDODBESCAPE

パターン文字列に対してのESCAPE文字の指定有無

×

○

文字コードの差異。

オプション指定方法の差異。

PDGDATAOPT

SQLGetData関数でデータ取得済みの列に，再度繰り返してデータを取得できるようにする

×

◎

−

PDODBLOCATOR

DBアクセス部品を使用して，BLOB型，またはBINARY型の列を検索する場合に，位置付け子機能を使用してデータを分割取得するかどうかを指定する

×

◎

−

PDODBSPLITSIZE

PDODBLOCATOR指定時のDBアクセス部品での分割取得のサイズ

×

◎

−

PDODBCWRNSKIP

ODBC，OLE DB接続時のワーニングを回避するかどうかを指定する

×

◎

−

PDJETCOMPATIBLE

ODBC3.5ドライバ使用時のMicrosoft Access互換モード指定

◎

◎

−

PDODBGINFOSUPPRESS

ODBC関数のSQLGetInfoW()関数使用時に発生するエラーを回避するために指定する

×

◎

−

PDODBSTANDARDARGSIZE

64ビットモードで動作するODBC3.5ドライバについて，一部のODBC関数の引数に指定されたポインタが指すバッファを4バイト整数として扱うか，8バイト整数として扱うかを指定する

×

◎

−

PDODBSTANDARDSQLSTATE

ODBC3.5ドライバからODBC規格に準拠したSQLSTATEを返却するかどうかを指定する

×

×

−

PDODBSTANDARDDESCCOL

ODBC3.5ドライバでのSQLDescribeCol関数の実行時に，ODBC規格に準拠した値を返却するかどうかを指定する

×

◎

−

PDODBSTANDARDGTYPEINFO

ODBC3.5ドライバでのSQLGetTypeInfo関数実行時に，ODBC規格に準拠した値を返却するかどうかを指定する

×

◎

−

PDPLGIXMK

プラグインインデクス遅延一括作成指定

×

×

−

PDPLUGINNSUB※

詳細については，各プラグインのマニュアルを参照のこと

×

×

−

PDPLGPFSZ

遅延一括作成用インデクス情報ファイルの初期容量

×

×

−

PDPLGPFSZEXP

遅延一括作成用インデクス情報ファイルの増分値

×

×

−

PDHSICOPTIONS

HSICを使用する際，クライアント・サーバ間の電文に設定する項目を指定する

×

×

−

PDJDBFILEDIR

Type4 JDBCドライバでのExceptionトレースログのログファイルおよび不正電文トレースファイルの出力先

◎

×

−

PDJDBFILEOUTNUM

Type4 JDBCドライバでのExceptionトレースログのログファイルへの出力数

◎

×

−

PDJDBONMEMNUM

Type4 JDBCドライバでのExceptionトレースログのメモリ内取得情報数

◎

×

−

PDJDBTRACELEVEL

Type4 JDBCドライバでのExceptionトレースログのトレース取得レベル

◎

×

−

PDJDBFILESIZE

Type4 JDBCドライバでのExceptionトレースログのログファイルの最大サイズ

◎

×

−

PDDNDPCOMPATIBLE

ADO.NET 2.0に対応したHiRDBデータプロバイダ for .NET Frameworkのメソッドおよびプロパティが.NET Frameworkの規格に準拠した動作とするか，HiRDB独自の動作とするかを指定する。

×

×

HiRDBデータプロバイダ for .NET FrameworkはXDM/RD E2接続機能未サポート。

（凡例）

◎：

サーバとしてHiRDBを使用する場合とXDM/RD E2を使用する場合で，仕様の差はありません。

○：

サーバとしてHiRDBを使用する場合とXDM/RD E2を使用する場合で，機能的な仕様の差はありません。ただし，用語や製品名などに差異があります。

△：

サーバとしてHiRDBを使用する場合とXDM/RD E2を使用する場合で，指定できる値が異なります。

×：

HiRDB接続専用の環境変数です。サーバとしてXDM/RD E2を使用する場合は指定しても無視されますが，環境変数の文法チェックは行われます。

□：

XDM/RD E2接続専用の環境変数です。サーバとしてHiRDBを使用する場合は指定しても無視されますが，環境変数の文法チェックは行われます。

−：

特にありません。

注※

プラグイン用に設定する環境変数です。この環境変数の設定内容については，クライアントライブラリではチェックされません。また，SQLトレースにも情報は出力されません。

4.4.2　クライアント環境定義の設定内容

ここでは，XDM/RD E2接続機能使用時の環境変数（表「XDM/RD E2接続機能使用時の環境変数の差異」の◎，○，△，および□の項目）の設定内容について説明します。

(1)　システム構成に関する環境変数

システム構成に関する環境変数には，XDM/RD E2と接続するときに必要な情報を指定します。

PDHOST=DBコネクションサーバのホスト名〔，予備系のホスト名〕

〜<識別子>

接続するDBコネクションサーバのホスト名を指定します。

また，ホスト名はIPアドレスで指定できます。

IPアドレスは，バイトごとにピリオド（．）で区切られた10進数で次の形式で指定します。

IPアドレスの形式： NNN.OOO.PPP.QQQ

通常は初めに指定したホスト名に対して接続します。初めに指定したホスト名に対して接続できなかった場合に，予備系のホスト名に対して接続します。

PDNAMEPORT=DBコネクションサーバのポート番号

〜<符号なし整数>((5001〜65535))《20000》

接続するDBコネクションサーバのポート番号を指定します。ポート番号には，DBコネクションサーバのコントロール空間起動制御文およびサーバ空間起動制御文のSCHEDULENOオペランドで指定するサーバスケジュール番号を指定します。なお，SCHEDULENOオペランドを省略した場合はサーバスケジュール番号（ポート番号）に40179が仮定されています。

PDSRVTYPE=VOS3

サーバの種別を指定します。

XDM/RD E2をサーバとする場合は，PDSRVTYPEにVOS3を必ず指定してください。

(2)　OLTP下のX/Openに準拠したAPIを使用するクライアントの環境変数

PDXAMODE=｛0｜1｝

OLTPシステムと連携する場合に，トランザクションの移行機能を使用するかどうかを指定します。

0：

トランザクションの移行機能を使用しません。

1：

トランザクションの移行機能を使用します。

XDM/RD E2をサーバとする場合は，1は指定できません。

PDXARCVWTIME=トランザクション回復不可時の待ち合わせ時間

〜<符号なし整数>((0〜270))《2》(単位：秒)

XDM/RD E2をサーバとする場合，このオペランドは指定できません。

PDXATRCFILEMODE=｛LUMP｜SEPARATE｝

X/Openに従ったAPIを使用した接続形態での，各種トレースファイル名の形式を指定します。X/Openに従ったAPIを使用した接続形態以外の場合，PDXATRCFILEMODEの指定は無視されます。

LUMP：

各種トレースファイル名に実行プロセスIDを付けないで出力します。

UAPが非常駐で何回も実行されて，プロセスIDがそのつど変わる場合には，LUMPを指定することをお勧めします。LUMPを指定した場合，非常駐のUAPを実行するたびに各種トレースファイルが増えて，OSや他プログラムの動作が不安定になることを防げます。

なお，LUMPを指定した場合，トレース情報の出力先が限定されるため，トレース出力サイズを大きくする必要があります。また，トレース出力時に別プロセスの出力と競合するため，処理時間が長くなることがあります。

SEPARATE：

各種トレースファイル名に実行プロセスIDを付けて出力します。

UAPが常駐している場合は，SEPARATEを指定することをお勧めします。

HiRDB_PDHOST=DBコネクションサーバのホスト名〔，予備系のホスト名〕

〜<識別子>

このオペランドに指定した値が，環境変数PDHOSTの設定値に置き換わります。指定方法については，PDHOSTを参照してください。

HiRDB_PDNAMEPORT=DBコネクションサーバのポート番号

〜<符号なし整数>((5001〜65535))《20000》

このオペランドに指定した値が，環境変数PDNAMEPORTの設定値に置き換わります。指定方法については，PDNAMEPORTを参照してください。

HiRDB_PDTMID=OLTP識別子

〜<識別子>((4文字))

複数のOLTPからX/Openに準拠したAPIを使用して一つのXDM/RD E2システムをアクセスする場合，それぞれのOLTPにユニークな識別子を指定してください。この環境変数に指定した値が，PDTMIDの設定値に置き換わります。

なお，この環境変数の指定で次に示す条件のどちらかに該当する場合，どのOLTPからのトランザクションであるかが識別されないため，OLTP内でシステムダウンやトランザクション異常が発生すると，トランザクション決着の同期が合わなくなります。

複数のOLTPからアクセスする運用形態で，この環境変数を省略し，PDTMIDの指定も省略した場合

複数のOLTPからアクセスする運用形態で，OLTPごとに指定する識別子がユニークでない場合

HiRDB_PDXAMODE=｛0｜1｝

このオペランドに指定した値が，環境変数PDXAMODEの設定値に置き換わります。指定方法については，PDXAMODEを参照してください。

(3)　ユーザ実行環境に関する環境変数

PDUSER=ユーザ名〔/パスワード〕

〜《パスワードなしのカレントユーザ名》

XDM/RD E2と接続するときの認可識別子(ユーザ名)とパスワードを指定します。ただし，CONNECT文で認可識別子(ユーザ名)を指定した場合は，CONNECT文で指定した値が優先されます。

パスワードの指定が必要ない場合は，パスワードを省略できます。

ユーザ名，パスワードに指定した文字列は，大文字と小文字が区別されます。

Windows環境の場合，この環境変数は省略できません。ただし，パスワードは省略できます。

OpenTP1下のUAPをクライアントとする運用形態の場合，「’ユーザ名/パスワード’」の形式で指定します。

PDCLTAPNAME=実行するUAPの識別名称

〜<文字列>((30文字))《unknown》

XDM/RD E2に対してアクセスするUAPの識別情報（UAP識別子）を指定します。これは，どのUAPを実行しているのかを認識するための名称です。

XDM/RD E2のオン中UAPトレースで出力される情報や，SQLトレースファイルの情報などのUAPの名称に，この環境変数で指定した名称が表示されます。

PDCLTLANG=｛SJIS｜UJIS｝

プリプロセサが処理する，UAPの記述に使われている文字コード種別を指定します。

XDM/RD E2をサーバとする場合は，XDM/RD E2のバージョンが09-01以降の時に，SJIS（シフトJIS漢字）とUJIS（日本語EUC）が使用できます。それ以外のバージョンの時は，SJISしか使用できません。

使用できる値以外を設定した場合は，エラーとなります。

Linuxは，日本語EUCしか使えないため，サーバとしてXDM/RD E2を使用する場合は，XDM/RD E2のバージョンは09-01以降にする必要があります。

UAPのプリプロセス時，文字コード種別は次のように判断されます。

PDCLTLANG

クライアントのOS

AIX

Linux

Windows

SJIS

Ja_JP

エラー

ja_JP.

SJIS

UJIS

ja_JP

ja_JP.

eucJP

エラー

設定なし※

Ja_JP

ja_JP.

eucJP

ja_JP.

SJIS

注※

プリプロセス時，環境変数LANGに文字コードを設定している場合は，その文字コードが仮定されます（ただし，クライアントがWindowsの場合を除きます）。

PDLANG=｛UTF-8｜SJIS｜CHINESE｝

UAP実行時の文字コード種別を指定します。また，HiRDBクライアントがLinux版でSJISを使用する場合，SJISを指定します。省略した場合，環境変数LANGの指定値が仮定されます。

UTF-8：

文字コード種別にUnicodeを指定します。

SJIS：

文字コード種別にシフトJIS漢字コードを指定します。

CHINESE：

文字コード種別にEUC中国語漢字コードを指定します。

PDEXWARN=｛YES｜NO｝

XDM/RD E2からの拡張警告事象の返却を許可するかしないかを指定します。

拡張警告事象とは，＋100，＋110以外の正の値のSQLCODEが返却されることを示します。

この環境変数にYESを指定した場合，SQLCODEが0，＋100，または＋110以外をすべてエラーとして処理しているUAP（ストアドプロシジャを含む）は，エラーの判定方法を変更する必要があります。SQLのエラーの判定と処置については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

YES：

拡張警告事象の返却を許可します。

NO：

拡張警告事象の返却を許可しません。XDM/RD E2で＋100，＋110以外の正のSQLCODEを検知した場合，UAPにはSQLCODE=0で返却されます。

このオペランドを省略すると，NOが仮定されます。

したがって，このようなUAPの作りでない場合は，PDEXWARNにYESを指定することをお勧めします。

PDAUTORECONNECT=｛YES｜NO｝

自動再接続機能を使用するかどうかを指定します。

再接続する場合の動作は，次に示すクライアント環境定義で設定できます。

CONNECTリトライ回数：PDRCCOUNT

CONNECTリトライ間隔：PDRCINTERVAL

再接続契機：PDRCTIMING

CONNECT以外のSQLで自動再接続機能が動作している間もPDCWAITTIMEの時間監視に入ります。PDCWAITTIMEの値を超えた場合，自動再接続処理を打ち切ります。

自動再接続が失敗した場合は，自動再接続が動作する要因となったエラーをアプリケーションへ返します。

XDM/RD E2のバージョンが10-02以前の場合，XDM/RD E2接続機能を使用すると，SQLのCONNECT文のときにだけ自動再接続機能が有効となります。XDM/RD E2のバージョンが11-00以降の場合，SQLのCONNECT文以外でも自動再接続機能が有効になります。ただし，自動再接続機能が適用できないことがあります。詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−運用編−」の「HiRDBクライアント接続機能に関する留意事項」を参照してください。

X/Openに準拠したAPIを使用してアクセスしているアプリケーションでは指定を無視し，常にNOを仮定します。

YES：

自動再接続機能を使用します。

サーバプロセスダウン，系切り替え，ネットワーク障害などの要因でHiRDBサーバとの接続が切れた場合に，自動的に再接続できます。

オンライン中のシステム構成変更，プログラムメンテナンス機能を使用する場合，YESを設定することで，アプリケーションへエラーを返すことなく処理を続行できます。

NO：

自動再接続機能を使用しません。

PDRCCOUNT=自動再接続機能でのCONNECTリトライ回数　

〜〈符号なし整数〉((1〜200)) 《5》

自動再接続機能で再接続する場合のCONNECTのリトライ回数を指定します。PDAUTORECONNECTにYESを設定したときだけ有効となります。

PDRCINTERVAL=自動再接続機能でのCONNECTリトライ間隔　

〜〈符号なし整数〉((1〜600)) 《5》（単位：秒）

自動再接続機能で再接続する場合のCONNECTのリトライ間隔を秒単位で指定します。PDAUTORECONNECTにYESを設定したときだけ有効となります。

PDRCTIMING=｛ALL｜再接続契機［，再接続契機［，再接続契機］］｝

自動再接続機能で再接続する場合の再接続契機を指定します。

この環境定義の指定方法については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

ALL：

すべての契機で自動再接続を適用します。

再接続契機：

次のどれか1つ，または複数を組み合わせて指定してください。

CNCT

CONNECT文を実行した場合で接続障害を検知したときに，自動再接続を適用します。

NOTRN

トランザクション未発生で実行したSQLが接続障害を検知した場合に，自動再接続を適用します。

TRN

トランザクション発生中に実行したSQLが接続障害でエラーとなった後，CONNECT文を実行しないでSQLを実行した場合に，自動再接続を適用します。

PDDEFAULTOPTION=｛RECOM｜V0904｝

クライアント環境定義およびプリプロセスオプションについて，省略時の動作を指定します。通常は，この環境変数を指定する必要はありません。互換モードを適用したい場合に，指定してください。

バージョンによって，省略値が異なるクライアント環境定義およびプリプロセスのオプションについては，マニュアル「HiRDB UAP開発ガイド」の「バージョン，リビジョンによるクライアント環境定義及びプリプロセスオプションの変更点」を参照してください。

RECOM：

推奨モードを適用します。

V0904：

0904互換モードを適用します。

(4)　システム監視に関する環境変数

PDCWAITTIME=クライアントの最大待ち時間

〜<符号なし整数>((0〜65535))《0》（単位：秒）

HiRDBクライアントからXDM/RD E2へ要求をしてから応答があるまでのHiRDBクライアントの最大待ち時間を，秒単位で指定します。

0を指定した場合，HiRDBクライアントはXDM/RD E2からの応答があるまで待ち続けます。

留意点

最大待ち時間を経過してもXDM/RD E2から応答がない場合は，UAPにエラーリターンします。このときXDM/RD E2との接続は切り離され，トランザクション処理中の場合はロールバックされます。

(5)　HiRDBの通信処理に関する環境変数

PDNBLOCKWAITTIME=ノンブロックモードでのコネクション確立監視時間

〜<符号なし整数>((0〜120))《0》(単位：秒)

XDM/RD E2とHiRDBクライアント間でコネクション接続完了を監視する場合，ノンブロックモード時のコネクション確立監視時間を指定します。

XDM/RD E2をサーバとするときは，UNIX版HiRDBクライアントを使用時だけ指定できます。Windows版HiRDBクライアント使用時は，指定しても無効となります。

この環境変数に1以上を指定すると，XDM/RD E2とHiRDBクライアント間の通信をノンブロック通信にして，connect()システムコールの終了を監視します。これをノンブロックモードといいます。0を指定したときは，OSのタイムアウト時間までコネクション接続完了を待ちます。これをブロックモードといいます。

この環境変数の適用基準および指定値の見積もり方法については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(6)　トラブルシュートに関する環境変数

PDCLTPATH=トレースファイル格納ディレクトリ

〜<パス名>《カレントディレクトリのパス名》

HiRDBクライアントが作成するSQLトレースファイルおよびクライアントエラーログファイルの格納先ディレクトリを指定します。

PDSQLTRACE=SQLトレースファイルのサイズ

〜<符号なし整数>((0，4096〜2000000000))（単位：バイト）

UAPのSQLトレースを出力するSQLトレースファイルのサイズを，バイト単位で指定します。

0を指定した場合はファイルの最大サイズとなり，最大サイズを超えるとSQLトレースは出力されません。4,096〜2,000,000,000を指定した場合は指定値のサイズとなり，指定値のサイズを超えると出力先が切り替わります。省略した場合は，SQLトレースを出力しません。

SQLトレース機能については，「SQLトレース機能」を参照してください。

ほかの環境変数との関係

SQLトレースは，PDCLTPATHで指定したディレクトリに出力されます。PDCLTPATHの指定がない場合，UAPを起動したときのカレントディレクトリ（OpenTP1から起動されるUAPの場合，OSがUNIXのときは$DCDIR/tmp/home/サーバ名xxのディレクトリ，OSがWindowsのときは%DCDIR%¥tmp¥home¥サーバ名xxのディレクトリ）の下に出力されます。

見積もり方法

SQLトレースファイルのサイズは，取得したいSQL文の数から求めてください。取得したいSQL文の，それぞれの「1行（80バイト）＋SQL文のサイズ」を求めて，すべてを合計した値を指定値の目安としてください。

PDUAPERLOG=クライアントエラーログファイルのサイズ

〜<符号なし整数>((0，4096〜2000000000))《4096》（単位：バイト）

UAPのエラーログを出力するクライアントエラーログファイルのサイズを，バイト単位で指定します。

0を指定した場合はファイルの最大サイズとなり，最大サイズを超えるとクライアントエラーログは出力されません。4,096〜2,000,000,000を指定した場合は指定値のサイズとなり，指定値のサイズを超えると出力先が切り替わります。

省略時のファイルサイズは4,096となりますが，PDUAPEXERLOGUSEにYESを指定している場合，またはシステム定義のpd_uap_exerre_log_useオペランドにYESを指定している場合，ファイルサイズは65,536となります。

クライアントエラーログ機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

ほかの環境変数との関係

クライアントエラーログは，PDCLTPATHで指定したディレクトリに出力されます。PDCLTPATHの指定がない場合，UAPを起動したときのカレントディレクトリ（OpenTP1から起動されるUAPの場合，OSがUNIXのときは$DCDIR/tmp/home/サーバ名xxのディレクトリ，OSがWindowsのときは%DCDIR%¥tmp¥home¥サーバ名xxのディレクトリ）の下に出力されます。

PDERRSKIPCODE=SQLCODE〔，SQLCODE〕…

クライアントエラーログへのメッセージ出力を抑止するSQLCODEを指定します。SQLCODEは最大10個指定できます。

例えば，SQLCODE-901と-917を抑止する場合は，次のように指定します。

 PDERRSKIPCODE=-901,-917

利点

UAPの構造によっては，SQLの処理で必然的にエラーが発生することがあります。通常の業務でこのようなエラーが頻繁に発生すると，ファイルシステムを圧迫してしまうおそれがあります。特に，X/Openに従ったAPIを使用するUAPの場合，UAPごとにクライアントエラーログファイルを二つ作成してしまいます。この環境変数を指定すると，特定のエラーについてはメッセージの出力を抑止できるので，ファイルシステムへの負荷を軽減できます。

適用基準

次の条件をすべて満たす場合に適用してください。

UAPの構造上エラーが頻繁に発生する。

あらかじめ障害の原因が特定できて，その要因を調査する必要がない。

この環境変数を指定すると，不慮の障害が発生したときにその原因を調査できなくなります。適用する場合には注意してください。

PDPRMTRC=｛YES｜NO｜IN｜OUT｜INOUT｝

SQLトレースにパラメタ情報，および検索データ情報を出力するかどうかを指定します。出力内容については，「SQLトレース機能」を参照してください。

YES：

SQLトレースに入力用パラメタ情報を出力します。YESを指定した場合，検索データ情報と入力パラメタを出力します。

NO：

SQLトレースにパラメタ情報を出力しません。

IN：

SQLトレースに入力用パラメタ情報を出力します。CALL文のINパラメタとINOUTパラメタ※も含みます。

OUT：

SQLトレースに出力用パラメタ情報，および検索データ情報を出力します。CALL文のOUTパラメタとINOUTパラメタ※も含みます。

INOUT：

SQLトレースに入力用パラメタ情報，出力用パラメタ情報，および検索データ情報を出力します。CALL文のINOUTパラメタ※は2回出力します。

注※

CALL文のINOUTパラメタの情報は，出力データだけになります。

PDPRMTRCSIZE=SQLトレースに出力するパラメタ情報の最大データ長

〜<符号なし整数>((4〜32008))《256》（単位：バイト）

SQLトレースに出力するパラメタ情報および検索データの最大データ長を指定します。可変長文字列型データ，BLOB型データ，BINARY型データの場合は，文字列長領域もデータ長に含みます。

この指定は，PDPRMTRCにNO以外を指定した場合だけ，有効になります。

この環境変数の指定値を大きくすると，出力する情報量が増えます。そのため，SQLトレースファイルのサイズ（PDSQLTRACEの指定値）も大きくする必要があります。

PDTRCMODE=｛ERR｜NONE｝

SQLトレース以外のトラブルシュート情報（pderr*.trcの情報）を出力するかどうかを指定します。

ERR：

pderr*.trcの情報を出力します。

NONE：

pderr*.trcの情報を出力しません。

PDUAPREPLVL=｛〔s〕〔u〕〔p〕〔r〕｜a｝

sまたはaを指定します。

この環境変数を指定する場合は，PDREPPATHを指定してください。

s：SQLトレース情報を出力します。

u：指定しても無視されます。

p：指定しても無視されます。

r：指定しても無視されます。

a：sを指定した場合と同様です。

s，u，pおよびrを組み合わせて指定できます。suprと指定した場合は，aと同じ意味になります。u，p，r，up，ur，pr，およびuprを指定した場合，SQLトレース情報は出力されません。sおよびaを指定した場合だけSQLトレース情報が出力されます。

PDREPPATH=SQLトレースファイルの格納ディレクトリ　〜＜パス名＞

〜＜パス名＞

PDUAPREPLVLを指定する場合に，SQLトレースファイルを出力するディレクトリを指定します。出力ファイル名については，マニュアル「HiRDB UAP開発ガイド」の「SQLトレース機能」を参照してください。

PDTRCPATH=動的SQLトレースファイルの格納ディレクトリ

〜＜パス名＞((最大256バイト))

HiRDBクライアントが作成する動的SQLトレースファイルの格納先ディレクトリを指定します。トレース取得コマンド（pdtrcmgr）で動的SQLトレースファイルを取得する場合には，この環境変数を必ず指定してください。

ここで指定したディレクトリをpdtrcmgrで指定すると，次回のCONNECTから，指定したディレクトリにSQLトレースファイルが作成されます。

pdtrcmgrについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。ただし，XDM/RD E2をアクセスする場合，pdtrcmgrの-kオプションは指定しても無視されます。SQLトレースについては，マニュアル「HiRDB UAP開発ガイド」の「SQLトレース機能」を参照してください。

PDSQLTRCOPENMODE=｛CNCT｜SQL｝

SQLトレースファイルのオープンモードを指定します。

CNCT：

CONNECT，DISCONNECT単位にSQLトレースファイルをオープン，クローズして，トレース情報を出力します。CNCTを指定した場合，PDSQLTRCOPENMODEにSQLを指定するよりオーバヘッドが削減されるため，SQLトレースを出力するための時間が短縮できます。

なお，CNCTを指定した場合，SQLトレースファイルをオープンしたままで情報を書き込むため，正常にDISCONNECTできなかったときには，SQLトレース情報が欠落することがあります。

CNCTを指定する場合は，ほかのクライアント環境変数の指定が必要となります。必要となるクライアント環境変数については，マニュアル「HiRDB UAP開発ガイド」の「クライアント環境定義の設定内容」を参照してください。

SQL：

オペレーション単位（SQL単位）にSQLトレースファイルをオープン，クローズして，トレース情報を出力します。

PDSQLTEXTSIZE=SQL文のサイズ

〜＜符号なし整数＞((4096〜2000000))《4096》（単位：バイト）

SQLトレースに出力するSQL文のサイズを指定します。

アクセスパス取得時に省略した場合，4,096ではなく，2,000,000が仮定されます。

PDSQLEXECTIME=｛YES｜NO｝

SQLトレースにSQL実行時間を出力するかどうかを指定します。

YES：

SQL実行時間を出力します。

出力されるSQL実行時間の単位はマイクロ秒となります。SQLトレースに出力される値は，実行時間が24時間以上のものは正常に出力されません。

NO：

SQL実行時間を出力しません。

PDWRTLNPATH=WRITE LINE文の値式の値を出力するファイルの格納先ディレクトリ

〜＜パス名＞((最大256バイト))

WRITE LINE文の値式の値を出力する，ファイルの格納先ディレクトリを指定します。WRITE LINE文については，マニュアル「HiRDB SQLリファレンス」を参照してください。

この環境変数を省略した場合，PDCLTPATHで指定したディレクトリが仮定されます。

ファイルは，指定したディレクトリ（省略した場合はPDCLTPATHで指定したディレクトリ）に二つ作成されます。作成されるファイルは，X/Openに従がったAPI（TX_関数）の使用有無で異なります。作成されるファイル名を次に示します。

TX_関数を使用していない場合：

pdwrtln1.trc，およびpdwrtln2.trc

TX_関数を使用している場合：

pdwrtlnxxxxx-1.trc，およびpdwrtlnxxxxx-2.trc

xxxxx：UAP実行時のプロセスID

PDWRTLNFILSZ=WRITE LINE文の値式の値を出力するファイルの最大サイズ

〜<符号なし整数>((0，4096〜2000000000))（単位：バイト）

WRITE LINE文の値式の値を出力する，ファイルの最大サイズを指定します。

0を指定した場合のファイルの最大サイズは，OSで管理できる最大サイズとなります。省略した場合は，WRITE LINE文の値式の値は出力されません。また，FETCH文実行時は，WRITE LINE文の情報は出力されません。

PDWRTLNCOMSZ=クライアントから実行要求したSQLで出力されるWRITE LINE文の値式の値の合計長

〜＜符号なし整数＞((1024〜131072))《1024》（単位：バイト）

WRITE LINE文の値式の値の合計サイズを指定します。

WRITE LINE文の値式の値の合計サイズが，この環境変数の指定値を超えた場合，超えた分の情報は無視されます。また，この場合，次の行に「**PDWRTLNCOMSZover**」が出力されます。

PDSQLTRCFMT=｛1｜2｝

SQLトレースの出力形式を指定します。指定値によって出力ファイル名称が異なります。出力ファイル名称および指定値ごとの出力形式については，マニュアル「HiRDB UAP開発ガイド」の「SQLトレース機能」を参照してください。

出力形式2は，出力形式1よりも詳細情報を出力します。このため，通常は指定値を省略するか2を指定してください。

1：

出力形式1で出力します。

2：

出力形式2で出力します。

《注意事項》

HiRDB SQL Tuning Advisor 08-03以前を使用してSQLトレースの解析を行う場合，出力形式2には対応していないため1を指定してください。

(7)　SQLに関する環境変数

PDPRPCRCLS=｛YES｜NO｝

開いているカーソルで使用しているSQL識別子を再度PREPRARE文で使用する場合，開いているカーソルを自動的にクローズするかどうかを指定します。

この環境変数は，プリプロセス時に-Xeオプションを指定しない場合に有効となります。プリプロセスについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

YES：開いているカーソルを自動的にクローズします。

NO：開いているカーソルを自動的にクローズしません。

PDAUTOCONNECT=｛ON｜OFF｝

XDM/RD E2と接続していない状態でSQL文を実行した場合，自動的にCONNECTするかどうかを指定します。

ON：自動的にCONNECTしてからSQL文を実行します。

OFF：自動的にCONNECTしません。このときSQL文はエラーとなります。

XDM/RD E2と接続していない状態でSET SESSION AUTHORIZATION文を実行した場合，この環境変数の指定に関係なく常にエラーとなります。

UAPを開発する場合は，XDM/RD E2に正しくCONNECTしているかどうかを判断する必要があるため，この環境変数にはOFFを指定することをお勧めします。

(8)　ブロック転送機能に関する環境変数

PDBLKF=ブロック転送の行数

〜<符号なし整数>((1〜4096))《1》

XDM/RD E2からHiRDBクライアントに検索結果を転送するときの，1回の転送処理で送られる行数を指定します。

オペランドの値を大きく指定すると通信オーバヘッドが減り，検索時間を短縮できますが，その分メモリが余計に必要です。クライアント側に必要なメモリは次に示す計算式で求められます。VOS3側に必要なメモリはマニュアル「VOS3 データマネジメントシステム XDM E2 系 XDM/RD E2 使用の手引−システム作成・維持編−」の「HiRDBクライアント接続機能使用時のメモリ所要量」を参照してください。

計算式

864＋16×ａ＋(6×ａ＋ｂ)×ｃ　(単位：バイト)

ａ：SELECT句で指定する項目数

ｂ：１回の転送処理で出力されるデータ長の総和

ｃ：PDBLKFオペランドの指定値

(9)　XDM/RD E2接続機能専用の環境変数

PDCLTRDNODE=データベース識別子

〜<識別子>

接続するXDM/RD E2のデータベース識別子を指定します。

データベース識別子とは，XDMのサブシステム定義で指定するRDノード名称を示します。

PDTP1SERVICE=｛YES｜NO｝

XDM/RD E2にOpenTP1のサービス名称を通知するかどうかを指定します。サーバがHiRDBの場合，指定を無視します。

Windows版HiRDBクライアントライブラリでcltdll.dllを使用している場合，本機能は使用できません。pdcltm32.dll等ほかのHiRDBクライアントライブラリと再リンケージする必要があります。

YES：

OpenTP1のサービス名称をXDM/RD E2に通知します。

XDM/RD E2にサービス名称を通知することで，XDM/RD E2の統計情報がサービス単位に分析できるようになります。ただし，この場合，XDM/RD E2 09-01以降が必要となります。

OpenTP1を使用しない場合，およびOpenTP1のサービスではない場合（SUP等）はYESを指定してもXDM/RD E2にサービス名称は通知されません。

NO：

XDM/RD E2にサービス名称を通知しません。

PDRDCLTCODE=｛SJIS｜UTF-8｝

この環境変数は，Windows版クライアントの場合に有効となります。UNIX版クライアントの場合は指定しても無効となります。

XDM/RD E2接続機能使用時に，クライアントで使用する文字コード種別を指定します。

SJIS：

シフトJIS漢字コードを使用します。

UTF-8：

Unicode（UTF-8）を使用します。UTF-8を指定する場合，クライアント環境定義PDCLTCNVMODEにはNOUSEを指定するか，または省略してください。

《UTF-8指定時の規則》

埋込み変数で扱う入出力データ，および？パラメタで扱うデータにUTF-8を使用できます。

UAPで記述するSQL文には，ASCIIコードだけ指定できます。SQL文中でASCIIコード以外の文字（漢字，半角カタカナ，外字など）を指定する場合，PREPARE文またはEXECUTE IMMEDIATE文を使用して，埋込み変数でSQL文を指定してください。

XDM/RD E2から返される，SQL連絡領域に格納されるエラーメッセージ，列名記述領域に格納される列名，型名記述領域に格納されるデータ型名など，UTF-8となります。このため，これらの値にASCIIコード以外の文字が含まれている場合，シフトJIS漢字コードとして出力すると，正しく表示されないないことがあります。

XDM/RD E2側で，文字コードをUTF-8からEBCDIKコードもしくはKEISコード，またはEBCDIKコードもしくはKEISコードからUTF-8に変換する場合，データの長さが変化することがあります。このため，埋込み変数の定義長などに注意してください。

(10)　ODBC関数に関する環境変数

PDODBSTATCACHE=｛0｜1｝

ODBC関数のSQLColumns()関数，SQLStatistics()関数で，一度発行して取得したカラム情報またはインデクス情報をキャッシュするかどうかを指定します。

0：

キャッシュしません。

SQLColumns()関数，SQLStatistics()関数を呼び出すごとにサーバにアクセスして，カラム情報またはインデクス情報を取得します。

1：

一度取得したカラム情報およびインデクス情報をキャッシュします。

ただし，サーバと接続中のときはキャッシュのリフレッシュはしません。したがって，接続中にテーブル定義を変更した場合は，実際の定義と異なるカラム情報またはインデクス情報を返すことになるため，一度サーバとの接続を切り離す必要があります。

利点

SQLColumns()関数，SQLStatistics()関数が同一のパラメタで呼び出された場合は，キャッシュ上の検索結果をAPに返すことで，サーバとの通信回数を削減できます。

留意点

このオプションの指定が効果的かどうかを判断するには，ODBCのトレースを取得し同一接続中に同じパラメタのSQLColumns()関数，SQLStatistics()関数が発行されているかどうかを調査する必要があります。

キャッシュできる行数を次に示します。

SQLColumns()：

約60,000/(50＋表オーナ名長＋表名長＋列名長＋コメント長)行数文

SQLStatistics()：

約60,000/(50＋表オーナ名長＋表名長＋インデクス名長＋列名長)行数文

PDODBESCAPE=｛0｜1｝

カタログ系のODBC関数(SQLTables()，SQLColumns()など)の検索で，パターン文字に対してESCAPE文字('&')を指定するかどうかを指定します。

0：

パターン文字に対してESCAPE文字('&')を指定しません。

1：

パターン文字に対してESCAPE文字('&')を指定します。

各国文字識別子を使用しない環境（XDM/RD E2のRD初期設定ユティリティでKANJINAME=NOを指定するかKANJINAMEオペラントを省略）でかつ表名および列名にXDM/RD E2上のコードでX'50'を含む各国文字（2バイトコード）を使用している場合，この指定を0にしてください。この指定を1のままODBC経由でアクセスした場合，特定の表および列が認識されないことがあります。

また，表名などの識別子に下線(_)を使用している場合，この指定を1にしてください。この指定を0で運用した場合，一部のODBC対応製品から下線(_)を使用した識別子にアクセスできないことがあります。

留意点

XDM/RD E2で各国文字識別子を使用しない環境では，表名や列名に2バイト文字を使用しないことをお勧めします。

表名や列名に2バイト文字を使用する場合は，XDM/RD E2のRD初期設定ユティリティまたはデータベース構成変更ユティリティでKANJINAME=YESを指定してください。

PDGDATAOPT=｛YES｜NO｝

ODBC関数のSQLGetData関数を使用してデータを取り出す場合，データ取得が完了した列に対して繰り返しデータを取得するときに指定します。

通常，データ取得が完了した列に対して繰り返しデータを取得すると，戻り値としてSQL_NO_DATAが返ります。

YES：

SQLGetData関数でデータ取得が完了した列に対して，繰り返しデータを取得できます。

NO：

SQLGetData関数でデータ取得が完了した列に対して，繰り返しデータを取得し，戻り値としてSQL_NO_DATAが返ります。

適用基準

同じ列に対して複数回データ取得をしたい場合に指定します。例えば，複数回のデータ取得でSQL_SUCCESSを期待する上位APなどを使用する場合にこの環境変数を指定してください。

PDODBLOCATOR=｛YES｜NO｝

DBアクセス部品を使用して，BLOB型，またはBINARY型の列を検索する場合に，位置付け子機能を使用してデータを分割取得するかどうかを指定します。DBアクセス部品とは，ODBCドライバ，OLE DBプロバイダ，およびHiRDBデータプロバイダ for .NET Frameworkを示します。

YES：

DBアクセス部品を使用して，BLOB型，またはBINARY型の列を検索する場合に，位置付け子機能を使用してデータを分割取得します。

NO：

DBアクセス部品を使用して，BLOB型，またはBINARY型の列を検索する場合に，位置付け子機能を使用しません。

《適用基準》

NOを指定した場合（省略時仮定値の場合），DBアクセス部品側が列の定義長分のデータ受信領域を確保します。また，HiRDBクライアント側でも列の定義長分のデータ受信領域を必要とします。

列の定義長が大きいと，実行時にメモリ不足になったりすることがあるため，メモリ不足になることを回避する場合はYESを指定してください。なお，YESを指定すると，HiRDBサーバとの通信回数が分割取得回数分増えます。

PDODBSPLITSIZE=分割取得サイズ

〜＜符号なし整数＞((4〜2097152))《100》（単位：キロバイト）

PDODBLOCATOR=YESを指定している場合に，分割取得のサイズを指定します。

《指定値の目安》

実データ長の分布を考慮して，分割取得回数が少なくなり，かつメモリ不足が発生しない値を指定してください。

PDODBCWRNSKIP=｛YES｜NO｝

ODBC，OLE DB接続時のワーニングを回避するかどうかを指定します。なお，ODBC，OLE DB接続以外の場合，この環境変数を指定しても無視されます。

YES：

ODBCドライバ使用時にSQLFetch()の延長でSQLWARNが設定された場合でも，ODBCドライバでSQLFetch()の戻り値としてSQL_SUCCESSを返却します。

OLE DBプロバイダ使用時にSQLWARNが設定された場合でも，エラーオブジェクトの生成をスキップします。

NO：

ODBCドライバ使用時にSQLFetch()の延長でSQLWARNが設定された場合，ODBCドライバでSQLFetch()の戻り値としてSQL_SUCCESS_WITH_INFOを返却します。

OLE DBプロバイダ使用時にSQLWARNが設定された場合，エラーオブジェクトを生成します。

《適用基準》

ODBCドライバでは，検索処理でHiRDBのSQL連絡領域のSQLWARNが設定された場合，SQLFetch()の戻り値としてSQL_SUCCESS_WITH_INFOを返却します。しかし，ODBCドライバを呼び出す上位アプリケーション※によっては，SQL_SUCCESS_WITH_INFOで検索処理を打ち切るものがあります。この環境変数にYESを指定すると，検索処理でSQL連絡領域のSQLWARNが設定された場合でも，SQLFetch()の戻り値をSQL_SUCCESSとすることで，検索処理が続行できるようになります。

OLE DBプロバイダでは，SQL実行時にHiRDBのSQL連絡領域のSQLWARNが設定された場合，エラーオブジェクトを生成します。しかし，OLE DBプロバイダを呼び出す上位アプリケーションによっては，エラーオブジェクトの生成に伴い例外が発生する場合があります。この機能を適用すれば，SQL実行時に警告が発生した場合でもエラーオブジェクトの生成をスキップすることで，上位アプリケーションによる例外の発生を回避できるようになります。

注※

例えば，ADO.NETを使用してODBC経由でHiRDBに接続している場合，SQL_SUCCESS_WITH_INFOで検索処理が打ち切られることがあります。

PDJETCOMPATIBLE=｛YES｜NO｝

ODBC3.5ドライバを，ODBC3.5の規格ではなくMicrosoft Access互換モードで動作させるかどうかを指定します。

YES：

ODBC3.5ドライバは，Microsoft Access互換モードで動作します。

NO：

ODBC3.5ドライバは，ODBC3.5の規格どおりに動作します。

《適用基準》

Microsoft Accessを使用してデータベースにアクセスする場合に指定します。この環境変数を指定しないと，検索結果が"#Delete"と表示されたり，挿入したデータが不正に変換されることがあります。なお，Microsoft社が提供するほかの製品やインタフェースでこのような現象が発生した場合，この環境変数を指定することで回避できることがあります。

5　UAPの作成，実行

この章では，XDM/RD E2接続機能を使用する際に，UAPの作成，実行段階で考慮する項目について説明します。

基本的なUAPの作成，実行については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

5.1　UAPの作成

ここでは，UAPの作成に関する仕様の中で，特にHiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。

その他のUAPの作成に関する仕様については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

5.1.1　SQLのデータ型とデータ記述

SQLのデータ型とクライアントUAPの各言語のデータ記述またはデータ型の対応は，HiRDBの仕様に従います。

SQLのデータ型とデータ記述については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

ただし，XDM/RD E2接続機能を使用する際の追加項目については，「SQLのデータ型とデータ記述」を参照してください。

XDM/RD E2の文字コードをKEISコードにした場合，データに2バイトコードを使用するとデータの長さが変化しますので，変化することを考慮して埋込み変数の長さを定義してください。

例えば，列データの定義がMCHAR(20)である場合に，埋込み変数の定義を20バイトにして2バイトコードを含むデータの挿入をしようとすると，文字コード変換後に20バイトを超えるので，実行時にエラーになります。

1バイトコードと2バイトコードが混在する場合，文字コード変換によって最大7/3倍になるため，埋込み変数(入力変数)の長さは8バイト(20バイト×3÷7≒8)で定義しなければなりません。

文字コードに関する注意事項の詳細については，「文字コードに関する注意事項」を参照してください。

文字コード変換規則の詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2 系　XDM/RD E2 使用の手引−運用編−」を参照してください。

なお，文字コード変換による文字長の変化を意識したくない場合は，表定義時に列のデータ型を文字集合シフトJISを指定することをお勧めします。

文字集合の詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

5.1.2　UAPの形態移行

UAPの実行形態として，次の3種類が考えられます。

HiRDBクライアントを利用してXDM/RD E2にアクセスするUAP

HiRDBクライアントを利用してHiRDBサーバにアクセスするUAP

HiRDBクライアントを利用しないで，XDM/RD E2内でXDM/RD E2をアクセスするUAP

これらのUAPのソースは完全に互換性があるわけではないため，UAPの実行形態を移行する場合には，UAPの修正が必要になることがあります。

また，異なるOSに移行する場合（項番3.から項番1.への移行など）は，SQLに関する仕様だけではなく，言語の差異もある場合があるので注意が必要です。

移行することを前提にUAPを開発する場合には，移行時の修正量を少なくするために，あらかじめ仕様差のない範囲内でUAPを開発するなどの工夫をすることをお勧めします。

SQLの仕様差については，マニュアル「VOS3 データマネジメントシステム　XDM E2 系　XDM/RD E2 SQLリファレンス」を参照してください。

5.2　UAPの実行

ここでは，UAPの実行に関する仕様の中で，特にHiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。

その他のUAPの実行に関する仕様については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

5.2.1　プリプロセス

XDM/RD E2接続用のUAPをプリプロセスする場合は，SQLプリプロセサ起動時にPオプションを指定します。Pオプション以外を指定した場合は，HiRDBのSQL仕様に従って構文チェックが実施されるため，XDM/RD E2で使用できるSQLがプリプロセスエラーになる場合があります。

SQLプリプロセサ起動時のオプションの指定を次に示します。

オプション

内容

UNIX環境

Windows環境

C

COBOL

C

COBOL

S

構文チェックだけをして，ポストソースを出力しない場合に指定します。

○

○

○

○

O

出力するポストソースのファイル名称を指定します。

○

○

○

○

h64

64bitモード用のポストソースを生成することを指定します。

−

−

−

−

P

XDM/RD E2接続用のUAPをプリプロセスする場合に指定します。このオプションを指定した場合，構文チェックはされません。

○

○

−

−

Xc

SQLプリプロセサが生成する文字列を引用符「"」で囲む場合に指定します。このオプションを省略すると，アポストロフィー「'」で囲みます。

−

○

−

○

XA

Windows版のXAインタフェースを使用したUAPを作成するときに指定します。

−

−

○

○

Xo

UAPから抽出したSQL文で標準出力する場合に指定します。

SQL文中の埋込み変数は？パラメタに置換する。

一行検索のINTO句を削除する。

SQL文中の語句間の空白が2文字以上の場合は，空白1文字に置換する。

複数行に分割して記述されているSQLは1行にまとめる。

実行時にサーバに送られるSQLだけ出力する。実行されないSQL文（WHENEVER文やBEGIN DECLARE SECTION文など）は出力しない。

SQLの末尾にはセミコロン（；）を追加する。

埋込み変数の宣言は出力しない。

動的SQLはSQLがリテラルで指定されている場合だけ出力する。その他の場合は出力しない。

OPEN文は形式1のカーソルの場合だけ，問合せ式を出力する。

ポストソースは生成しない。

○

○

○

○

A

SQLで認可識別子を省略したときに仮定する認可識別子を変更する場合に指定します。

○

○

○

○

XD

DLLを作成する場合に指定します。

−

−

−

○

Xe｛y/n｝

PREPARE時のカーソルの自動CLOSE機能の有無を指定します。

○※

○※

○※

○※

Xv

E2オプションを指定したときに，VARCHAR型，BINARY型に対応する構造体を，通常の構造体として解析することを指定します。

○

○

○

○

E｛1/2/3｝

［”オプション文字列”］

UAP中で使用されているプリプロセサ宣言文（定数と#ifdefなど）の有効化と埋込みSQL宣言節不要化を指定するオプション。

-E1：プリプロセサ宣言文の有効化を指定する。

-E2：埋込みSQL宣言節の不要化を指定する。

-E3：-E1と-E2を同時に指定する。

オプション文字列：

インクルードするファイルを検索するディレクトリバスを，Cコンパイラに指定する-Iオプション形式で指定する。-Dオプションなどの任意のオプションを同時に指定できる（COBOLでは指定しても無効）。オプション文字列には複数のオプションを記述する場合は，空白の代わりにセミコロン（；）で区切る。

このオプションを指定するとプリプロセサは内部的にCコンパイラを呼び出すので，PATH環境変数にコンパイラへのパスを設定しておくことが必要である。

○

○

○

○

Xp

Windows版プリプロセサで厳密なSQLの構文チェックを行う。

−

−

−

−

Xr

SQL文の実行時にCOBOLのRETURN-CODE特殊レジスタを更新しないポストソースを生成します。

UAPが，呼び出し元プログラムに返すリターンコードをRETURN-CODE特殊レジスタに設定してから，呼び出し元プログラムに制御を戻すまでの間にSQL文を実行する場合，このオプションを指定してください。

−

○

−

○

（凡例）

○：XDM/RD E2接続機能時に指定できます。

−：該当しません。

注※

XDM/RD E2のバージョンが11-00以降の場合に有効となります。

5.2.2　UAP実行時の注意事項

UAP実行時の注意事項を次に示します。

HiRDBクライアントを用いてコンパイルしたUAPのSQLは，すべて動的実行となります。このため，システム全体の性能を向上させるためにXDM/RD E2のSQLプール機能を使用することをお勧めします。

HiRDBクライアントを用いたプリプロセス時には，最低限のSQL構文チェックしか実施しません。このため，UAP実行時にエラーになる場合があります。

HiRDBクライアントを用いたプリプロセス時は，資源（表や列）の存在チェックを実施しません。このため，UAP実行時にエラーになる場合があります。

HiRDBクライアントを用いたプリプロセス時は，XDMのコンパイルオプション（プリプロセスオプション）は使用できません。

HiRDBサーバを使用する場合とXDM/RD E2を使用する場合とで，SQLなどに仕様の差がなければ，UAP実行時の環境変数（PDSRVTYPE，PDHOST，PDNAMEPORTなど）を変更するだけで，再プリプロセスや再リンケージすることなく，アクセスするサーバを切り替えることができます。

ただし，UNIX上のUAPで，XDM/RD E2接続機能サポート以前のバージョンのアーカイブライブラリを使用してリンケージしたUAPは，実行時にエラーになります。この場合は，XDM/RD E2接続機能サポート以降のバージョンのアーカイブライブラリを使用して再リンケージする必要があります。

5.2.3　XDM/RD E2接続機能を利用できるライブラリ

(1)　UNIXの場合

クライアント側のOSがUNIXの場合で，XDM/RD E2接続機能を利用できるライブラリを次の表に示します。各ライブラリの用途については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

表5‒1　XDM/RD E2接続機能をサポートするライブラリ（UNIX）

名称

ディレクトリ

ファイル名

プラットフォーム

AIX

Linux

アーカイブファイル

/HiRDB/client/lib/

libclt.a

○

○

libclt64.a

▲

×

libcltxa.a

○

○

libcltya.a

○

○

libcltm.a

×

×

libcltk.a

○

○

libcltk64.a

▲

×

libclts.a

○

○

共用ライブラリ※

/HiRDB/client/lib/

libzclt.sl

○

○

libzclt64.sl

▲

×

libzcltx.sl

○

○

libzclty.sl

○

○

libzcltm.sl

×

×

libzcltk.sl

○

○

libzcltk64.sl

▲

×

libzpdodbc.sl

×

×

libsqlauxf.sl

▲

▲

libsqlauxf64.sl

▲

×

libzcltxk.sl

×

×

libzcltyk.sl

×

×

libzclts.sl

○

○

libzcltxs.sl

○

○

libzcltys.sl

○

○

（凡例）

○：XDM/RD E2に接続できます。

▲：HiRDBサーバには接続できますが，XDM/RD E2には接続できません。

×：HiRDBサーバにもXDM/RD E2にも接続できません。

注

下線で示す部分は，HiRDBのインストールディレクトリを示します。

注※

共用ライブラリのサフィックスは，プラットフォームによって異なります。Linuxの場合は.so，AIXの場合は.aとなります。

(2)　Windowsの場合

クライアント側のOSがWindowsの場合で，XDM/RD E2接続機能を利用できるライブラリを次の表に示します。各ライブラリの用途については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

表5‒2　XDM/RD E2接続機能をサポートするライブラリ（Windows）

名称

ディレクトリ

ファイル名

使用可否

アーカイブファイル

xxxx¥LIB

CLTDLL.LIB

○

PDCLTM32.LIB

○

PDCLTM50.LIB

○

PDCLTX32.LIB

○

PDCLTXM.LIB

▲

PDSQLAUXF.LIB

▲

PDCLTXS.LIB

○

（凡例）

○：XDM/RD E2に接続できます。

▲：HiRDBサーバには接続できますが，XDM/RD E2には接続できません。

注

xxxxはHiRDBのインストールディレクトリ名を示します。ディレクトリ名はインストール時に指定できます。

5.3　ODBC対応アプリケーションプログラムからのXDM/RD E2アクセス

HiRDBのODBCドライバを使用する場合は，XDM/RD E2でHiRDB形式ディクショナリビュー表を作成する必要があります。

HiRDB形式ディクショナリビュー表については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−運用編−」を参照してください。

HiRDBのODBCドライバからXDM/RD E2のTIME型の列にアクセスする際，入出力パラメタまたは検索結果に小数秒精度が含まれる場合のデータ処理について次に示します。

入力パラメタに小数秒精度が含まれる場合

小数秒精度を切り捨てた形式のデータを渡します。XDM/RD E2では，受け取ったデータを列定義の小数秒精度のけた数分0で置き換え，その値をデータとして扱います。

出力パラメタおよび検索結果に小数秒精度が含まれる場合

小数秒精度を切り捨てた形式のデータをUAPに返却します。

5.4　JDBC対応アプリケーションプログラムからのXDM/RD E2アクセス

HiRDBのJDBCドライバを使用する場合は，XDM/RD E2でHiRDB形式ディクショナリビュー表を作成する必要があります。

HiRDB形式ディクショナリビュー表については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−運用編−」を参照してください。

HiRDBのJDBCドライバからXDM/RD E2のTIME型の列にアクセスする際，入出力パラメタまたは検索結果に小数秒精度が含まれる場合のデータ処理について次に示します。

入力パラメタに小数秒精度が含まれる場合

小数秒精度を切り捨てた形式のデータを渡します。XDM/RD E2では，受け取ったデータを列定義の小数秒精度のけた数分0で置き換え，その値をデータとして扱います。

出力パラメタおよび検索結果に小数秒精度が含まれる場合

小数秒精度を切り捨てた形式のデータをUAPに返却します。

5.4.1　Type4 JDBCドライバを使用したXDM/RD E2アクセス

Type4 JDBCドライバを使用してXDM/RD E2にアクセスする場合について説明します。

(1)　前提バージョン

Type4 JDBCドライバを使用してアクセスできるXDM/RD E2のバージョンは，11-03以降です。

(2)　クライアント環境変数

クライアント環境変数の差異については，「XDM/RD E2接続機能使用時の環境変数の差異」を参照してください。

(3)　位置付け子（locator）機能

Type4 JDBCドライバを使用してXDM/RD E2にアクセスする場合，位置付け子機能は使用できません。次に示すインタフェースの指定値にLOCATORが指定された場合，REALが指定されたものとして動作します。

DriverManagerクラスのgetConnectionメソッドに指定するユーザプロパティLONGVARBINARY_ACCESS

DataSourceクラスのsetLONGVARBINARY_Accessメソッド

ConnectionPoolDataSourceクラスのsetLONGVARBINARY_Accessメソッド

XADataSourceクラスのsetLONGVARBINARY_Accessメソッド

各インタフェースについては，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(4)　分散トランザクション

分散トランザクション機能を使用した場合，XDM/RD E2にはアクセスできません。XADataSourceクラスのgetXAConnectionメソッドを使用してアクセスしようとした場合，SQLExceptionが投入されてKFPJ80003-Eメッセージが出力されます。分散トランザクション機能については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

(5)　サポートしないドライバ

次に示すドライバを使用したXDM/RD E2へのアクセスはサポートしていません。

Type2 JDBCドライバ

HiRDBデータプロバイダ for .NET Framework

HiRDB OLEDBデータプロバイダ

SQLJランタイムライブラリ

5.5　UAPの障害対策

HiRDBにアクセスする場合とXDM/RD E2にアクセスする場合のUAPの障害対策の差異について説明します。

UAPの障害対策の詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

また，DBコネクションサーバの障害については，マニュアル「VOS3 Database Connection Server」を参照してください。

5.5.1　SQLトレース機能

実行したUAPのSQLトレース情報をSQLトレースファイルに取得します。

UAP実行時にSQLエラーが発生した場合，SQLトレース情報を参照すると，エラーの原因となるSQL文を特定できます。

HiRDBをアクセスする場合とXDM/RD E2をアクセスする場合のSQLトレース情報の内容の差異を次の表に示します。

なお，説明中の項番は，マニュアル「HiRDB UAP開発ガイド」のSQLトレース情報の見方に関する説明の番号に対応しています。

表5‒3　HiRDBをアクセスする場合とXDM/RD E2をアクセスする場合のSQLトレース情報の内容の差異

項番

項目

HiRDBをアクセスする場合とXDM/RD E2をアクセスする場合のSQLトレース情報の内容の差異

1

UAP名称

差異なし。

2

認可識別子

差異なし。

3

UAP開始時刻

差異なし。

4

UAP実行環境

差異なし。

5

UAP実行ステータス

CURHOST：出力されない。

CURPORT：常に0。

SRVNAME：JOB名称。ただし，DBコネクションサーバのバージョンが05-00より古い場合は出力されない。

CNCTNO：コネクト通番。ただし，DBコネクションサーバのバージョンが05-00より古い場合は0。

SVRPID：サーバユーザ番号。ただし，DBコネクションサーバのバージョンが05-00より古い場合は0。

CLTPID：差異なし。

CLTTID：差異なし。

6

コネクト通番

コネクト通番を表示する。ただし，DBコネクションサーバのバージョンが05-00より古い場合は0。

7

UAPのプロセス番号

差異なし。

8

UAPのスレッド番号

差異なし。

9

SQLカウンタ

差異なし。

10

オペレーションコード

差異なし。

オペレーションコードの詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

11

セクション番号

差異なし。

12

SQLCODE

差異なし。

13

SQLWARN

差異なし。

14

SQL実行要求受付時刻

差異なし。

15

SQL実行要求終了時刻

差異なし。

16

システムが使用する情報

差異なし。

17

SQL文

差異なし。

18

ユーザ識別子を変更した場合の情報

差異なし。

19

UAPが動作しているプラットフォーム

差異なし。

20

ライブラリの作成日付

差異なし。

21

パラメタトレース

差異なし。

22

リンクしたライブラリの名称

差異なし。

23

SQL実行時間

差異なし。

24

SQLトレース出力形式

差異なし。

25

HiRDBクライアント作成バージョン

差異なし。

26

HiRDB.iniファイルパス

差異なし。

27

サーバとの接続処理で使用したソケット情報

サーバとの接続処理で使用したソケット情報を表示する。XDM/RD E2接続時は次の情報を表示する。

日時：クライアント−サーバ間で接続処理をした日時

CLT：クライアント側のIPアドレス，ポート番号

DBS：サーバ側のIPアドレス，ポート番号

28

SQLトレース出力処理時間

差異なし。

29

プリプロセスファイル名

差異なし。

30

プリプロセス時間

差異なし。

31

ルートアプリケーション情報

差異なし。

32

SQL文長

差異なし。

33

トランザクション識別子

差異なし。

34

拡張文名

XDM/RD E2では拡張文名未サポートのため表示しない。

35

拡張カーソル名

XDM/RD E2では拡張カーソル名未サポートのため表示しない。

36

前処理結果保持機能指定情報

差異なし。

37

ホールダブルカーソル指定情報

差異なし。

38

自動再接時にサーバとの接続処理で使用したソケット情報

サーバとの接続処理で使用したソケット情報を表示する。XDM/RD E2接続時は次の情報を表示する。

日時：クライアント−サーバ間で接続処理をした日時

CLT：クライアント側のIPアドレス，ポート番号

DBS：サーバ側のIPアドレス，ポート番号

参考

SQLトレースのヘッダ部に表示されるサーバのバージョン番号は，接続しているXDM/RD E2のバージョンに20を加算した値が表示されます。例えば，XDM/RD E2のバージョンが11-00の場合は31-00となります。出力例を次に示します。

** UAP TRACE (CLT:07-02(Nov 17 2004) SVR:31-00) WIN32(WIN_32)**

5.5.2　SQLトレース動的取得機能

SQLトレース動的取得機能は使用できますが，XDM/RD E2をアクセスする場合，トレース取得コマンド（pdtrcmgr）の-kオプションは指定しても無視されます。

6　SQL言語仕様

この章では，XDM/RD E2下のUAPから使用する場合のSQL言語仕様と，HiRDBクライアントからXDM/RD E2を使用する場合のSQL言語仕様の差異について説明します。

SQLの言語仕様の詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

6.1　基本項目

ここでは，XDM/RD E2で使用できるSQLの記述形式，およびHiRDBクライアントからアクセスできるXDM/RD E2のデータ型について説明します。

6.1.1　SQLの記述形式

(1)　全般規則

サーバとしてXDM/RD E2を使用する場合，使用できるSQLの仕様はXDM/RD E2が規定する仕様に従います。

XDM/RD E2のSQL仕様は，「XDM/RD E2のSQL仕様」と「HiRDBプログラムのSQL仕様」があります。

HiRDBクライアントからのアクセスの場合，通常は「HiRDBプログラムのSQL仕様」で動作しますが，「XDM/RD E2のSQL仕様」で動作したい場合は，XDM/RD E2のRD環境定義文のHIRDB PROGRAM句にSQL SPECIFICATION XDMRDを指定します。

各仕様の違いの詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。また，XDM/RD E2のRD環境定義文に関しては，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−RD環境定義文・空間起動制御文・運用コマンド編−」を参照してください。

なお，HiRDBクライアントを使用してXDM/RD E2をアクセスする形態とは，次の条件を満たす形態をいいます。

HiRDBクライアントでプリプロセスした埋込み型UAP

会話型SQL実行ユティリティ（pdsql）

HiRDBのODBCドライバを使用したODBC接続

HiRDBのODBCドライバを使用したODBC接続については，「ODBC対応アプリケーションプログラムからのXDM/RD E2アクセス」を参照してください。

HiRDBのJDBCドライバを使用したJDBC接続

HiRDBのJDBCドライバを使用したJDBC接続については，「JDBC対応アプリケーションプログラムからのXDM/RD E2アクセス」を参照してください。

HiRDBクライアントを経由してXDM/RD E2に接続するプログラムプロダクト

(2)　SQLで使用できる文字

SQLで使用できる文字は，XDM/RD E2の規則に従います。ただし，クライアント側の文字コードが日本語EUCの場合，SQL文中にEUCコードセット３の外字（(8F)₁₆(xxxx)₁₆の３バイトで表現される文字コード）を使用することはできません。なお，EUCコードセット３の外字をVARCHAR型などの変数に格納することはできます。

XDM/RD E2の規則で示されている「EBCDIKコード」および「KEISコード」は，クライアント側では次のような文字コードに対応します。

XDM/RD E2側の文字コード

クライアント側の文字コード

シフトJIS

日本語EUC

EBCDIK

JIS8

JIS8※

KEIS

JIS

EUCコードセット１

または

EUCコードセット３

注※

半角カタカナはEUCコードセット２（(8E)₁₆(xx)₁₆の２バイトで表現される文字コード）になります。

SQL文中には英小文字を指定できます。SQL文中に指定した英小文字は，XDM/RD E2の規則に従い，英小文字または英大文字として扱われます。また，HiRDBクライアントを使用してXDM/RD E2をアクセスする場合，実長が0バイトの可変長文字列，可変長混在文字列，または実長が0文字の可変長各国文字列を使用できます。

詳細についてはマニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

(3)　文字コード

XDM/RD E2接続機能を使用する場合に，クライアント側およびXDM/RD E2側で使用できる文字コードを次の表に示します。

表6‒1　XDM/RD E2接続機能を使用する場合に，クライアント側およびXDM/RD E2側で使用できる文字コード

実行環境

使用できる文字コード

備考

クライアント側※1

シフトJIS

半角文字はJISX0201に準拠します。

全角文字はJISX0208に準拠します。

日本語EUC

XDM/RD E2 09-01以降の場合に使用できます。

UTF-8※2

XDM/RD E2 10-01以降の場合に使用できます。

XDM/RD E2側

EBCDIK/KEIS

表の列の文字集合がシフトJISの場合は，シフトJISのままで格納されます。

注※1

JDBCドライバ使用時は，環境変数LANGや環境変数PDLANGの指定値に関係なくシフトJISとなります。

注※2

NCHAR型，NVARCHAR型では使用できません。

また，クライアント側OSが使用できるロケールを次の表に示します。

表6‒2　クライアント側OSが使用できるロケール

文字コード

ロケール

AIX

Linux

Windows

sjis（シフトJIS漢字）

Ja_JP

−

ja_JP.SJIS

ujis（日本語EUC）※1

ja_JP

ja_JP.eucJP，

ja_JP※2，

ja_JPujis※2

ja_JP.ujis

UTF-8

−

−

UTF-8

（凡例）

−：使用できません。

注※１

XDM/RD E2 09-01以降の場合だけ使用できます。

注※２

ja_JPとja_JP.ujisは，ja_JP.eucJPの別名とみなされます。

(4)　文字コード変換

HiRDBクライアント側で使用する文字コードとXDM/RD E2側で使用する文字コードはXDM/RD E2で変換されます。文字コード変換によって，2バイトコードを含む文字列は長さが変わることがあるため，注意が必要です。

文字コードに関する注意事項の詳細については，「文字コードに関する注意事項」を参照してください。

文字コード変換規則の詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2 系　XDM/RD E2 使用の手引−運用編−」を参照してください。

(5)　文字コードに関する注意事項

通常，XDM/RD E2側で使用できる文字コードはEBCDIK/KEISであり，クライアント側で使用できる文字コードはシフトJIS，日本語EUC，およびUTF-8です。

XDM/RD E2の文字集合機能を使用して文字集合をシフトJISにすれば，XDM/RD E2で扱うデータをシフトJISで扱えますが，文字集合をシフトJISにしない場合は，文字コードを変換する必要があります。

システムを構築する上で，文字コードを変換するときに注意しなければならない点を次に示します。

(a)　データベース中の文字コードをEBCDIK/KEISにする場合

(i)データ長の変化

KEISコードは，半角の文字（1バイトの文字）と全角の文字（2バイトの文字）を区別するために，シフトコードという制御コードを用います。シフトコードはデータ表示時には表示されませんが，データとして存在するため，見かけの文字長と実際のデータ長が異なります。一方，シフトJISと日本語EUCでは，シフトコードのような制御コードを持ちません。このため，文字コード変換によってデータの長さが変化する場合があります。

次に例を示します。

なお，ここではKEISコードへシフトするシフトコードを[漢]，EBCDIKコードへシフトするシフトコードを[E]と表します。[漢]は0x0A42，[E]は0x0A41という2バイトのデータです。

ケース

シフトJISまたは日本語EUCでのデータ

EBCDIK/KEISでのデータ

半角文字だけの場合

（VARCHAR型）

'ABCD'

（4バイト）

'ABCD'

（4バイト）

全角文字だけの場合

（NVARCHAR型）

'あいう'

（6バイト）

'あいう'

（6バイト）

半角文字と全角文字が混在する場合

（MVARCHAR型）

'AあBいC'

（7バイト）

'A[漢]あ[E]B[漢]い[E]C'

（15バイト）

半角文字と全角文字が混在するデータの場合，シフトJISまたは日本語EUCのデータをEBCDIK/KEISに変換すると，最大7/3倍になります。

このため，混在文字データを扱う場合のシステムでは次のようにします。

表定義時の列の長さ

シフトJISまたは日本語EUCのデータ長の7/3倍以上で定義してください。

（例）

UAPで100バイトの混在文字データを扱う場合，列の定義はMVARCHAR（100）ではなく，MVARCHAR（234）で定義します。

UAPで使用する埋込み変数

ある表のデータの追加・更新をXDM/RD E2接続機能だけを使用して行う場合は，その表にアクセスするSQLの埋込み変数を，その埋込み変数に対応する列の定義長の3/7倍の長さで定義してください。

（例1）

「表定義時の列の長さ」の例の列に対してデータを挿入（INSERT）する場合の埋込み変数は，MVARCHAR（100）に対応する埋込み変数の定義をしてください。

C言語の場合は，次のようになります。

struct {
 short  変数名1 ;
 char   変数名2[100] ;
} 構造体名 :

なお，可変長の場合は，実長（変数名1で示す長さ）が100バイト以下であれば，変数名2の長さは100バイトを超えていてもかまいません。また，EBCDIK/KEISに変換しても234バイト以下となるデータであれば，実長が100バイトを超えていてもかまいません。

しかし，シフトJISまたは日本語EUCで100バイトを超えるデータをデータベースに格納すると，検索時に100バイトの埋込み変数で受け取れなくなる場合があります。これを防止するため，挿入データに対応する埋込み変数の定義長は，100バイトにしておくことをお勧めします。

（例2）

「表定義時の列の長さ」の例の列を検索（FETCH）する場合の埋込み変数は，MVARCHAR（100）に対応する埋込み変数の定義をしてください。

ただし，これはデータベース中に格納されているすべてのEBCDIK/KEISのデータが，シフトJISまたは日本語EUCに変換しても100バイト以下のデータである場合に限ります。

ある表のデータの追加・更新をXDM/RD E2接続機能以外の方法で行うことがある場合は，その表にアクセスするSQLの埋込み変数の長さは次のとおりにしてください。

対象列

処理

MVARCHAR型変数の長さ

シフトJISの場合

日本語EUCの場合

MCHAR(n)および

MVARCHAR(n)

検索

定義長=n

定義長=n×2

格納

実長≦n×(3/7)※

実長≦n×(3/7)※

注※　

追加・更新するデータのEBCDIK/KEISでのバイト数がわからない場合の見積もりです。バイト数がわかる場合は，EBCDIK/KEISでのバイト数≦nになるようにしてください。

（例3）

HiRDBクライアント以外を使用してデータの追加・更新を行うことがある表にMVARCHAR（100）の列が存在する場合は，この列を検索（FETCH）するときの埋込み変数は，3/7倍にするのではなく，次のようにしてください。

クライアントの文字コードがシフトJISの場合

MVARCHAR（100）に対応する埋込み変数の宣言としてください。これは，既存のデータベース中に1バイト文字だけ格納されている場合があるためです。

クライアントの文字コードが日本語EUCの場合

MVARCHAR(200)に対応する埋込み変数の宣言としてください。これは，既存のデータベース中に半角カタカナ文字だけ格納されている場合があるためです。半角カタカナはEBCDIK/KEISでは１文字が１バイトですが，日本語EUCでは1文字が２バイトになるので，EBCDIK/KEISのデータを日本語EUCに変換すると，最大２倍になります。

(ii)固定長文字に対する考慮

全角文字を含むシフトJISまたは日本語EUCのデータをEBCDIK/KEISに変換すると，データ長が変化するため，全角文字を扱う場合は，固定長データ（MCHAR）ではなく可変長データ（MVARCHAR）とすることをお勧めします。

固定長データ（MCHAR）とする場合には，次の点に注意してください。

文字長の変化

(i)と同様に，挿入（INSERT）時などに使用する埋込み変数は，対応するデータの3/7倍にします。

代入先のデータ長が代入元より短い場合は，代入先に空白が補われます。

埋込み変数が3/7倍以上の場合は，次のような事象が発生します。

（例）

C言語の埋込み型UAPであり，表の列の定義がMCHAR（234）の場合で，「INSERT INTO 表 VALUES（：埋込み変数）」としたときの結果を次に示します。

なお，'△'は半角の空白1文字を示し，'¥0'はC言語のナル文字を示します。

埋込み変数の型

（C言語の場合）

埋込み変数のデータ

結果

char 変数名[235];

'ABCDEFG△△…△¥0'

（空白は228個）

左記データが正しく格納される。

'あいうえお△△…△¥0'

（空白は224個）

SQLCODE=-404エラー※

char 変数名[101];

'あいうえお△△…△¥0'

（空白は90個）

左記データが正しく格納される。

注※

'あいうえお△△…△'（空白は224個）をEBCDIK/KEISに変換すると，'[漢]あいうえお[E]△△…△'（空白は224個）となり，長さが238バイトになります。その結果，挿入するデータ長が列の定義長を超えるため，エラーになります。

LIKE述語の比較

XDM/RD E2の固定長文字列に対する比較述語では，長さが異なるデータを比較する場合は，短い方に空白を補って比較します。しかし，LIKE述語に関しては空白を補いません。

このため，LIKE述語でパターン文字'％'（0文字以上の任意の文字）を使用しない場合は，比較するときに意図する検索ができない場合があります。

（例）

表の列の型がMCHAR（234）であり，かつ格納されているデータが'ABCDEFG△△…△'と'あいうえお△△…△'である場合で，SELECT文の探索条件を「WHERE 値式 LIKE ：埋込み変数」としたときの結果を次に示します。

なお，'△'は半角の空白1文字を示し，'¥0'はC言語のナル文字を示します。

埋込み変数の型

（C言語の場合）

埋込み変数のデータ

「WHERE 値式 LIKE ：埋込み変数」

の評価

char 変数名[235];

'ABCDEFG△△…△¥0'

（空白は228個）

真

'ABCDEFG¥0'

偽※1

'あいうえお△△…△¥0'

（空白は224個）

偽

'あいうえお△△…△¥0'

（空白は220個）

真※2

char 変数名[101];

'ABCDEFG△△…△¥0'

（空白は93個）

偽

'ABCDEFG¥0'

偽

'あいうえお△△…△¥0'

（空白は90個）

偽

注※1

UAPがC言語で記述されている場合，データ中に'¥0'が含まれていると，データ長を'¥0'の一つ前までの長さとみなします。このため，「長さ7バイトのデータ'ABCDEFG'」とデータベースの「長さ234バイトのデータ'ABCDEFG△△△'」を比較します。

'%'を含まないLIKE述語は，長さが一致しなければ真とはならないため，この評価は「偽」となります。

注※2

半角文字だけを扱う場合は，埋込み変数に対応するSQLのデータ型のデータ長と同じ長さで埋込み変数を定義して，'％'を含まないLIKE述語を「真」にできます。

しかし，全角文字が含まれる場合は，EBCDIK/KEISに変換した後のデータ長を考慮したデータ長としなければなりません。

この例では，[漢]と[E]が付加されて4バイト大きくなるため，定義長（234バイト）よりも4バイト少なくなる位置に'¥0'を埋め込みます。

(iii)空白の扱い

空白には半角の空白と全角の空白があります。XDM/RD E2には，空白に関する変換規則について次に示すオプションがあります。このオプションは，XDM/RD E2のRD環境定義文で指定します。詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−RD環境定義文・空間起動制御文・運用コマンド編−」を参照してください。

HALFSPACE

XDM/RD E2のRD環境定義文のCONVERT OPTION句にHALFSPACE HALFを指定することをお勧めします。

HALFSPACE HALFを指定すると，半角空白が2文字連続した場合の文字コードが次のように変換されます。

変換方向

変換前データ

変換後データ

HALFSPACE HALFを指定

HALFSPACEを省略

シフトJISまたは日本語EUC→

EBCDIK/KEIS

半角空白2文字

（0x2020）

半角空白2文字

（0x4040）

半角空白2文字

（0x4040）

EBCDIK/KEIS→

シフトJISまたは日本語EUC

半角空白2文字

（0x4040）

半角空白2文字

（0x2020）

全角空白1文字

（0x8140）

HALFSPACE HALFを指定することで，クライアント側から挿入した半角空白2文字を検索する場合，挿入した値を同じ値で検索できます。

(iv)EUCコードセット３の外字の扱い

ここでは，クライアントの文字コードが日本語EUCの場合の，EUCコードセット３の外字の扱いについて説明します。

EUCコードセット３の外字を含むデータを，NCHARおよびNVARCHAR型の変数に格納すると正しく処理されません。これは，NCHARおよびNVARCHAR型の変数はデータ長をバイト数ではなく文字数で指定し，１文字が２バイトであることを前提にして処理されているためです。EUCコードセット３の外字は１文字が３バイトなので，正しく処理されません。

（例１）

EUCコードセット３の外字コードを含むNCHARおよびNVARCHAR型の列を対象に検索，格納，比較を行う場合は，VARCHAR型またはCHAR型の変数を使用してください。EUCコードセット１の漢字（１文字が２バイト）とEUCコードセット３の外字が混在すると，文字数からデータのバイト数が確定しないので，NCHAR型（固定長）の列が対象の場合でもVARCHAR型（可変長）の変数を使用することをお勧めします。変数の長さは次のようになります。

対象列

処理

VARCHAR型変数の長さ

NCHAR(n)および

NVACHAR(n)

検索

定義長(バイト数)=n×3

格納

実長≦n×2※

注※　格納するデータの文字数がわからない場合の計算です。文字数がわかる場合は，文字数≦nにしてください。

（例２）

DESCRIBE文がSQL記述領域に設定したデータ型がNCHARおよびNVARCHAR型の場合に，EUCコードセット３の外字を含むデータを変数に格納するときは，SQL記述領域のデータ型をVARCHAR型に書き換えてください。

(b)　データベース中の文字コードをシフトJISにする場合

CREATE TABLE文で表を定義する場合に，文字集合の指定でシフトJISを選択すると，データベースに格納する文字コードがシフトJISになります。

データベース中のデータがシフトJISの場合，文字コードを変換する必要がなくなるため，「(a) データベース中の文字コードをEBCDIK/KEISにする場合」の注意事項を考慮する必要がありません。

文字集合としてシフトJISを使用する場合のCREATE TABLE文の例を次に示します。

CREATE TABLE 表名 （列名 CHAR（100） CHARACTER SET SHIFT_JIS）

なお，文字集合をシフトJISにする場合は，次の点に注意してください。

(i)VOS3上のUAPでの文字コード変換

WSやPCで動作するHiRDBクライアントのUAPでは文字コードを変換する必要がありませんが，VOS3上で動作するUAP（EBCDIK/KEISを使用するUAP）では文字コードを変換する必要があります。

このため，VOS3上のUAPを作成する上で，文字コードを変換するときに注意する必要があります。

(ii)制限事項

XDM/RD E2側で文字集合とほかの機能の組み合わせが制限されている場合があります。次にXDM/RD E2 07-00での制限事項の一部を示します。その他の制限事項については，XDM/RD E2のマニュアルを参照してください。

文字集合シフトJISの列を分割表の分割条件列に指定できない。

文字集合シフトJISの列をインデクス除外値構成列に指定できない。

(6)　SQLの最大長

一つのSQLの最大長は2,000,000バイトです。

ただし，最大長はDBコネクションサーバの空間起動制御文などに指定する「MAX SQL LENGTH」の指定によって制限されます。

詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−RD環境定義文・空間起動制御文・運用コマンド編−」を参照してください。

(7)　名前の指定

名前に使用できる文字を次の表に示します。

表6‒3　名前に使用できる文字

名前の種類

制限文字数

英大文字数字

英小文字

カナ文字

下線

空白

ハイフン

全角文字だけの各国文字の使用可否

全角文字と半角文字の混在可否

認可識別子

RD

※4

RD

RD

RD

RD

RD

RD

RD

RD

パスワード

RD

RD

RD

RD

RD

RD

RD

RD

RD

スキーマ識別子

RD

※4

RD

RD

RD

RD

RD

RD

RD

RD

表識別子

RD

RD

RD

RD

RD

RD

RD

RD

RD

列名

RD

※4

RD

RD

RD

RD

RD

RD

RD

RD

相関名

RD

※4

RD

RD

RD

RD

RD

RD

RD

RD

問合せ名

RD

RD

RD

RD

RD

RD

RD

RD

RD

属性名

RD

RD

RD

RD

RD

RD

RD

RD

RD

カーソル識別子

30バイト

○

○

※2

○

○

×

○

※3

○

○

SQL文識別子

30バイト

○

○

※2

○

○

×

○

○

○

ホスト識別子※1

30文字

○

○

※2

○

○

×

○

○

○

SQLパラメタ名

RD

RD

RD

RD

RD

RD

RD

RD

RD

リスト名

RD

※4

RD

RD

RD

RD

RD

RD

RD

RD

文ラベル

RD

RD

RD

RD

RD

RD

RD

RD

RD

インデクス識別子

RD

※4

RD

RD

RD

RD

RD

RD

RD

RD

トリガ識別子

RD

RD

RD

RD

RD

RD

RD

RD

RD

ルーチン識別子

RD

RD

RD

RD

RD

RD

RD

RD

RD

特定化識別子

RD

RD

RD

RD

RD

RD

RD

RD

RD

データ型識別子

RD

RD

RD

RD

RD

RD

RD

RD

RD

制約名

RD

※4

RD

RD

RD

RD

RD

RD

RD

RD

RDエリア名

RD

RD

RD

RD

RD

RD

RD

RD

RD

RDノード名称

RD

RD

RD

RD

RD

RD

RD

RD

RD

dd名

RD

RD

RD

RD

RD

RD

RD

RD

RD

（凡例）

RD：

XDM/RD E2の仕様に従います。詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

○：

使用できます。名前の先頭の文字は，半角英大文字，半角英小文字，半角仮名大文字にしてください。ただし，全角文字を使用できる名前の先頭の文字は，全角文字にできます。

×：

使用できません。

注※1

ホスト言語によって制限されます。

注※2

半角英小文字は，半角英大文字として扱われます。ただし，引用符「"」で囲めば，区別して扱えます。

注※3

名前に半角ハイフンを含む場合には，引用符「"」で囲んでください。ただし，半角ハイフンを含むカーソル名は，手続きまたは関数の中に指定する場合だけ引用符「"」で囲んでください。

注※4

全角文字を使用すると，クライアントで使用している文字コード（シフトJISなど）からXDM/RD E2で使用する文字コード（KEISコード）に変換する際にデータ長が変わります。このため，制限文字数は変換後のバイト数で計算してください。文字コードに関する注意事項の詳細については，「文字コードに関する注意事項」を参照してください。

(8)　予約語

HiRDBの予約語にXDM/RD E2の予約語を加えたものが，SQLの予約語となります。

HiRDBの予約語については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

XDM/RD E2の予約語については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

6.1.2　データ型

HiRDBクライアントからアクセスできるXDM/RD E2のデータ型を次の表に示します。

表6‒4　HiRDBクライアントからアクセスできるXDM/RD E2のデータ型

XDM/RD E2のデータ型

備考

使用可能なXDM/RD E2のバージョン

INTEGER

−

06-00以降

SMALLINT

−

06-00以降

DECIMAL

表定義（CREATE TABLE文）などにDECIMAL型を指定した場合，XDM/RD E2が内部的にLARGE DECIMAL型に変換します。

ただし，XDM/RD E2のRD環境定義文のHIRDB PROGRAM句にSQLSPECIFICATION XDMRDを指定した場合は変換しません。

06-00以降

LARGE DECIMALおよびNUMERIC

LARGE DECIMAL型に対してDESCRIBE文を発行した場合，SQLCODに返すデータ型はDECIMAL（X'E4'またはX'E5'）になります。

06-00以降

FLOATおよびDOUBLE PRECISION

使用できる値の範囲および値の精度はVOS3の倍精度浮動小数点型（符号部=0ビット目，指数部=1〜7ビット目，仮数部=8〜63ビット目）とPCまたはWSの倍精度浮動小数点型（符号部=0ビット目，指数部=1〜11ビット目，仮数部=12〜63ビット目）の小さい方の値となります。

また，変換の過程で精度が変わったり，アンダーフローおよびオーバーフローが発生したりする可能性があります。

06-00以降

SMALLFLTおよびREAL

使用できる値の範囲および値の精度はVOS3の単精度浮動小数点型（符号部=0ビット目，指数部=1〜7ビット目，仮数部=8〜31ビット目）とPCまたはWSの単精度浮動小数点型（符号部=0ビット目，指数部=1〜8ビット目，仮数部=12〜31ビット目）の小さい方の値となります。

また，変換の過程で精度が変わったり，アンダーフローおよびオーバーフローが発生したりする可能性があります。

06-00以降

CHAR

−

06-00以降

VARCHAR

−

06-00以降

LONG VARCHAR

LONG VARCHAR型に対してDESCRIBE文を発行した場合，SQLCODに返すデータ型はVARCHAR（X'C0'またはX'C1'）となります。

06-00以降

NCHAR

−

06-00以降

NVARCHAR

−

06-00以降

LONG NVARCHAR

LONG NVARCHAR型に対してDESCRIBE文を発行した場合，SQLCODに返すデータ型はNVARCHAR（X'B0'またはX'B1'）となります。

06-00以降

MCHAR

−

06-00以降

MVARCHAR

−

06-00以降

LONG MVARCHAR

LONG MVARCHAR型に対してDESCRIBE文を発行した場合，SQLCODに返すデータ型はMVARCHAR（X'A0'またはX'A1'）となります。

06-00以降

DATE

−

06-00以降

TIME

−

06-00以降

XDM/RD E2のバージョンが08-00以降の場合，小数秒精度の指定ができます。

08-00以降

TIMESTAMP

埋込み変数はSQLのCHAR型に対応する属性で定義します。

XDM/RD E2のTIMESTAMP型に対してDESCRIBE文を発行した場合，SQLCODはX'7C'またはX'7D'となるため，HiRDBクライアント側で動的SQLを実行するときはSQLCODにX'7C'またはX'7D'を指定しないでください。

07-00以降

XDM/RD E2のバージョンが08-00以降の場合，小数秒精度の指定ができます。

08-00以降

XDM/RD E2のバージョンが10-01以降の場合，上記の制限なしで使用できます。

10-01以降

INTERVAL YEAR TO DAY

−

06-00以降

INTERVAL HOUR TO SECOND

−

06-00以降

INTERVAL YEAR TO SECOND

埋込み変数はSQLのDECIMAL型に対応する属性で定義します。

XDM/RD E2のINTERVAL YEAR TO SECOND型に対してDESCRIBE文を発行した場合，SQLCODはX’60’またはX’61’となるため，HiRDBクライアント側で動的SQLを実行するときはSQLCODにX’60’またはX’61’を指定しないでください。

08-00以降

BLOB

−

06-00以降

抽象データ型

−

07-00以降

CLOB

−

11-00以降

（凡例）

−：備考はありません。

HiRDBクライアントからアクセスできないXDM/RD E2のデータ型を次の表に示します。

表6‒5　HiRDBクライアントからアクセスできないXDM/RD E2のデータ型

XDM/RD E2のデータ型

備考

BOOLEAN

SQL変数，SQLパラメタを使用したデータの受け渡しはできません。ただし，定数を使用したBOOLEAN型の更新はできます。

ROW

−

6.2　構成要素の詳細

ここでは，構成要素の詳細の中で，特に，HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。

その他の構成要素の詳細については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

6.2.1　スカラ関数HEX

スカラ関数HEXは，XDM/RD E2がシステム内部で扱う値を16進文字列表現に変換します。

例えば，「SELECT HEX （'ABC'） FROM 表名」とすると，EBCDIKコードの'ABC'を16進文字列表現に変換するため，結果はJISコードの'414243'にはなりません。'C1C2C3'になります。

6.3　SQL領域

ここでは，HiRDBクライアントを使用する場合，HiRDBクライアントで使用するSQL領域の形式と，XDM/RD E2からHiRDBクライアントに返す内容について説明します。

6.3.1　SQL連絡領域（SQLCA）

HiRDBクライアントを使用する場合，HiRDBクライアントで使用するSQL連絡領域（SQLCA）はXDM/RD E2の形式ではなく，HiRDBの形式となります。

ただし，設定される内容は，HiRDBサーバを使用する場合とは異なります。

HiRDBのSQL連絡領域の形式と，XDM/RD E2からHiRDBクライアントに返す内容を次の表に示します。

なお，XDM/RD E2からHiRDBクライアントに返す内容は，XDM/RD E2のバージョンおよびリビジョンの違いによって変化する場合があります。

次に示す内容はXDM/RD E2 06-00の内容です。XDM/RD E2のバージョンが06-01以降の場合は，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

表6‒6　HiRDBのSQL連絡領域の形式と，XDM/RD E2からHiRDBクライアントに返す内容

レベル番号※1

連絡領域名

データ

型

長さ

(バイト)

内容

1

1

SQLCA

−

336

SQL連絡領域全体の名前を表します。

2

2

SQLCAID

−

8

SQLCAIDC領域，SQLCAIDX領域，SQLCAIDS領域，およびSQLCAIDE領域の内容を値として持ちます。

3

SQLCAIDC

char

5

SQL連絡領域である文字列（'SQLCA'）が設定されます。

3

SQLCAIDX

char

1

エラーの発生したXDM/RD E2のXDM識別子が設定されます。

3

SQLCAIDS

char

1

文字列（'△'）を値として持ちます。

3

SQLCAIDE

char

1

文字列（'△'）を値として持ちます。※2

2

SQLCABC

long

4

SQL連絡領域の長さ（336バイト）が設定されています。

2

SQLCODE

long

4

SQL実行後にHiRDBクライアントまたはXDM/RD E2から返されるリターンコードを受け取る領域です。リターンコードには次に示す意味があります。

負：

正常に終了していません。

０：

正常に終了しました。

正：

正常に終了しましたが，メッセージ情報があります。

リターンコードに対応するメッセージについては，SQLERRMC領域に設定されたメッセージがKFPAから始まる場合は，マニュアル「HiRDB メッセージ」，JXZから始まる場合は，マニュアル「VOS3 データマネジメントシステム　XDM E2系　メッセージ（XDM/RD E2）」を参照してください。

なお，リターンコードに対応するメッセージIDについては，表「リターンコードに対応するメッセージID」を参照してください。

2

2

SQLERRM

−

256

SQLERRML領域およびSQLERRMC領域の内容を値として持ちます。なお，SQLCODE領域に返されるリターンコードの正負によって次に示すように異なります。

リターンコードが負の場合，誤りの個所や原因を示す文字列を返すときがあります。

リターンコードが正の場合，メッセージ情報を示す文字列を返すときがあります。

3

SQLERRML

short

2

SQLERRMC領域に返されるメッセージの長さを示します。

3

SQLERRMC

char

254

SQLCODE領域に返されるリターンコードに対応するメッセージが格納される領域です。メッセージがKFPAから始まる場合は，HiRDBクライアントから返されたメッセージです。設定内容については，マニュアル「HiRDB メッセージ」を参照してください。また，メッセージがJXZから始まる場合は，XDM/RD E2から返されたメッセージです。設定内容については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　メッセージ（XDM/RD E2）」を参照してください。

2

SQLERRP

char

8

XDM/RD E2が使用します。

2

SQLERRD

long

4×6

XDM/RD E2の内部状態を示す領域で，データ型がlongの6個の配列です。

SQLERRD[0]：

0，またはSQL文のエラー位置（単位：バイト）

SQLERRD[1]：

CPU時間（単位：0.1ミリ秒）※3

SQLERRD[2]：

次のどれかの値が返されます。

SELECT文で取り出した行数

UPDATE文で更新した行数

DELETE文で削除した行数

INSERT文で挿入した行数

FETCH文で取り出した行数

ASSIGN LIST文で作成した行数

ASSIGN LIST文で名称変更したリストの行数※4

SQLERRD[3]：

XDM/RD E2が使用します。

SQLERRD[4]：

XDM/RD E2が使用します。

SQLERRD[5]：

経過時間（単位：0.1ミリ秒）※3

2

SQLWARN0

char

1

SQLWARN1〜Fの領域のどれかに警告フラグ（'W'）が設定された場合に'W'が設定されます。

2

SQLWARN1

char

1

文字データの切り捨てが発生した場合に'W'が設定されます。または，繰返し列の検索でそのデータを受け取る埋込み変数の要素数が少なかったため，要素が切り捨てられた値を受け取った場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARN2

char

1

集合関数の処理でナル値を無視した場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARN3

char

1

検索結果の列の数と，検索結果を受け取る埋込み変数の数が一致しない場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARN4

char

1

WHERE句がないUPDATE文またはDELETE文が実行された場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARN5

char

1

SELECT文を実行した結果，検索結果が2行以上あった場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARN6

char

1

暗黙的にトランザクションが取り消された場合に'W'が設定されます。なお，X/Openに準拠したAPIを使用したUAPの場合は，トランザクションのロールバックが必要なときに'W'が設定されます。'W'が設定されている場合は，必ずトランザクションのロールバックをしてください。

2

SQLWARN7

char

1

UPDATE文でSET句またはDELETE句に添字付きの繰返し列を指定したが，更新する行にその要素がないため，更新指定が無視されたものがある場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARN8

char

1

予備

2

SQLWARN9

char

1

予備

2

SQLWARNA

char

1

日付演算の結果，存在しない日付が現れたときに，XDM/RD E2が自動的にその月の最終日に修正した場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARNB

char

1

SQL実行時の演算途中でオーバーフローまたは0除算が発生したため，演算結果をナル値とした場合に'W'が設定されます。探索条件中でオーバーフローが発生した場合は，条件が真となった行が処理される以前に処理された行で，オーバーフローが発生したことになります。それ以外は空白が設定されます。

2

SQLWARNC

char

1

日付演算の結果で日間隔中の日の部分が，00〜99の範囲外となった場合に'W'が設定されます。それ以外は空白が設定されます。

2

SQLWARND

char

1

予備

2

SQLWARNE

char

1

予備

2

SQLWARNF

char

1

予備

2

SQLCASYS

char

16

予備

（凡例）

−：該当しません。

注※1

表のレベル番号は，SQL連絡領域の包含関係を示します。例えば，レベル番号1の連絡領域はレベル番号2の連絡領域で構成されることを示します。

注※2

リモートデータベースアクセスしたサーバ側のデータベース管理システムの種別が設定されます。SQLCAIDEに設定される内容を次に示します。

設定値

サーバ側のデータベース管理システムの種別

リモートデータベースアクセスプロトコル

'D'

XDM/RD E2を示します。

DF-RDA

'△'

ローカルアクセスを示します。

該当しません

上記以外

次のどちらかを示します。

上記以外のデータベース管理システムを示します。

サーバシステムと接続していないため，データベース管理システムの種別を特定できません。

該当しません

注※3

COMMIT，ROLLBACKの時間は含まれません。

注※4

システム共通定義でpd_list_rowcount_in_renameオペランドにYを指定した場合だけ参照してください。

表6‒7　リターンコードに対応するメッセージID

リターンコード

対応するメッセージID

-yyy（例：-125）

KFPA11yyyまたはJXZ1yyy（例：KFPA11125またはJXZ1125）

yyy（例：100）

KFPA12yyyまたはJXZ2yyy（例：KFPA12100またはJXZ2100）

-1yyy（例：-1000）

JXZ9yyy（例：JXZ9000）

6.3.2　SQL記述領域（SQLDA）

HiRDBクライアントを使用する場合，HiRDBクライアントで使用するSQL記述領域（SQLDA）はXDM/RD E2の形式ではなく，HiRDBの形式となります。

ただし，HiRDBはCLOBをサポートしていません。CLOBの場合のSQL記述領域に設定するデータコードとデータの長さを次の表に示します。

表6‒8　CLOBの場合のSQL記述領域に設定するデータコードとデータの長さ

データコード10進数

データコード16進数

標識変数

データ型

データの長さ

単位

152

98

無

CLOB(n)

1≦n≦2,147,483,647

バイト

153

99

有

148

94

無

CLOB位置付け子

4

149

95

有

HiRDBのSQL記述領域の詳細については，マニュアル「HiRDB SQLリファレンス」を参照してください。

6.3.3　列名記述領域（SQLNAME）

HiRDBクライアントを使用する場合，HiRDBクライアントで使用する列名記述領域（SQLNAME）はXDM/RD E2の形式ではなく，HiRDBの形式となります。

列名記述領域の詳細については，マニュアル「HiRDB SQLリファレンス」を参照してください。

ただし，設定する値については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

6.3.4　型名記述領域

HiRDBクライアントを使用する場合，HiRDBクライアントで使用する型名記述領域はXDM/RD E2の形式ではなく，HiRDBの形式となります。

型名記述領域の詳細については，マニュアル「HiRDB SQLリファレンス」を参照してください。

ただし，SQLTNVARには，スキーマ識別子が設定されます。スキーマ識別子が9バイト以上の場合は，ユーザ定義型の定義情報を受け取ることができません。

6.4　定義系SQL

定義系SQLの仕様は，XDM/RD E2の仕様に従います。各SQLの詳細仕様は，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

なお，OLTP下のX/Openに準拠したUAPでは，定義系SQLは使用できません。

HiRDBクライアントを使用する場合の定義系SQLの使用可否を次の表に示します。

表6‒9　HiRDBクライアントを使用する場合の定義系SQLの使用可否

項番

SQL

静的SQL

動的SQL※1

使用可能なXDM/RD E2のバージョン

1

ALTER FUNCTION

×

○

07-00以降

2

ALTER PROCEDURE

○

○

07-00以降

3

ALTER PROGRAM

×

○

06-00以降

4

ALTER SCHEMA

−

−

−

5

ALTER TABLE

○

○

06-00以降

6

ALTER TRIGGER

×

○

06-02以降

7

COMMENT

○

○

06-00以降

8

CREATE FUNCTION

○※2

○

07-00以降

9

CREATE INDEX

○

○

06-00以降

10

CREATE NONLOCAL TABLE

×

○

06-00以降

11

CREATE PROCEDURE

○※2

○

06-00以降

12

CREATE PROGRAM

×

○

06-00以降

13

CREATE SCHEMA

○

○

06-00以降

14

CREATE TABLE

○

○

06-00以降

15

CREATE TRIGGER

×

○

06-02以降

16

CREATE TYPE

○※2

○

07-00以降

17

CREATE VIEW

○

○

06-00以降

18

DROP FUNCTION

○

○

07-00以降

19

DROP INDEX

○

○

06-00以降

20

DROP NONLOCAL TABLE

×

○

06-00以降

21

DROP PROCEDURE

○

○

06-00以降

22

DROP PROGRAM

×

○

06-00以降

23

DROP SCHEMA

○

○

06-00以降

24

DROP TABLE

○

○

06-00以降

25

DROP TRIGGER

×

○

06-02以降

26

DROP TYPE

○

○

07-00以降

27

DROP VIEW

○

○

06-00以降

28

GRANT RDAREA

○

○

06-00以降

29

GRANT SCHEMA

○

○

06-00以降

30

GRANT アクセス権限

（アクセス権限定義）

○

○

06-00以降

31

GRANT ユーザ定義型権限

（ユーザ定義型権限定義）

×

○

08-00以降

32

LABEL

×

○

06-00以降

33

REVOKE RDAREA

○

○

06-00以降

34

REVOKE SCHEMA

○

○

06-00以降

35

REVOKE アクセス権限

（アクセス権限定義）

○

○

06-00以降

36

REVOKE ユーザ定義型権限

（ユーザ定義型権限定義）

×

○

08-00以降

（凡例）

○：使用できます。

×：使用できません（ただし，プリプロセス時にエラーにならない場合があります）。

−：該当しません。

注※1

動的SQLとはPREPARE文またはEXECUTE IMMEDIATE文で前処理するSQLを指します。

注※2

次に示すSQL文中のSQLパラメタおよびRETURNS句には，文字集合指定（CHARACTER SET）はできません。文字集合指定をする場合は，動的SQL（EXECUTE IMMEDIATE文）を使用してください。

CREATE FUNCTION

CREATE PROCEDURE

CREATE TYPE

6.5　操作系SQL

ここでは，HiRDBを使用する場合，操作系SQLが使用できるかどうか，およびデータベースを操作するときの注意事項について説明します。

6.5.1　概要

操作系SQLの仕様は，XDM/RD E2の仕様に従います。各SQLの詳細仕様は，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

HiRDBクライアントを使用する場合の操作系SQLの使用可否を次の表に示します。

表6‒10　HiRDBクライアントを使用する場合の操作系SQLの使用可否

項番

SQL

静的SQL

動的SQL

使用可能なXDM/RD E2のバージョン

1

ALLOCATE CURSOR文

×

×

−

2

ASSIGN LIST文

×

×

06-00以降

3

CLOSE文

○

−

06-00以降

4

DEALLOCATE PREPARE文

×

×

−

5

DECLARE CURSOR

　WITH句

○

−

06-00以降

DECLARE CURSOR

　WITH RECURSIVE句

×

−

DECLARE CURSOR

　その他

○

−

6

動的DECLARE CURSOR

○

−

06-00以降

7

DELETE文

○

○

06-00以降

8

DESCRIBE文

　INPUT※1

○

−

06-00以降

DESCRIBE文

　OUTPUT

○

−

9

DESCRIBE TYPE文

○

−

07-00以降

10

DROP LIST文

×

×

−

11

EXECUTE文

○

−

06-00以降

12

EXECUTE IMMEDIATE文

○

−

06-00以降

13

FETCH文

○

−

06-00以降

14

FREE LOCATOR文

○

○

11-00以降

15

HOLD LOCATOR文

×

○

11-00以降

16

INSERT文※2

○

○

06-00以降

17

OPEN文

○

−

06-00以降

18

PREPARE文

○

○

06-00以降

19

PURGE TABLE文※3

○

○

06-00以降

20

1行SELECT文

○

○

06-00以降

21

動的SELECT文

　WITH句

−

○

06-00以降

動的SELECT文

　WITH RECURSIVE句

−

○

06-00以降

動的SELECT文

　その他

−

○

06-00以降

22

1行SELECT LIST文

×

×

−

23

UPDATE文

○

○

06-00以降

（凡例）

○：使用できます。

×：使用できません（ただし，プリプロセス時にエラーにならない場合もあります）。

−：該当しません。

注※1

XDM/RD E2 07-00以降のバージョンでは，SQLNAME（列名記述領域）にCALL文で指定した？パラメタに対応するSQLパラメタ名が返却されます。

注※2

静的SQLの場合は，「挿入値」に「値式」は指定できず，「値指定」となります。

注※3

OLTP下のX/Openに準拠したUAPでは，PURGE TABLE文は使用できません。

6.5.2　データベース操作時の注意事項

(1)　行単位（ROW指定）インタフェース

PCまたはWSでは，行単位（ROW指定）インタフェースは使用できません。

SQL構文規則

選択式にROWは指定できません。

UPDATE文に「SET ROW = 行更新値」は指定できません。

INSERT文に「表識別子（ROW）」は指定できません。

(2)　繰返し列

繰返し列を使用する場合のSQLの構文規則は，XDM/RD E2のRD環境定義文のHIRDB PROGRAM句にSQL SPECIFICATION XDMRDを指定しているかどうかによって異なります。

SQLの構文規則の詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

また，XDM/RD E2のバージョンによって，繰返し列が使用できる場合とできない場合があります。XDM/RD E2のバージョンと繰返し列の使用可否を次に示します。

XDM/RD E2のバージョン

繰返し列の使用可否

06-03以前

×

07-00以降

○

（凡例）

○：使用できます。

×：使用できません。

注意事項

添字指定の構文形式

XDM/RD E2接続機能を使用する場合は，添字指定の構文形式は角括弧形式となります。XDM/RD E2の構文形式とXDM/RD E2接続機能を使用する場合の構文形式を次に示します。

XDM/RD E2の構文形式

SELECT * FROM T1 WHERE C1（ANY）=1

XDM/RD E2接続機能を使用する場合の構文形式

SELECT * FROM T1 WHERE C1［ANY］=1

要素リスト

要素の追加に指定する要素リストの構文形式は，角括弧形式となります。

要素リストの詳細については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

(3)　配列列

配列列は使用できません。

DESCRIBE文を発行すると，データ型を示すSQLCODに0（未サポートの意味）を返します。

(4)　ユティリティ

HiRDBのユティリティを用いてXDM/RD E2にアクセスすることはできません。

ただし，「会話型SQL実行ユティリティ（pdsql）」を使用してSQLを実行させることはできます（pdsqlコマンドの使用可否については，HiRDB SQL Excuterを参照してください。なお，一部のコマンドについては，XDM/RD E2でHiRDB形式ディクショナリビュー表を作成する必要があります。HiRDB形式ディクショナリビュー表については，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−運用編−」を参照してください）。

この場合のSQLの仕様は，XDM/RD E2のSQL仕様（HiRDBプログラムのSQL仕様）に従います。

(5)　明示表

XDM/RD E2のバージョンや呼び出し形態によって，明示表が使用できる場合とできない場合があります。XDM/RD E2のバージョンと明示表の使用可否を次に示します。

XDM/RD E2のバージョン

明示表の使用可否

動的SQL

静的SQL

07-01以前

×

×※

08-00以降

○

×※

（凡例）

○：使用できます。

×：使用できません。

注※

プリプロセス時にエラーにならない場合がありますが，動作は保証されません。

プリプロセス時にエラーにならない例

次のようにWHERE句に明示表を指定した場合

SELECT * FROM T1 WHERE (C1,C2) = (TABLE T2)

6.6　制御系SQL

制御系SQLの仕様は，XDM/RD E2の仕様に従います。各SQLの詳細仕様は，マニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 SQLリファレンス」を参照してください。

HiRDBクライアントを使用する場合の制御系SQLの使用可否を次の表に示します。

表6‒11　HiRDBクライアントを使用する場合の制御系SQLの使用可否

項番

SQL

静的SQL

動的SQL

使用可能なXDM/RD E2のバージョン

1

CALL文※1

○

○

06-00以降

2

COMMIT文※2

○

−

06-00以降

3

CONNECT文※2,3

○

−

06-00以降

4

DISCONNECT文※2

○

−

06-00以降

5

LOCK文

○

○

06-00以降

6

ROLLBACK文※2,4

○

−

06-00以降

7

SET SCHEMA文※5

×

○

06-00以降

（凡例）

○：使用できます。

×：使用できません（ただし，プリプロセス時にエラーにならない場合もあります）。

−：該当しません。

注※1

HiRDBではCALL文は制御系SQLに含まれます。

XDM/RD E2ではCALL文はSQL制御文に含まれます。

注※2

OLTP下のX/Openに準拠したUAPでは，次に示すSQL文は使用できません。

COMMIT文

CONNECT文

DISCONNECT文

ROLLBACK文

注※3

CONNECT文を記述する時に，CONNECTだけを指定して以降のオペランド（埋込み変数など）を省略した場合は，環境変数PDUSERに指定した認可識別子とパスワードを使用してXDM/RD E2と接続します。

注※4

ROLLBACK 文にWITH STOPPINGは指定できません。

注※5

SET SCHEMA文の対象となるSQLは動的SQLであり，静的SQLは対象になりません。

6.7　SQL制御文

HiRDBクライアントを使用する場合のSQL制御文の使用可否を次の表に示します。

表6‒12　HiRDBクライアントを使用する場合のSQL制御文の使用可否

項番

SQL

静的SQL

動的SQL

使用可能なXDM/RD E2 のバージョン

1

CALL文※1

○

○

06-00以降

2

CASE文

−※2

−※2

08-00以降

3

IF文

−※2

−※2

07-00以降

4

ITERATE文

−※2

−※2

08-00以降

5

LEAVE文

−※2

−※2

07-00以降

6

LOOP文

−※2

−※2

08-00以降

7

REPEAT文

−※2

−※2

08-00以降

8

RETURN文

−※2

−※2

07-00以降

9

WHILE文

−※2

−※2

07-00以降

10

代入文

−※2

−※2

06-02以降

11

複合文

−※2

−※2

06-02以降

12

WRITE LINE文

−※2

−※2

11-00以降

（凡例）

○：使用できます。

−：該当しません。

注※1

XDM/RD E2ではCALL文はSQL制御文に含まれます。

HiRDBではCALL文は制御系SQLに含まれます。

注※2

SQL手続き文中で使用するSQLです。SQL手続き文中に指定できます。

6.8　SQL診断文

HiRDBクライアントを使用する場合のSQL診断文の使用可否を次の表に示します。

表6‒13　HiRDBクライアントを使用する場合のSQL診断文の使用可否

項番

SQL

静的SQL

動的SQL

使用可能なXDM/RD E2のバージョン

1

GET DIAGNOSTICS文

×

−※1

−

2

SIGNAL 文

−※2

−※2

−

（凡例）

×：使用できません。

−：該当しません。

注※1

動的SQLでは使用できないSQL文のため該当しません。

注※2

SQL手続き文中で使用するSQLです。SQL手続き文中に指定できます。

6.9　埋込み言語文法

埋込み言語は，埋込み型UAPを作成する場合にプログラム用SQLと一緒に使用して，埋込み変数の宣言およびリターンコードによる処理の宣言をするSQLです。

埋込み型言語については，XDM/RD E2の仕様ではなく，HiRDBの仕様に従います。ただし，HiRDBで使用できるすべてが使用できるわけではなく，使用できないものもあります。

XDM/RD E2接続機能を使用する場合の埋込み型言語の使用可否を次の表に示します。

表6‒14　XDM/RD E2接続機能を使用する場合の埋込み型言語の使用可否

項番

埋込み型言語

使用可否

1

BEGIN DECLARE SECTION（埋込みSQL開始宣言）

○

2

END DECLARE SECTION （埋込みSQL終了宣言）

○

3

ALLOCATE CONNECTION HANDLE

○

4

FREE CONNECTION HANDLE

○

5

DECLARE CONNECTION HANDLE SET

○

6

DECLARE CONNECTION HANDLE UNSET

○

7

GET CONNECTION HANDLE

○

8

COPY（登録集原文の引込み）

○

9

GET DIAGNOSTICS（診断情報取得）

×

10

COMMAND EXECUTE

×

11

SQL先頭子

○

12

SQL終了子

○

13

WHENEVER （埋込み例外宣言）

○

14

SQLCODE変数

△

15

SQLSTATE変数

△

16

PDCNCTHDL変数

○

17

INSTALL JAR

×

18

REPLACE JAR

×

19

REMOVE JAR

×

20

DECLARE AUDIT INFO SET

×

（凡例）

○：使用できます。

△：使用できますが，仕様に差異があります。

×：使用できません。

SQLCODE

SQLCODE変数で受け取るSQLCODEは，XDM/RD E2が設定するSQLCODEまたはHiRDBクライアントが設定するSQLCODEとなります。SQLCODE変数の値は，SQL連絡領域（SQLCA）のSQLCODEと同じです。詳細については「SQL連絡領域（SQLCA）」を参照してください。

XDM/RD E2が設定するSQLCODEは，XDM/RD E2のRD環境定義文のHIRDB PROGRAM句の指定によって変化します。詳細についてはマニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−RD環境定義文・空間起動制御文・運用コマンド編−」を参照してください。

SQLSTATE

SQLSTATE変数で受け取る値は，XDM/RD E2が設定するSQLSTATEまたはHiRDBクライアントが設定するSQLSTATEとなります。

XDM/RD E2が設定するSQLSTATEは，XDM/RD E2のRD環境定義文のHIRDB PROGRAM句の指定によって変化します。詳細についてはマニュアル「VOS3 データマネジメントシステム　XDM E2系　XDM/RD E2 使用の手引−RD環境定義文・空間起動制御文・運用コマンド編−」を参照してください。

各埋込み言語の詳細については，マニュアル「HiRDB SQLリファレンス」を参照してください。

付録

付録A　SQLのデータ型とデータ記述

ここでは，SQLのデータ型とデータ記述の対応の中で，HiRDBサーバを使用する場合とXDM/RD E2を使用する場合で差異がある項目について説明します。

HiRDBサーバを使用する場合のSQLのデータ型とデータ記述については，マニュアル「HiRDB UAP開発ガイド」を参照してください。

付録A.1　SQLのデータ型とC言語のデータ記述

SQLのデータ型とC言語のデータ記述の対応は，マニュアル「HiRDB UAP開発ガイド」の「SQLのデータ型とC言語のデータ記述」で示す対応に従います。ただし，XDM/RD E2接続機能で固有の対応をする場合があるので注意が必要です。

(1)　配列，繰返し列を使用しない場合

SQLのデータ型とC言語のデータ記述の対応の，XDM/RD E2接続機能を使用時に固有の追加項目を次の表に示します。

表A‒1　SQLのデータ型とC言語のデータ記述（追加項目）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

LARGE DECIMAL

[(p[，s])]

SQL TYPE IS

DECIMAL(p,s)

変数名;※１

変数

1≦p≦29，

0≦s≦p

LONG VARCHAR(n)

struct {

short 変数名1;

char 変数名2[n];

} 構造体名;

二つの変数から構成される構造体

変数名1:文字列長

変数名2:文字列

1≦n≦32,000

LONG NVARCHAR(n)

struct {

short 変数名1;

char 変数名2[2n];

} 構造体名;

二つの変数から構成される構造体

変数名1:文字列長

変数名2:文字列

1≦n≦16,000

LONG MVARCHAR(n)

struct {

short 変数名1;

char 変数名2[n];

} 構造体名;

二つの変数から構成される構造体

変数名1：文字列長

変数名2：文字列

1≦n≦32,000

INTERVAL YEAR TO SECOND(q)

SQL TYPE IS

DECIMAL(14+q,q)

変数名;

変数

q=0，2，4，6

CLOB

SQL TYPE IS CLOB(n{K｜M｜G})変数名;※２

変数

単位省略時：

1≦n≦2,147,483,647

単位がKB：

1≦n≦2,097,152

単位がMB：

1≦n≦2,048

単位がGB：

1≦n≦2

CLOB位置付け子

SQL TYPE IS CLOB AS LOCATOR変数名; ※３

変数

−

標識変数

CLOB

long 変数名;

変数

−

（凡例）

n：長さ（バイト）

p：精度（全体のけた数）

q：小数秒精度

s：位取り（小数点以下のけた数）

−：備考はありません。

注※１

DECIMALのUAPの記述は，内部的に次のように展開されます。

unsigned char 変数名[p/2+1];

DECIMALのデータは1バイトで2けたの数字を表現します。符号は，右端のバイトの右4ビットで表します。そのため，偶数けたのDECIMAL型の場合，左端の左4ビットに0を補う必要があります。0以外の値は設定しないでください。

標準的な符号表現を次に示します。HiRDBでのDECIMAL型の符号については，マニュアル「HiRDB SQLリファレンス」を参照してください。

符号の16進数表現

意味

X'C'

正の符号とみなします。正数には0を含みます。

X'D'

負の符号とみなします。

記述例

123.4567の場合（奇数けた）

unsigned char ex1[4]={0x12,0x34,0x56,0x7c} ;

-123.456の場合（偶数けた）

unsigned char ex2[4]={0x01,0x23,0x45,0x6d} ;

0の場合（奇数けた）

unsigned char ex3[1]={0x0c} ;

注※２

CLOBのUAPの記述は，内部的に次のように展開されます。

struct{
      long           変数名_reserved;         … 1
      unsigned long  変数名_length;           … 2
      char           変数名_data[m];          … 3
}変数名;

変数名_reservedは，使用しません。64ビットモードの場合は，int 変数名_reserved;となります。

変数名_lengthは，CLOBの実際の長さ（バイト）になります。64ビットモードの場合は，unsigned int 変数名_lengthとなります。

変数名_data[m]は，CLOBのデータ格納領域（mは実際のデータ長）になります。

注※３

CLOB位置付け子のUAPの記述は，内部的に次のように展開されます。

unsigned long 変数名;

64ビットモードの場合は，unsigned long 変数名はunsigned int 変数名;になります。

また，SQLのデータ型とC言語のデータ記述の変更前と変更後を表「SQLのデータ型とC言語のデータ記述（変更前）」および表「SQLのデータ型とC言語のデータ記述（変更後）」に示します。

表A‒2　SQLのデータ型とC言語のデータ記述（変更前）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

TIME

char 変数名[9];

変数

−

TIMESTAMP[(q)]

char 変数名[n+1];

変数

q=0の場合：n=19

q=2の場合：n=21，22

q=4の場合：n=23，24

q=6の場合：n=25，26

（凡例）

n：長さ（バイト）

q：小数秒精度

−：備考はありません。

表A‒3　SQLのデータ型とC言語のデータ記述（変更後）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

TIME[(q)]

char 変数名[n+1]；

変数

q=0の場合：n=8

q=2の場合：n=11

q=4の場合：n=13

q=6の場合：n=15

TIMESTAMP[(q)]

char 変数名[n+1];

変数

q=0の場合：n=19

q=2の場合：n=22

q=4の場合：n=24

q=6の場合：n=26

（凡例）

n：長さ（バイト）

q：小数秒精度

注

太字の部分が変更点です。

(2)　配列を使用する場合

SQLのデータ型とC言語のデータ記述の対応の，XDM/RD E2接続機能を使用時に固有の追加項目（配列を使用する場合）を次の表に示します。

表A‒4　配列を使用する場合のSQLのデータ型とC言語のデータ記述（追加項目）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

LARGE DECIMAL

−

−

−

LONG VARCHAR(n)

struct {

short 変数名1;

char 変数名2[n];

} 構造体名[m];

構造体の配列

1≦n≦32,000

LONG NVARCHAR(n)

struct {

short 変数名1;

char 変数名2[2n];

} 構造体名[m];

構造体の配列

1≦n≦16,000

LONG MVARCHAR(n)

struct {

short 変数名1;

char 変数名2[n];

} 構造体名[m];

構造体の配列

1≦n≦32,000

ROW

char 変数名[m][n+1];

構造体の配列

1≦n≦30,000

INTERVAL YEAR TO SECOND(q)

−

−

−

CLOB

−

−

−

CLOB位置付け子

−

−

−

（凡例）

m：配列の要素数

n：長さ（バイト）

q：小数秒精度

−：該当しません。

また，SQLのデータ型とC言語のデータ記述の変更前と変更後を表「配列を使用する場合のSQLのデータ型とC言語のデータ記述（変更前）」および表「配列を使用する場合のSQLのデータ型とC言語のデータ記述（変更後）」に示します。

表A‒5　配列を使用する場合のSQLのデータ型とC言語のデータ記述（変更前）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

TIME

char 変数名[m][9];

配列

−

TIMESTAMP[(q)]

char 変数名[m][n+1];

配列

q=0の場合：n=19

q=2の場合：n=21，22

p=4の場合：n=23，24

q=6の場合：n=25，26

（凡例）

m：配列の要素数

n：長さ（バイト）

q：小数秒精度

−：備考はありません。

表A‒6　配列を使用する場合のSQLのデータ型とC言語のデータ記述（変更後）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

TIME[(q)]

char 変数名[m][n+1];

配列

q=0の場合：n=8

q=2の場合：n=11

q=4の場合：n=13

q=6の場合：n=15

TIMESTAMP[(q)]

char 変数名[m][n+1];

配列

q=0の場合：n=19

q=2の場合：n=22

q=4の場合：n=24

q=6の場合：n=26

（凡例）

m：配列の要素数

n：長さ（バイト）

q：小数秒精度

注

太字の部分が変更点です。

(3)　繰返し列を使用する場合

SQLのデータ型とC言語のデータ記述の対応の，XDM/RD E2接続機能を使用時に固有の追加項目（繰返し列を使用する場合）を次の表に示します。

表A‒7　繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述（追加項目）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

LARGE DECIMAL

[(p[，s])]

PD_MV_DEC(m,p,s) 変数名;

要素と配列から構成される構造体

−

NVARCHAR(n)

PD_MV_NVCHAR(m,n) 変数名;

要素と配列から構成される構造体

1≦n≦16,000

TIMESTAMP

PD_MV_CHAR(m,19) 変数名;

要素と配列から構成される構造体

−

INTERVAL YEAR TO SECOND(q)

PD_MV_DEC(m,14+q,q) 変数名;

要素と配列から構成される構造体

q=0，2，4，6

CLOB

−

−

−

CLOB位置付け子

−

−

−

（凡例）

m：繰返し列の最大要素数

n：長さ（バイト）

p：精度（全体のけた数）

q：小数秒精度

s：位取り（小数点以下のけた数）

−：該当しません。

また，SQLのデータ型とC言語のデータ記述の変更前と変更後を表「繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述（変更前）」および表「繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述（変更後）」に示します。

表A‒8　繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述（変更前）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

VARCHAR(n)

/MVARCHAR(n)

PD_MV_VCHAR(m,n) 変数名;

要素と配列から構成される構造体

1≦n≦32,000

NVARCHAR(n)

PD_MV_NVCHAR(m,n) 変数名;

1≦n≦16,000

TIME

PD_MV_CHAR(ｍ,8) 変数名;

−

TIMESTAMP[(q)]

PD_MV_CHAR(ｍ,n) 変数名;

q=0の場合：n=19

q=2の場合：n=21，22

q=4の場合：n=23，24

q=6の場合：n=25，26

（凡例）

m：繰返し列の最大要素数

n：長さ（バイト）

q：小数秒精度

−：備考はありません。

表A‒9　繰返し列を使用する場合のSQLのデータ型とC言語のデータ記述（変更後）

SQLのデータ型

C言語のデータ記述

項目の記述

備考

VARCHAR(n)

/LONG VARCHAR(n)

/MVARCHAR(n)

/LONG MVARCHAR(n)

PD_MV_VCHAR(m,n) 変数名;

要素と配列から構成される構造体

1≦n≦32,000

NVARCHAR(n)

/LONG NVARCHAR(n)

PD_MV_NVCHAR(m,n) 変数名;

1≦n≦16,000

TIME[(q)]

PD_MV_CHAR(m,n) 変数名;

q=0の場合：n=8

q=2の場合：n=11

q=4の場合：n=13

q=6の場合：n=15

TIMESTAMP[(q)]

PD_MV_CHAR(m,n) 変数名;

q=0の場合：n=19

q=2の場合：n=22

q=4の場合：n=24

q=6の場合：n=26

（凡例）

m：繰返し列の最大要素数

n：長さ（バイト）

q：小数秒精度

注

太字の部分が変更点です。

付録A.2　SQLのデータ型とCOBOL言語のデータ記述

SQLのデータ型とCOBOL言語のデータ記述の対応は，マニュアル「HiRDB UAP開発ガイド」の「SQLのデータ型とCOBOL言語のデータ記述」で示す対応に従います。ただし，XDM/RD E2接続機能で固有の対応をする場合があるので注意が必要です。

(1)　配列，繰返し列を使用しない場合

SQLのデータ型とCOBOL言語のデータ記述の対応の，XDM/RD E2接続機能を使用時に固有の追加項目を次の表に示します。

表A‒10　SQLのデータ型とCOBOL言語のデータ記述（追加項目）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

LARGE

DECIMAL

[(p[，s])]

L1 基本項目名

PICTURE S9(p-s)[V9(s)]

COMPUTATIONAL-3.

基本項目または独立項目

1≦p≦18，

0≦s≦p

p=sの場合，SV9(s)とします。

s=0の場合，[V9(s)]を省略します。

LONG

VARCHAR(n)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(4)

COMPUTATIONAL.

L3 基本項目名2

PICTURE X(n).

二つの基本項目から構成される集団項目

基本項目名1：文字列長基本項目名2：文字列

1≦n≦32,000

LONG

NVARCHAR(n)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(4)

COMPUTATIONAL.

L3 基本項目名2

PICTURE N(n).

二つの基本項目から構成される集団項目

基本項目名1：文字列長基本項目名2：文字列

1≦n≦16,000

LONG

MVARCHAR(n)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(4)

COMPUTATIONAL.

L3 基本項目名2

PICTURE X(n).

二つの基本項目から構成される集団項目

基本項目名1：文字列長

基本項目名2：文字列

1≦n≦32,000

INTERVAL YEAR TO SECOND(q)

L1 基本項目名

PICTURE S9(14)[V9(q)]

COMPUTATION-3.

基本項目または独立項目

q=0，2，4，6

q=0の場合，[V9(q)]を省略します。

q>4の場合，精度>18となるため，q=6の場合は精度=18で展開されるので，V9(4)となります。

CLOB(n)

L2 集団項目名※１

[USAGE [IS]]

SQL TYPE IS

CLOB(n{K｜M｜G}).※２

基本項目

単位省略時：

1≦n≦2,147,483,647

単位がKB：

1≦n≦2,097,152

単位がMB：

1≦n≦2,048

単位がGB：

1≦n≦2

CLOB位置付け子

L1 基本項目名

[USAGE [IS]]

SQL TYPE IS

CLOB AS LOCATOR.※３

基本項目または独立項目

−

標識変数

CLOB

L4 基本項目名

PICTURE S9(9)

COMPUTATIONAL.

基本項目または独立項目

−

（凡例）

L1：レベル番号01〜49，または77

L2：レベル番号01〜48

L3：レベル番号02〜49(L2<L3)

L4：レベル番号01〜49

n：長さ（バイト）

p：精度（全体のけた数）

q：小数秒精度

s：位取り（小数点以下のけた数）

−：備考はありません。

注※１

集団項目名は21文字以下にしてください。ただし，COBOL2002の場合は22文字以下にしてください。

注※２

CLOBのUAPの記述は，内部的に次のように展開されます。

L2 集団項目名.
      49 集団項目名-RESERVED PICTURE S(9) USAGE IS BINARY.  … 1
      49 集団項目名-LENGTH  PICTURE S(9) USAGE IS BINARY.   … 2
      49 集団項目名-DATA   PIC X(m).                        … 3

変数名-RESERVEDは，使用しません。

変数名-LENGTHは，CLOBの実際の長さ（バイト）になります。

変数名-DATAは，CLOBのデータ格納領域（mは実際のデータ長）になります。

注※３

CLOB位置付け子のUAPの記述は，内部的に次のように展開されます。

L1 基本項目名 PICTURE S9(9) COMPUTATIONAL.

また，SQLのデータ型とCOBOL言語のデータ記述の変更前と変更後を表「SQLのデータ型とCOBOL言語のデータ記述（変更前）」および表「SQLのデータ型とCOBOL言語のデータ記述（変更後）」に示します。

表A‒11　SQLのデータ型とCOBOL言語のデータ記述（変更前）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

TIME

L1 基本項目名

PICTURE X(8).

基本項目または独立項目

−

TIMESTAMP[(q)]

L1 基本項目名

PICTURE X(n).

基本項目または独立項目

q=0の場合：n=19

q=2の場合：n=21，22

q=4の場合：n=23，24

q=6の場合：n=25，26

（凡例）

L1：レベル番号01〜49，または77

n：長さ（バイト）

q：小数秒精度

−：備考はありません。

表A‒12　SQLのデータ型とCOBOL言語のデータ記述（変更後）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

TIME[(q)]

L1 基本項目名

PICTURE X(ｎ).

基本項目または独立項目

q=0の場合：n=8

q=2の場合：n=11

q=4の場合：n=13

q=6の場合：n=15

TIMESTAMP[(q)]

L1 基本項目名

PICTURE X(ｎ).

基本項目または独立項目

q=0の場合：n=19

q=2の場合：n=22

q=4の場合：n=24

q=6の場合：n=26

（凡例）

L1：レベル番号01〜49，または77

n：長さ（バイト）

q：小数秒精度

注

太字の部分が変更点です。

(2)　配列を使用する場合

SQLのデータ型とCOBOL言語のデータ記述の対応の，XDM/RD E2接続機能を使用時に固有の追加項目（配列を使用する場合）を次の表に示します。

表A‒13　配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（追加項目）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

LARGE

DECIMAL

[(p[,s])]

L2 基本項目名

PICTURE S9(p-s)[V9(s)]

COMPUTATIONAL-3

OCCURS m TIMES.

OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目

−

LONG

VARCHAR(n)

L2 集団項目名2

OCCURS m TIMES.

L3 基本項目名1

PICTURE S9(4)

COMPUTATIONAL.

L3 基本項目名2

PICTURE X(n).

OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目

1≦n≦32,000

LONG

NVARCHAR(n)

L2 集団項目名2

OCCURS m TIMES.

L3 基本項目名1

PICTURE S9(4)

COMPUTATIONAL.

L3 基本項目名2

PICTURE N(n).

OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目

1≦n≦16,000

LONG

MVARCHAR(n)

L2 集団項目名2

OCCURS m TIMES.

L3 基本項目名1

PICTURE S9(4)

COMPUTATIONAL.

L3 基本項目名2

PICTURE X(n).

OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目

1≦n≦32,000

INTERVAL YEAR TO SECOND(q)

L2 基本項目名

PICTURE S9(14)[V9(q)]

COMPUTATIONAL-3

OCCURS m TIMES.

OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目

q=0，2，4，6

q=0の場合，[V9(q)]を省略します。

q>4の場合，精度>18となるため，q=6の場合は精度=18で展開されるので，V9(4)となります。

CLOB

−

−

−

CLOB位置付け子

−

−

−

（凡例）

L2：レベル番号02〜49(L2<L3)

L3：レベル番号03〜49

m：配列の要素数

n：長さ（バイト）

p：精度（全体のけた数）

q：小数秒精度

s：位取り（小数点以下のけた数）

−：該当しません。

また，SQLのデータ型とCOBOL言語のデータ記述の変更前と変更後を表「配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更前）」および表「配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更後）」に示します。

表A‒14　配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更前）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

TIME

L2 基本項目名

PICTURE X(8)

OCCURS m TIMES.

OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目

−

TIMESTAMP[(q)]

L2 基本項目名

PICTURE X(n)

OCCURS m TIMES.

q=0の場合：n=19

q=2の場合：n=21，22

q=4の場合：n=23，24

q=6の場合：n=25，26

（凡例）

L2：レベル番号02〜49(L2<L3)

m：配列の要素数

n：長さ（バイト）

q：小数秒精度

−：備考はありません。

表A‒15　配列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更後）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

TIME[(q)]

L2 基本項目名

PICTURE X(n)

OCCURS m TIMES.

OCCURSの指定によって同じデータ構造を繰り返す反復データ項目から構成される集団項目

q=0の場合：n=8

q=2の場合：n=11

q=4の場合：n=13

q=6の場合：n=15

TIMESTAMP[(q)]

L2 基本項目名

PICTURE X(n)

OCCURS m TIMES.

q=0の場合：n=19

q=2の場合：n=22

q=4の場合：n=24

q=6の場合：n=26

（凡例）

L2：レベル番号02〜49(L2<L3)

m：配列の要素数

n：長さ（バイト）

q：小数秒精度

注

太字の部分が変更点です。

(3)　繰返し列を使用する場合

SQLのデータ型とCOBOL言語のデータ記述の対応の，XDM/RD E2接続機能を使用時に固有の追加項目（繰返し列を使用する場合）を次の表に示します。

表A‒16　繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（追加項目）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

LARGE

DECIMAL

[(p[，s])]

L2 集団項目名.

L3 基本項目名1

PICTURE S9(9)

COMPUTATIONAL.

L3 基本項目名2

PICTURE S9(p-s)[V9(s)]

COMPUTATIONAL-3

OCCURS m TIMES.

（P=SのときはSV9(p)とする）

二つの基本項目から構成される集団項目

−

INTERVAL YEAR TO SECOND(q)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(9)

COMPUTATIONAL.

L3 基本項目名2

PICTURE S9(14)[V9(q)]

COMPUTATIONAL-3

OCCURS m TIMES.

二つの基本項目から構成される集団項目

q=0，2，4，6

q=0の場合，[V9(q)]を省略します。

q>4の場合，精度>18となるため，q=6の場合は精度=18で展開されるので，V9(4)となります。

CLOB

−

−

−

CLOB位置付け子

−

−

−

（凡例）

L2：レベル番号02〜49(L2<L3)

L3：レベル番号03〜49

m：繰返し列の最大要素数

p：精度（全体のけた数）

q：小数秒精度

s：位取り（小数点以下のけた数）

−：該当しません。

また，SQLのデータ型とCOBOL言語のデータ記述の変更前と変更後を表「繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更前）」および表「繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更後）」に示します。

表A‒17　繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更前）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

VARCHAR(n)

/MVARCHAR(n)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(9)

COMPUTATIONAL.

L3 集団項目名2

OCCURS m TIMES.

L4 基本項目名3

PICTURE S9(4)

COMPUTATIONAL.

L4 基本項目名4

PICTURE X(n).

二つの基本項目から構成される集団項目と，一つの基本項目から構成される集団項目

1≦n≦32,000

NVARCHAR(n)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(9)

COMPUTATIONAL.

L3 集団項目名2

OCCURS m TIMES.

L4 基本項目名3

PICTURE S9(4)

COMPUTATIONAL.

L4 基本項目名4

PICTURE N(n).

二つの基本項目から構成される集団項目と，一つの基本項目から構成される集団項目

1≦n≦16,000

TIME

L2 集団項目名.

L3 基本項目名１

PICTURE S9(9)

COMPUTATIONAL.

L3 基本項目名２

PICTURE X(8)

OCCURS ｍ TIMES.

二つの基本項目から構成される集団項目

−

TIMESTAMP[(q)]

L2 集団項目名.

L3 基本項目名１

PICTURE S9(9)

COMPUTATIONAL.

L3 基本項目名２

PICTURE X(n)

OCCURS ｍ TIMES.

二つの基本項目から構成される集団項目

q=0の場合：n=19

q=2の場合：n=21，22

q=4の場合：n=23，24

q=6の場合：n=25，26

（凡例）

L2：レベル番号02〜49

L3，L4：レベル番号03〜49

m：繰返し列の最大要素数

n：長さ（バイト）

q：小数秒精度

−：備考はありません。

表A‒18　繰返し列を使用する場合のSQLのデータ型とCOBOL言語のデータ記述（変更後）

SQLのデータ型

COBOL言語のデータ記述

項目の記述

備考

VARCHAR(n)

/LONG VARCHAR(n)

/MVARCHAR(n)

/LONG MVARCHAR(n)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(9)

COMPUTATIONAL.

L3 集団項目名2

OCCURS m TIMES.

L4 基本項目名3

PICTURE S9(4)

COMPUTATIONAL.

L4 基本項目名4

PICTURE X(n).

二つの基本項目から構成される集団項目と，一つの基本項目から構成される集団項目

1≦n≦32,000

NVARCHAR(n)

/LONG NVARCHAR(n)

L2 集団項目名.

L3 基本項目名1

PICTURE S9(9)

COMPUTATIONAL.

L3 集団項目名2

OCCURS m TIMES.

L4 基本項目名3

PICTURE S9(4)

COMPUTATIONAL.

L4 基本項目名4

PICTURE N(n).

二つの基本項目から構成される集団項目と，一つの基本項目から構成される集団項目

1≦n≦16,000

TIME[(q)]

L2 集団項目名.

L3 基本項目名１

PICTURE S9(9)

COMPUTATIONAL.

L3 基本項目名２

PICTURE X(ｎ)

OCCURS ｍ TIMES.

二つの基本項目から構成される集団項目

q=0の場合：n=8

q=2の場合：n=11

q=4の場合：n=13

q=6の場合：n=15

TIMESTAMP[(q)]

L2 集団項目名.

L3 基本項目名１

PICTURE S9(9)

COMPUTATIONAL.

L3 基本項目名２

PICTURE X(ｎ)

OCCURS ｍ TIMES.

二つの基本項目から構成される集団項目

q=0の場合：n=19

q=2の場合：n=22

q=4の場合：n=24

q=6の場合：n=26

（凡例）

L2：レベル番号02〜49

L3，L4：レベル番号03〜49

m：繰返し列の最大要素数

n：長さ（バイト）

q：小数秒精度

注

太字の部分が変更点です。

索引

数字

2階層型システム[1]

3階層型システム[1]

D

DBコネクションサーバ[1]

DTP[1]

H

HiRDB_PDHOST[1]、[2]

HiRDB_PDNAMEPORT[1]、[2]

HiRDB_PDTMID[1]、[2]

HiRDB_PDXAMODE[1]、[2]

HiRDB/Developer's Kit[1]

HiRDB/Run Time[1]

HiRDB XAライブラリ[1]

HiRDB XAライブラリでサポートする機能[1]

HiRDBクライアントからアクセスできないXDM/RD E2のデータ型[1]

HiRDBクライアントからアクセスできるXDM/RD E2のデータ型[1]

HiRDBクライアントの環境設定手順[1]

HiRDBクライアントの種類[1]

HiRDBの通信処理に関する環境変数[1]

hostsファイルの設定[1]

J

JDBC対応アプリケーションプログラムからのXDM/RD E2アクセス[1]

O

ODBC関数に関する環境変数[1]

ODBC対応アプリケーションプログラムからのXDM/RD E2アクセス[1]

OLTP下のX/Openに準拠したAPIを使用するクライアントの環境変数[1]

OpenTP1との関連（XAインタフェースを使用しない場合）[1]

OpenTP1との関連（XAインタフェースを使用する場合）[1]

P

PDADDITIONALOPTLVL[1]

PDAGGR[1]

PDASTHOST[1]

PDASTPORT[1]

PDASTUSER[1]

PDAUTHTYPE[1]

PDAUTOCONNECT[1]、[2]

PDAUTORECONNECT[1]、[2]

PDBESCONHOLD[1]

PDBESCONHTI[1]

PDBINARYBLKF[1]

PDBINDRETRYCOUNT[1]

PDBINDRETRYINTERVAL[1]

PDBLKBUFFSIZE[1]

PDBLKF[1]、[2]

PDCALCMDWAITTIME[1]

PDCLTAPNAME[1]、[2]

PDCLTBINDLOOPBACKADDR[1]

PDCLTCNVBYTERATIO[1]

PDCLTCNVMODE[1]

PDCLTCNVUOCFUNC[1]

PDCLTCNVUOCLIB[1]

PDCLTGAIJIDLL[1]

PDCLTGAIJIFUNC[1]

PDCLTGRP[1]

PDCLTLANG[1]、[2]

PDCLTPATH[1]、[2]

PDCLTRCVADDR[1]

PDCLTRCVPORT[1]

PDCLTRDNODE[1]、[2]

PDCMDTRACE[1]

PDCMDWAITTIME[1]

PDCMMTBFDDL[1]

PDCNSTRNTNAME[1]

PDCONNECTWAITTIME[1]

PDCONREFRCOUNT[1]

PDCONREFRINTERVAL[1]

PDCONTYPE[1]

PDCURSORLVL[1]

PDCWAITTIME[1]、[2]

PDCWAITTIMEWRNPNT[1]

PDDBACCS[1]

PDDBBUFLRU[1]

PDDBLOG[1]

PDDBORGUAP[1]

PDDDLDEAPRP[1]

PDDDLDEAPRPEXE[1]

PDDEFAULTOPTION[1]、[2]

PDDELRSVWDFILE[1]

PDDFLNVAL[1]

PDDLKPRIO[1]

PDDNDPCOMPATIBLE[1]

PDDNDPTRACE[1]

PDERRSKIPCODE[1]、[2]

PDEXTDECCHECK[1]

PDEXWARN[1]、[2]

PDFESGRP[1]

PDFESHOST[1]

PDFORUPDATEEXLOCK[1]

PDGDATAOPT[1]、[2]

PDHASHTBLSIZE[1]

PDHATRNQUEUING[1]

PDHOST[1]、[2]

PDHSICOPTIONS[1]

PDIPC[1]

PDIPCFILEDIR[1]

PDISLLVL[1]

PDJDBFILEDIR[1]

PDJDBFILEOUTNUM[1]

PDJDBFILESIZE[1]

PDJDBONMEMNUM[1]

PDJDBTRACELEVEL[1]

PDJETCOMPATIBLE[1]、[2]

PDKALVL[1]

PDKATIME[1]

PDLANG[1]、[2]

PDLCKWAITTIME[1]

PDLOCKLIMIT[1]

PDLOCKSKIP[1]

PDNAMEPORT[1]、[2]

PDNBLOCKWAITTIME[1]、[2]

PDODBCWRNSKIP[1]、[2]

PDODBESCAPE[1]、[2]

PDODBGINFOSUPPRESS[1]

PDODBLOCATOR[1]、[2]

PDODBSPLITSIZE[1]、[2]

PDODBSTANDARDARGSIZE[1]

PDODBSTANDARDDESCCOL[1]

PDODBSTANDARDGTYPEINFO[1]

PDODBSTANDARDSQLSTATE[1]

PDODBSTATCACHE[1]、[2]

PDPLGIXMK[1]

PDPLGPFSZ[1]

PDPLGPFSZEXP[1]

PDPLUGINNSUB[1]

PDPRMTRC[1]、[2]

PDPRMTRCSIZE[1]、[2]

PDPRPCRCLS[1]、[2]

PDRCCOUNT[1]、[2]

PDRCINTERVAL[1]、[2]

PDRCTIMING[1]

PDRCTRACE[1]

PDRDCLTCODE[1]、[2]

PDRECVMEMSIZE[1]

PDREPPATH[1]、[2]

PDSENDMEMSIZE[1]

PDSERVICEGRP[1]

PDSERVICEPORT[1]

PDSOCKETCRYPTO[1]

PDSPACELVL[1]

PDSQLEXECTIME[1]、[2]

PDSQLOPTLVL[1]

PDSQLTEXTSIZE[1]、[2]

PDSQLTRACE[1]、[2]

PDSQLTRCFMT[1]、[2]

PDSQLTRCOPENMODE[1]、[2]

PDSRVTYPE[1]、[2]

PDSTANDARDSQLSTATE[1]

PDSTJTRNOUT[1]

PDSUBSTRLEN[1]

PDSWAITTIME[1]

PDSWATCHTIME[1]

PDSYSTEMID[1]

PDTAAPINFMODE[1]

PDTAAPINFPATH[1]

PDTAAPINFSIZE[1]

PDTIMEDOUTRETRY[1]

PDTMID[1]

PDTMPTBLRDAREA[1]

PDTP1SERVICE[1]、[2]

PDTRCMODE[1]、[2]

PDTRCPATH[1]、[2]

PDTXACANUM[1]

PDUAPENVFILE[1]

PDUAPERLOG[1]、[2]

PDUAPEXERLOGPRMSZ[1]

PDUAPEXERLOGUSE[1]

PDUAPREPLVL[1]、[2]

PDUSER[1]、[2]

PDVWOPTMODE[1]

PDWRTLNCOMSZ[1]、[2]

PDWRTLNFILSZ[1]、[2]

PDWRTLNPATH[1]、[2]

PDXAAUTORECONNECT[1]

PDXAMODE[1]、[2]

PDXARCVWTIME[1]、[2]

PDXATRCFILEMODE[1]、[2]

R

RM[1]

RM関連オブジェクト名[1]

RMスイッチ名[1]

RM名[1]

S

SQL関連の注意事項[1]

SQL記述領域（SQLDA）[1]

SQL言語仕様[1]

SQL診断文[1]

SQL制御文[1]

SQLトレース機能[1]

SQLトレース動的取得機能[1]

SQLに関する環境変数[1]

SQLの記述[1]

SQLの記述形式[1]

SQLの機能体系[1]

SQLのデータ型とCOBOL言語のデータ記述[1]

SQLのデータ型とC言語のデータ記述[1]

SQLのデータ型とデータ記述[1]

SQL領域[1]

SQL連絡領域（SQLCA）[1]

T

TM[1]

TP1/Resource Manager Monitorの機能を使用したXDM/RD E2の監視[1]

Type4 JDBCドライバを使用したXDM/RD E2アクセス[1]

U

UAP実行時の注意事項[1]

UAP中でのSQLの基本構成[1]

UAPとXDM/RD E2とのインタフェース[1]

UAPの開発の流れ[1]、[2]

UAPの記述[1]

UAPの記述言語[1]

UAPの形式[1]

UAPの形態移行[1]

UAPの作成[1]

UAPの作成，実行[1]

UAPの実行[1]

UAPの障害対策[1]

UAPの設計[1]

X

X/Open XAインタフェース[1]

xa_switch_t 構造体名[1]

XDM/Library for HiRDB[1]

XDM/RD E2[1]

XDM/RD E2からの切り離し[1]

XDM/RD E2接続機能[1]

XDM/RD E2接続機能使用時の環境変数の差異[1]

XDM/RD E2接続機能専用の環境変数[1]

XDM/RD E2接続機能を利用できるライブラリ[1]

XDM/RD E2との接続[1]

い

位置付け子機能[1]

一相最適化[1]

インタフェース[1]

インタフェース領域の種類と使用目的[1]

う

埋込み型[1]、[2]

埋込み型UAP[1]

埋込み言語[1]

埋込み言語文法[1]

埋込み変数と標識変数の宣言[1]

え

エラー時の処置の指定[1]

エラーの判定[1]

お

オープン文字列[1]

か

カーソル宣言[1]

概要[1]

型名記述領域[1]

稼働OS[1]

く

クライアント環境定義[1]

クライアント環境定義（環境変数の設定）[1]

クライアント環境定義の設定内容[1]

クライアントの環境設定[1]

クローズ文字列[1]

け

検索，更新のSQL（実行文）[1]

こ

構成要素の詳細[1]

し

システム監視に関する環境変数[1]

システム構成に関する環境変数[1]

す

スカラ関数HEX[1]

せ

制御系SQL[1]

静的登録方法[1]

性能向上，操作性向上に関するUAPの設計[1]

そ

操作系SQL[1]

ソースプログラムの記述[1]

ソフトウェア構成[1]

た

他プログラムプロダクトとの関連[1]

て

定義系SQL[1]

データ型[1]

データベース操作時の注意事項[1]

適用形態[1]

と

動作環境[1]

動的登録方法[1]

動的トランザクションの登録[1]

特長[1]

トラブルシュートに関する環境変数[1]

トランザクションの移行[1]、[2]

トランザクションの無効化[1]

トランザクションの有効化[1]

トランザクションマネジャ[1]

トランザクションマネジャとXDM/RD E2間のコネクションが切断されたときの再接続方法[1]

トランザクションマネジャに登録する情報[1]

トランザクションマネジャへの登録[1]

トランザクションマネジャへの登録の変更[1]

トランザクションマネジャへの登録例[1]

は

配列を使用したFETCH機能[1]

ひ

非同期XA呼び出し[1]

ふ

複数接続機能[1]、[2]

プリプロセス[1]

プログラムプロダクト構成[1]

ブロック転送[1]

ブロック転送機能に関する環境変数[1]

分散トランザクション処理[1]

ま

マルチスレッド用のライブラリに関する注意事項[1]

め

明示表[1]

ゆ

ユーザ実行環境に関する環境変数[1]

よ

読み取り専用[1]

り

リソースマネジャ[1]

れ

列名記述領域（SQLNAME）[1]