開発ガイド
Magic xpa for IBM i

本マニュアルに記載の内容は、将来予告なしに変更することがあります。これらの情報について MSE（Magic Software Enterprises Ltd.）および MSJ（Magic Software Japan K.K.）は、いかなる責任も負いません。
本マニュアルの内容につきましては、万全を期して作成していますが、万一誤りや不正確な記述があったとしても、MSE および MSJ はいかなる責任、債務も負いません。
MSE および MSJ は、この製品の商業価値や特定の用途に対する適合性の保証を含め、この製品に関する明示的、あるいは黙示的な保証は一切していません。
本マニュアルに記載のソフトウェアは、製品の使用許諾契約書に記載の条件に同意をされたライセンス所有者に対してのみ供給されるものです。同ライセンスの許可する条件のもとでのみ、使用または複製することが許されます。当該ライセンスが特に許可している場合を除いては、いかなる媒体へも複製することはできません。
ライセンス所有者自身の個人使用目的で行う場合を除き、MSE または MSJ の書面による事前の許可なしでは、いかなる条件下でも、本マニュアルのいかなる部分も、電子的、機械的、撮影、録音、その他のいかなる手段によっても、コピー、検索システムへの記憶、電送を行うことはできません。
サードパーティ各社商標の引用は、MSE および MSJ の製品に対するコンパチビリティに関しての情報提供のみを目的としてなされるものです。
本マニュアルにおいて、説明のためにサンプルとして引用されている会社名、製品名、住所、人物は、特に断り書きのないかぎり、すべて架空のものであり、実在のものについて言及するものではありません。
Magic は Magic Software Enterprises Ltd. のイスラエルその他の国での商標または登録商標です。
Magic xpa は、Magic Software Japan K.K. の登録商標です。
Magic xpa Enterprise Studio、Magic xpa Enterprise Client および Magic xpa Enterprise Server、Magic xpa RIA Server は Magic Software Japan K.K. の商標です。
Pervasive.SQL は Pervasive Software, Inc. の商標です。
Microsoft および FrontPage は、Microsoft Corporation の登録商標です。また、Windows, Windows NT, Windows 2000, Windows XP,
Windows2003, ActiveX, SNAServer は Microsoft Corporation の商標です。
IBM Power SystemsTM は IBM 社の登録商標です。
EASYCOMTM は AURA Equipments 社の登録商標です。
一般に、会社名、製品名は各社の商標または登録商標です。
MSE および MSJ は、本製品の使用またはその使用によってもたらされる結果に関する保証や告知は一切していません。この製品のもたらす結果およびパフォーマンスに関する危険性は、すべてユーザが責任を負うものとします。
この製品を使用した結果、または使用不可能な結果生じた間接的、偶発的、副次的な損害（営利損失、業務中断、業務情報の損失などの損害も含む）に関し、事前に損害の可能性が勧告されていた場合であっても、MSE および MSJ、その管理者、役員、従業員、代理人は、いかなる場合にも一切責任を負いません。

2013 年 5 月 30 日

第一版

Copyright 2013 Magic Software Enterprises Ltd.and Magic Software Japan K.K.

All rights reserved.

目次
1 はじめにMagic xpa for IBM i とは？............................................................................................................................................ 1
Magic xpa for IBM i の種類と名称 ....................................................................................................................................... 1

IBM i 環境で Magic xpa を利用する利点 .................................................................................................................... 2
Magic xpa for IBM i のドキュメント............................................................................................................................ 2
このガイドの対象者.............................................................................................................................................................. 2
他のドキュメント.................................................................................................................................................................. 2

概要.................................................................................................................................................................................. 2
表記上の注意事項.......................................................................................................................................................... 3

2 製品アーキテクチャ
ネイティブな IBM i アーキテクチャ .......................................................................................................................... 5
Magic xpa for IBM i のアーキテクチャ........................................................................................................................ 5
Windows から IBM i へアクセスする機能.......................................................................................................................... 6
IBM i との異機種環境 ........................................................................................................................................................... 6
IBM i 側のプログラムとデータに対するインターネットアクセス ............................................................................... 7

メッセージサーバの構成.............................................................................................................................................. 7システム構成例...................................................................................................................................................................... 8

3 データベースの設定
通信アーキテクチャ...................................................................................................................................................... 9
ISAM ゲートウェイと SQL ゲートウェイ ................................................................................................................. 10
インストレーション...................................................................................................................................................... 10
ISAM ゲートウェイの設定........................................................................................................................................... 11［設定／ DBMS］(ISAM) の設定.......................................................................................................................................... 11［設定／データベース］(ISAM) の設定 .............................................................................................................................. 13
データリポジトリ (ISAM) の設定 ....................................................................................................................................... 16
定義取得.................................................................................................................................................................................. 20

SQL ゲートウェイの設定 ............................................................................................................................................. 22［設定／ DBMS］(SQL) の設定 ........................................................................................................................................... 22［設定／データベース］(SQL) の設定................................................................................................................................. 22
データリポジトリ (SQL) の設定.......................................................................................................................................... 26［データソース特性］で有効なキーワード........................................................................................................................ 27
定義取得.................................................................................................................................................................................. 27

4 プログラミング
ISAM ゲートウェイの機能........................................................................................................................................... 29
OPNQRYF の利用 － OpenQuery ファイル － ................................................................................................................... 29
OpenQuery ファイルの設定 ................................................................................................................................................. 29
カラム定義で範囲指定に対する OPNQRYF の利用 ......................................................................................................... 32
ISAM ファイルにトランザクションを利用する方法....................................................................................................... 32

SQL ゲートウェイによる機能 ..................................................................................................................................... 33
埋め込み SQL ......................................................................................................................................................................... 33
Magic xpa for IBM i 開発ガイドi

SQL 用の IBM i ファイルを使用したトランザクション処理 ........................................................................................ 33
SQL のエラーメッセージを取得する ................................................................................................................................. 34

IBM i 固有の UDF/ ユーザ PRC インタフェース ...................................................................................................... 35
AS400PGMCALL 関数........................................................................................................................................................... 35
RMTCMD 関数 ....................................................................................................................................................................... 35
AS400Call ユーザプロシジャ ............................................................................................................................................... 36
EBCDIC コードによる文字コード比較関数 ...................................................................................................................... 38
シフト JIS コードから EBCDIC コードへの変換関数 ...................................................................................................... 38
EBCDIC コードからシフト JIS コードへの変換関数 ....................................................................................................... 39
セッション開始関数.............................................................................................................................................................. 39
セッション終了関数.............................................................................................................................................................. 40
エラーハンドリング関数...................................................................................................................................................... 40
ISERIES ユーザプロシジャ .................................................................................................................................................. 40
オブジェクトリストの取得.................................................................................................................................................. 42
システム値リストの取得...................................................................................................................................................... 42
システム値データの取得...................................................................................................................................................... 43
スプールファイルリストの取得.......................................................................................................................................... 43
スプールファイルデータの取得.......................................................................................................................................... 43
印刷制御文字付スプールファイルデータの取得.............................................................................................................. 44
スプールファイルの処理...................................................................................................................................................... 44
IFS ディレクトリの取得 ....................................................................................................................................................... 45
IFS ストリームファイルの取得 ........................................................................................................................................... 45
IFS ストリームファイルの更新 ........................................................................................................................................... 46

プログラムに関する考慮事項...................................................................................................................................... 47
Unicode に関する考慮事項 ........................................................................................................................................... 47

5 IBM i の操作
ファイルタイプ.............................................................................................................................................................. 49
IBM i のデータベースファイルを直接定義する方法 ............................................................................................... 50
DDS を使用してデータベースファイルを定義する......................................................................................................... 50
DDS と SQL の用語 ............................................................................................................................................................... 50
SQL を使用してデータベースファイルを定義する ......................................................................................................... 51

IBM i データベースファイルへのアクセス ............................................................................................................... 51
DDS でオペレーションナビゲータを使用する................................................................................................................. 51
SQL でオペレーションナビゲータを使用する ................................................................................................................. 52
ネイティブ SQL を使用する ................................................................................................................................................ 53
DDS を使用した IBM i ファイルの作成例 ......................................................................................................................... 53

Magic ゲートウェイのクライアントログ................................................................................................................... 54
IBM i 上でクライアントのすべてのジョブを参照する ................................................................................................... 55

実行時の初期設定機能.................................................................................................................................................. 57
QSYSOPR メッセージ........................................................................................................................................................... 57
ゲートウェイとホストのバージョン同期化...................................................................................................................... 57
MGCLIENT ジョブ記述オプション .................................................................................................................................... 57

IBM i クライアントの Magic ゲートウェイのログレベルを設定する ................................................................... 57
IBM i のミドルウェアコンポーネント用のログ情報 ............................................................................................... 58

6 DBCS
DBCS の種類 .................................................................................................................................................................. 59
文字型書式の「位置指示記号」の追加機能.............................................................................................................. 60

ii

Magic xpa for IBM i 開発ガイド

補足－ A
データ記憶型式と IBM i データタイプ ...................................................................................................................... 61
ISAM ゲートウェイ.............................................................................................................................................................. 61
SQL ゲートウェイ ................................................................................................................................................................. 62
文字型記憶型式の説明.......................................................................................................................................................... 63
数値型記憶型式の説明.......................................................................................................................................................... 63
論理型記憶型式の説明.......................................................................................................................................................... 65
日付型記憶型式の説明.......................................................................................................................................................... 66
時刻型記憶型式の説明.......................................................................................................................................................... 66

定義取得.......................................................................................................................................................................... 68
ISAM ゲートウェイ............................................................................................................................................................... 68
SQL ゲートウェイ ................................................................................................................................................................. 68

各種限界値...................................................................................................................................................................... 69

補足－ B
IBM i プログラムコールウィザード ........................................................................................................................... 71

Magic xpa for IBM i 開発ガイド

iii

iv

Magic xpa for IBM i 開発ガイド

Magic xpa for IBM i とは？

1

はじめに

Magic xpa は、シングル、およびマルチプラットフォームでのビジネスアプリケーション開発者のために設計されました。インターネットブラウザ、WWW サーバ、アプリケーションサーバ、多言語対応とデータベースに対してオープンで拡張性のあるサポートを提供します。
Magic xpa を理解するには、次に挙げるマニュアルを参照してください。
•

リファレンスヘルプ …… Magic xpa の全機能を記述したマニュアル•

新機能ガイド …… Magic xpa の新機能を記述したマニュアル•

インストールガイド …… Magic xpa のインストールとライセンス方法を記述したマニュアル

Magic xpa for IBM i とは？
Magic xpa は Windows 環境でのマルチデータベースに対応したアプリケーション開発／実行が可能です。ただし一般的なデータベースは Windows 環境に限らず、様々な環境で広く利用されています。Magic アプリケーションは、
このようなシステム環境に対応するため、大きく二つの機能を提供しています。一つは、Windows クライアントから他の OS で稼動しているデータベースに直接アクセスして実行すること、もう一つは、Windows クライアントから、他の OS で稼動する Magic アプリケーションサーバに対してリクエストを発行し、そのサーバアプリケーショ
ンがデータベースにアクセスして処理を実行することです。
前者は、Magic クライアントの専用データベースゲートウェイをセットアップし、後者はアプリケーションパーティ
ショニングをセットアップすることで機能を実現します。
Magic xpa for IBM i は、Power SystemTM 上で稼働する IBM i 環境においてこれら２つの機能を提供するソフトウェアです。
更に Magic xpa for IBM i では、IBM i サーバの機能を最大限に引き出すため、クライアントゲートウェイにおいても、IBM i サーバ上で専用のサブシステムとジョブを実行するように設計されています。このため、クライアントのゲートウェイでは、次のような処理を行うことができます。
•

IBM i サーバのデータベース（DB2 for IBM i ) へのアクセス•

IBM i サーバのコマンドの実行•

IBM i サーバで Magic プログラム、またはアプリケーションをコール

Magic xpa for IBM i の種類と名称
Magic xpa for IBM i には、以下の種類があります。

クライアント製品
Magic xpa IBM i Gateway
Magic xpa から DB2 for IBM i にアクセスするためのゲートウェイで、データベースゲートウェイとサーバ通信のミドルウェアで構成されています。データベースゲートウェイは 2 種類あり、アクセス方法が異なります。
•

ISAM ゲートウェイ…… MGEAC32.DLL。旧バージョンの Magic/400 と同様、システムファイルアクセス方式に基づいてデータベースにアクセスします。このマニュアルでは、アクセス対象のファイルを SQL のテーブルと区別する意味で ISAM ファイルと称します。

•

SQL ゲートウェイ…… MGDB400.DLL。DB2 for IBM i の SQL インターフェースを利用してデータベースにアクセスします。

Magic xpa for IBM i 開発ガイド1

第 1 章 - はじめに

IBM i 環境で Magic xpa を利用する利点
Magic xpa を使用する際の優位な点として以下の項目が挙げられます。
•

DB2 for IBM i データベースのアクセス•

IBM i アプリケーションとパッケージとのネイティブな統合•

IBM i システムサービスにアクセスする組み込み関数•

Windows と Web の各環境用の開発と実行•

XML と Web サービスのサポート

Magic xpa for IBM i のドキュメント
このガイドの対象者
IBM i 開発ガイドは、次のような開発者を対象に、Magic xpa for IBM i ソフトウェアのインストール方法や利用方法を説明します。
•

IBM i データベースに対応した Windows アプリケーションを開発したい Magic xpa の技術者、およびシステム管理者。

したがって、このドキュメントは、開発ツールとしての Magic xpa の知識と、IBM i オペレーティングシステムに対する知識を備えた方を対象といたします。

他のドキュメント
この開発ガイドとともに、以下のドキュメントも参照してください。

Magic xpa Enterprise Studio / Client のドキュメント•

リファレンスヘルプ …… Magic xpa の機能に関する説明があります。

•

インストールガイド …… Magic xpa のインストール手順について説明しています。

IBM のドキュメント
IBM i サーバ環境でのアプリケーションの知識を補足するために、次に挙げる IBM 社提供のマニュアルをご覧ください。
•

iSeries 実行管理•

DDS 概念•DDS 物理ファイルと論理ファイル•

DB2 UDB for iSeries データベース・プログラミング•

TCP/IP 構成および解説書……【SD88-5013-04】•

TCP/IP セットアップ•

iSeries CL プログラミング……【SD88-5038-06】•

iSeries 機密保護解説書……【SC41-5302-08】

概要
第 2 章では、Magic xpa for IBM i の全体の構成を説明します。
第 3 章では、Magic xpa IBM i Gateway の機能とデータベース、およびファイル定義の方法を説明します。

2

Magic xpa for IBM i 開発ガイド

表記上の注意事項
第 4 章では、Magic xpa for IBM i の機能を利用したプログラムの設定、および各種関数を説明します。
第 5 章では、Magic xpa for IBM i を利用するために必要な IBM i の基本的な操作を説明します。
第 6 章では、日本語環境の DBCS について説明します。
補足では、Magic xpa で定義されたデータの型と IBM i のデータタイプの対応、添付されたコンポーネントプログラ
ム等を説明します。

表記上の注意事項
このマニュアルでは、「ファイル」と「テーブル」、「キー」と「インデックス」は同じ語として使用しています。

Magic xpa for IBM i 開発ガイド3

第 1 章 - はじめに

［このページは意図的に空白にしています。］

4

Magic xpa for IBM i 開発ガイド

ネイティブな IBM i アーキテクチャ

製品アーキテクチャ2

ここでは、Magic xpa for IBM i アーキテクチャの様々な構成について説明します。

ネイティブな IBM i アーキテクチャ
以下に示すように、ネイティブの IBM i 環境は、ネイティブの RPG、COBOL または IBM i によって認められている
他のプログラミング言語を使用して IBM i プログラマがプログラムを開発し、ISAM または SQL のインタフェースを利用してデータを DB2 for IBM i データベースに保存するようにしています。

図 2-1 簡単な IBM i 環境

Magic xpa for IBM i のアーキテクチャ
Magic xpa for IBM i は、リクエストを Windows PC から IBM i 上のアプリケーションサーバに送り、サーバからのリ
クエスト結果をクライアントに返します。PC 側に対して以下の処理が可能になります。
•

Windows から IBM i へアクセスする機能の提供•

IBM i に対応する異機種環境の作成•

IBM i 側のプログラムとデータ用にインターネットアクセス環境の構築•

サーバ上の Magic プログラムまたはアプリケーションの呼び出し

Magic xpa for IBM i 開発ガイド5

第 2 章 - 製品アーキテクチャ

Windows から IBM i へアクセスする機能
以下の図は、IBM i プログラムを作成したりアクセスする際に、Windows やインターネットへのアクセス方法を提供することによって、Magic xpa が IBM i プロセスを補足する方法について示したものです。Magic クライアントは、バッチの IBM i プログラムに対するアクセス方法も提供しています。

図 2-2Windows から IBM i にアクセスする

IBM i との異機種環境
以下の図は、Magic xpa が異機種環境でネイティブな IBM i プログラムとデータと統合するための方法について示しています。

図 2-3IBM i との異機種環境

6

Magic xpa for IBM i 開発ガイド

メッセージサーバの構成

IBM i 側のプログラムとデータに対するインターネットアクセス
以下の図は、IBM i クライアントが、Windows ブラウザを使用して IBM i 側のプログラムやデータにどのようにアクセスするかを示しています。

図 2-4IBM i のプログラムやデータにインターネットでアクセスする#

コンポーネント

説明

1

Magic xpa IBM i Gateway

Windows OS 上の Magic アプリケーションに以下の機能を提
供します。

2

Magic メッセージサーバ (MRB)•

IBM i データベースへのアクセス（ゲートウェイ）•

ネイティブ IBM i プログラム実行•

IBM i 側のプログラムへのリモートコール

サーバとリクエストを管理するためのミドルウェア・テクノ
ロジー。アプリケーションパーティショニングやインター
ネットのリクエストを透過的にサーバーへ振り分ける。
•

3

ユーザ・プログラム・インタフェース（HLL プログラム）

MRB：Windows 上で利用できる Magic リクエスト・ブロー
カ

HLL、RPG、C、COBOL、CL、Java のような HLL として知られる高水準言語で書かれたプログラムのインタフェース。
これにより、5250- ベースまたはバッチ・アプリケーションを含むレガシー・アプリケーションと Magic アプリケー
ションが、Magic メッセージサーバを介して統合することが可能。

メッセージサーバの構成
さまざまなクライアントが Magic メッセージサーバにリクエストすることができます。
これらのクライアントは、Magic クライアントか、別の Magic サーバ、インターネットブラウザ、ネットワークコ
ンピュータ、HLL プログラムなど、多くのプラットホームで可能です。
Magic xpa Enterprise Server は、インターネットリクエスタのサーバとしてもインストールされます。

Magic xpa for IBM i 開発ガイド7

第 2 章 - 製品アーキテクチャ
更に、Magic インターネットリクエスタを利用するときは、HTTP サーバがインストールされ、Magic メッセージ
サーバにインターネット・リクエストが接続されるように構築する必要があります。
下に挙げたプログラムは、それぞれ別のハードウェアで実行することができます。
•

Magic インターネットリクエスタと HTTP サーバ•

Magic メッセージサーバ•

Magic xpa Enterprise Server/RIA Server•

Magic xpa Enterprise Client、インターネットブラウザ、HLL の各クライアント

システム構成例
クライアント／サーバの構成
この構成は IBM i をデータベースサーバとして使用します。主に開発環境ではこの構成で行います。
•

Magic xpa Enterprise Studio / Client•

Magic xpa IBM i Gateway （開発／実行）

図 2-5 クライアントサーバ構成

アプリケーションサーバに Windows を使用した構成
IBM i をデータベースサーバとして使用し、HTTP サーバや Magic xpa Enterprise Server/RIA Server は、Windows を使用します。
•

Magic xpa Enterprise Studio / Client•

Magic xpa IBM i Gateway （開発／実行）•

Magic xpa Enterprise Server/RIA Server（Windows）•

Microsoft Internet Information Server（IIS）•

Magic インターネットリクエスタ（CGI、ISAPI）•

MRB（Windows）

図 2-6 アプリケーションサーバは Windows PC の構成

8

Magic xpa for IBM i 開発ガイド

通信アーキテクチャ

3

データベースの設定

Magic xpa IBM i Gateway は、クライアントの Windows PC で動作する Magic xpa 製品（Magic xpa Enterprise Studio、Magic xpa Enterprise Client、Magic xpa Enterprise Server、Magic xpa RIA Server）から、IBM i 上のデータへのアクセスやプログラムの実行を行うためのソフトウェアコンポーネントです。
これにより、Windows 上で作成した Magic アプリケーションを IBM i 対応のアプリケーションに容易に移行することができます。また、既存の RPG による IBM i のデータベース資産を、Magic xpa 対応アプリケーションの一部として統合することが可能になります。

通信アーキテクチャ
IBM i のデータベースファイルへのアクセスには、EASYCOM と呼ばれるミドルウェア・テクノロジーを採用しています。
Magic xpa IBM i Gateway をインストールすると、大きく分けて、次の二つの構成要素がインストール・構成されます。
•

クライアント PC には、Magic xpa IBM i Gateway と EASYCOM クライアントモジュールがインストールされ、これらは Magic クライアントの起動時にロードされます。

•

IBM i 上にはホストライブラリがインストールされます。ホストライブラリというのは、
EASYCOM および Magic
クライアントとの通信に必要となるモジュール等がすべて格納されている ライブラリです。インストーラにより、MAGIC サブシステムと、EASYCOM サーバが自動起動するように設定されます。

実行時は、次のようなステップで通信が行われます。

図 3-1 接続構成

1. IBM i 上では、EASYCOM デーモンが自動起動されており、Magic クライアントからの接続要求を待機しています。
2. クライアント PC 上の Magic アプリケーションが IBM i 上のデータアクセスやプログラム実行を行おうとすると、Magic xpa IBM i Gateway が EASYCOM クライアントを通じて IBM i 上の EASYCOM デーモンに接続要求を出します。
3. IBM i 上の EASYCOM デーモンは、MAGIC サブシステムの配下に MGCLIENT ジョブを起動します。
MGCLIENT ジョブにより、クライアントと IBM i のセッションが確立されます。
4. その後、クライアントから要求がある度に、MGCLIENT ジョブがデータベースやプログラムの処理結果をクライアントに返します。

Magic xpa for IBM i 開発ガイド9

第 3 章 - データベースの設定
5. クライアント PC 上の Magic xpa がセッション切断の要求を出すと、MGCLIENT ジョブはセッションを切断し、終了します。

ISAM ゲートウェイと SQL ゲートウェイ
クライアント PC にインストールされる IBM i のデータベースゲートウェイには、ISAM ゲートウェイと SQL ゲー
トウェイとの 2 種類があります。
•

ISAM ゲートウェイ（MGEAC32.DLL）は、ファイルアクセス方式に基づき、レコード単位の読み込み、挿入、
更新、削除、ロック等を行います。単純なレコード単位の処理のみを行うアプリケーションにはこちらを利用します。

•

SQL ゲートウェイ（MGDB400.DLL）は、SQL 文を用いて IBM i 上のデータをアクセスするインターフェースを利用するもので、複雑な抽出条件指定を SQL WHERE 句により行いたい場合、埋め込み SQL タスクを利用した
い場合、その他 SQL に固有な機能を Magic アプリケーションで利用したい場合に使います。

ISAM ゲートウェイと SQL ゲートウェイの利用する上で、いくつかの注意事項があります。

（1）ISAM ゲートウェイを利用する場合•

ISAM ゲートウェイのみを利用する Magic アプリケーションの場合には、ISAM ゲートウェイに関する設定のみが必要になります。

（2）SQL ゲートウェイを利用する場合•

SQL ゲートウェイは、ISAM ゲートウェイを通して EASYCOM ミドルウェアにアクセスします。従って、SQL ゲートウェイのみを利用する Magic アプリケーションであっても、ISAM, SQL 両方の設定を行っておく必要があります（設定の詳細については、本章で説明します）。

•

新規に SQL ゲートウェイを利用する場合、CREATE SCHEMA コマンドで、IBM i にスキーマを作成する必要があります。詳細は、CREATE SCHEMA に関する IBM i のマニュアルを参照してください。

（3）ISAM ゲートウェイと SQL ゲートウェイを混在して利用する場合
ひとつのアプリケーションで、ISAM ゲートウェイと SQL ゲートウェイを混在して利用することは可能です。この場合には、次のような点に留意してください。
•

同一のテーブルに対して異なるゲートウェイで同時にアクセスしないように、アプリケーション設計時に注意してください。

•

ISAM ゲートウェイで文字型の G フィールドのあるファイルは、
SQL ゲートウェイでアクセスすると、データが破損することがあります。

•

256 バイトを越える文字型項目のデータをアクセスする場合、ISAM ゲートウェイでは、[ カラム特性／デー
タベース定義 ] を「N= 標準」に設定する必要があります。V9Plus 以前のアプリケーションを変更する場
合、既存のファイルの再作成が必要になることがあります。

•

BLOB 型の定義されたファイルは SQL ゲートウェイでのみアクセス可能です。

•

ISAM ゲートウェイのトランザクションが無効に設定されたアプリケーションでは、ISAM で作成されたファイルが SQL ゲートウェイではアクセスできないことがあります。この場合、対象のファイルに対して、STRJRNPF コマンド等で IBM i のジャーナル処理を開始する必要があります。

以下の説明では、ISAM ゲートウェイを通してアクセスされる IBM i ファイルを「ISAM ファイル」と呼び、SQL
ゲートウェイを通してアクセスされる IBM i のテーブルを「SQL テーブル」と呼びます。

インストレーション
Magic xpa for IBM i のインストレーションの手順については、『Magic xpa for IBM i インストールガイド』に詳細に説明されているので、そちらを参照してください。

10

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの設定

ISAM ゲートウェイの設定
ここでは、ISAM ゲートウェイの設定について説明します。

［設定／ DBMS］(ISAM) の設定［設定／ DBMS］テーブルは、Magic アプリケーションの処理全体に対して影響を及ぼすグローバルな設定です。
重要！

SQL ゲートウェイは ISAM ゲートウェイを通して EASYCOM ミドルウェアにアクセスしますので、ここで説明されている DBMS のパラメータは、SQL ゲートウェイを使う場合にも必要になり、有効になります。
［設定／ DBMS］テーブルを設定するには、次のように実行します。
1. Magic xpa を起動します。
2. プルダウンメニューで［オプション (O) ／設定 (S) ／ DBMS(B)］を選択します。［DBMS］テーブルが表示されます。

図 3-2 DBMS テーブル

3. 「DB2 for IBM i」の行に移動します。
4. 「パラメータ」欄にカーソルを移動し、必要なパラメータを入力します。ここに設定できるパラメータは、「DB2 for IBM i の［パラメータ］カラムで有効なキーワード」で後述します。
参考：パラメータ欄では［F6］を押下して拡張ウインドウを利用することもできます。
）
5. ［OK］ボタンか ［Enter］を押下します。
6. 新しく指定されたパラメータを有効にするために、Magic を再起動します。

パラメータの構文
パラメータのオプションは、「キーワード = 値」の形式で指定します。複数のキーワードを指定するには、1 桁以上の半角スペースで区切ります。指定しないキーワード値には、デフォルト値が設定され、一部のキーワードは自動的に設定されるものがあります。
注意：キーワードと値は、半角大文字で指定してください。

DB2 for IBM i の［パラメータ］カラムで有効なキーワード
以下に、ISAM ゲートウェイ (DB2 for IBM i の行 ) の［パラメータ］カラムで指定可能なキーワードを説明します。

Magic xpa for IBM i 開発ガイド11

第 3 章 - データベースの設定
EAC_LOG=［ライブラリ名 / ファイル名［: ログレベル］］
IBM i 上の EASYCOM での Magic xpa for IBM i のログ（トレース）ファイルを指定します。レベルオプションは
情報レベルを指定します。これは主としてデバッグ用に使います。
0……ログ無し

1 － 4 （4 が最も詳細なレベル）

例：EAC_LOG=MAGIC400/EACLOG:1

MAGICDBA=［HOST DBA ライブラリ名］
HOST DBA をデフォルトライブラリ（MAGIC400）以外のライブラリにインストールした場合に、ライブラリ名を指定します。
このオプションにより、複数のクライアントで異なるバージョンの Magic xpa for IBM i を同時に使用することができます。

*RNGSVR=Y
範囲抽出時に OPNQRYF を使用します。この設定は DBMS テーブルのパラメータ以外にも、［データベース特性／ SQL データベース情報］、［データソース特性／ SQL データベース情報］で設定可能です。
ただし、この設定は Unicode 型の項目に対して正しく機能しません。Unicode 型を定義したファイルがある場合にはここでは設定せず、データベース特性で必要なデータベースに設定して下さい。
OPNQRY の詳細については、本章「OPNQRYF の利用 － OpenQuery ファイル －」を参照してください。

CRTSPLF=N (ISAM ファイルに対して有効 )ファイルの新規作成時に、スプールファイルを作成しないようにすることができます。

NAMING=*SQL （SQL テーブルに対して有効 )SQL ゲートウェイでアクセスするファイルに対して、ファイル名の前にスキーマ名を指定する場合、SQL 標準の.（ドット）を使った形式で記述できます。
例：SAMPLECOLL.TESTTABLE
このキーワードを指定しない場合は ISAM と同様、/（スラッシュ）で記述します。
例：SAMPLECOLL/TESTTABLE

DBCS=［PC コードページテーブル :Host コードページテーブル］
NEC 選定文字に対して、旧バージョンでは外字領域に割り当てていましたが、Magic xpa IBM i Gateway は、
CCSID1399 に対応しました。そのためのクライアント PC 及び IBM i のコードページは次の通りです。

12

テーブル名

コードページタイプ

IBM-5026

5026（日本語英数カナ ,NEC 選定文字対応）

Host

IBM-5035

5035（日本語英数小文字拡張 ,NEC 選定文字対応） Host

IBM-943

943

PC

•

省略時は、IBM-943:IBM-5026 になります。

•

IBM-5026, IBM-5035 は、NEC 選定文字を除く文字について、それぞれ旧バージョンの IBM-930, IBM-939に対応しています。

•

旧バージョンの CCSID テーブル名 (IBM-930, IBM-930, IBM-990, IBM-999 ) は、Magic xpa で使用可能です
が、将来サポートされない可能性があります。

•

NEC 選定文字の CCSID1399 の割当てを以下に示します。

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの設定
NEC 選定文字 CCSID1399 割当一覧
注意：

上記で設定した DBMS パラメータのコードページ（CCSID）とユーザプロファイルに設定された
CCSID が異なる場合、初期時に次のようなメッセージダイアログが表示され、IBM i サーバのジョブはDBMS パラメータのコードページに対応するように変更されます。
例：クライアントの DBMS パラメータが 5035、ユーザプロファイルが 5026 の場合

図 3-3 エラーメッセージ

文字

Shift-JIS EBCDIC

文字

Shift-JIS EBCDIC

文字

Shift-JIS EBCDIC

①

8740

e270

㍉

875f

e8aa

㎏

8773

e8ec

②

8741

e271

㌔

8760

e875

㏄

8774

e963

③

8742

e272

㌢

8761

e883

㎡

8775

e8fe

④

8743

e273

㍍

8762

e8ae

㍻

877e

e8d8

⑤

8744

e274

㌘

8763

e879

〝

8780

e6ac

⑥

8745

e275

㌧

8764

e888

〟

8781

e6ae

⑦

8746

e276

㌃

8765

e864

㏍

8783

e96c

⑧

8747

e277

㌶

8766

e897

㊤

8785

e767

⑨

8748

e278

㍑

8767

e8b2

㊥

8786

e768

⑩

8749

e279

㍗

8768

e8b8

㊦

8787

e769

⑪

874a

e27a

㌍

8769

e86e

㊧

8788

e76a

⑫

874b

e27b

㌦

876a

e887

㊨

8789

e76b

⑬

874c

e27c

㌣

876b

e884

㈲

878b

e6ef

⑭

874d

e27d

㌫

876c

e88c

㈹

878c

e6f6

⑮

874e

e27e

㍊

876d

e8ab

㍾

878d

e8db

⑯

874f

e27f

㌻

876e

e89c

㍽

878e

e8da

⑰

8750

e280

㎜

876f

e8f9

㍼

878f

e8d9

⑱

8751

e281

㎝

8770

e8fa

∮

8793

dfe8

⑲

8752

e282

㎞

8771

e8fb

∑

8794

dfd6

⑳

8753

e283

㎎

8772

e8eb

∟

8798

dfe0

⊿

8799

e0ac

DB2 for IBM i の［DBMS 特性］の設定
最大接続数
１つの Magic アプリケーションが IBM i のデータベースに同時に接続できる最大接続数を指定します。
すなわち、MGCLIENT ジョブが起動できる数に相当します。

［設定／データベース］(ISAM) の設定
ISAM ゲートウェイに関する［設定／データベース］テーブルでは次のような設定を行います。

データベースの定義
1. Magic xpa を起動します。

Magic xpa for IBM i 開発ガイド13

第 3 章 - データベースの設定
2. プルダウンメニューから［設定／データベース］を選択します。［データベース］テーブルが開きます。

図 3-4 データベーステーブル

3. 新しい行を作成するために、［登録］ボタンまたは、［F4］を押下します。
4. ［名前］カラムに、適当なデータベース名を入力します。データベース名は、ユーザが自由に設定できます。こ
こで、設定した名前は、［データ］リポジトリの［データベース］カラムなどで参照します。
5. ［DBMS］カラムからズームして、［DBMS 一覧］を開き、「DB2 IBM i 」を選択します。
6. ［位置］カラムには、英数半角大文字で、データを格納する IBM i のライブラリ名を指定します。ライブラリ名の後ろにスラッシュ ( / ) は記述しないでください。

［データベース特性］の設定［データベース特性］ダイアログでは、IBM i のホストの定義とデータアクセスに関するパラメータを追加することができます。方法は次の通りです。
1. 該当する IBM i のデータベースに位置付けて、プルダウンメニュー［編集 / 特性］を選択するか 、［Alt+Enter］
を押下すると、［データベース特性］ダイアログの［ログイン］タブが表示されます。

図 3-5 データベース特性

ここには、以下のパラメータが有効です。

14

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの設定
ログオン (L) タブ•

データベースサーバ …… IBM i サーバのホスト名（IP アドレス）。EASYCOM サーバのポート番号がデフォ
ルト（6077）以外で起動された場合はホスト名（IP アドレス）: ポート番号（例 . IS400:6078）。

•

ユーザ名／パスワード …… IBM i サーバに接続する際のユーザ名とパスワード

オプション (O) タブ•

サーバソート …… タスクでのソート処理が実行されるとき、Magic xpa で定義された仮想のインデックス
を OPNQRYF で処理するかどうかを制御します。サーバソートを有効にすると、Magic xpa 自体のソート機能でなく、IBM i 上でソート処理を行います。
ただし、この設定は Unicode 型の項目に対して正しく機能しません。Unicode 型を定義したファイルのデー
タベースには、このオプションを無効にして下さい。

SQL(Q) タブ•2.

データベース情報 …… KEYWORD=VALUE の形式で、追加のパラメータを指定することができます。詳しい構文の内容は、次の「［データベース情報］特性で有効なキーワード」を参照してください。

［OK］ボタンを２回クリックして、［設定／データベース］ダイアログを終了します。

［データベース情報］特性で有効なキーワード［データベース特性］の［データベース情報］特性で指定できるキーワードは、次の通りです

FLDNAMES
このキーワードを記述すると、定義取得時に［データ］リポジトリのカラム名に、IBM i ファイルの実際の項目
名を代入します。
このキーワードの指定がない場合（デフォルト）では、DDS の機能ワードで定義された項目名（COLHDG）を代入します。

TRANSACTIONS=Y
このキーワードを指定すると、ライブラリ内の全データファイルを対象にコミットメントコントロールを開始します。また、この設定を行う際には、併せて［設定 / 動作環境 / マルチユーザータブ /ISAM トランザクション］のパラメータを「Yes」にしてください。
（詳細は後述「ISAM ファイルにトランザクションを利用する方法」を参照してください。）

NOMSGBOX
このキーワードを記述すると、Magic xpa のエラーメッセージボックスを表示しなくなります。エラーは、DBERR（）内部関数か RTVERRID UDF を使用して取得することができます。オペレーターの介入ができないバッチ型プ
ログラムや自動エラーハンドリングが必要なときに使用します。

*RNGSVR=Y
このキーワードを記述すると、範囲抽出時に OPNQRYF を使用します。この設定はデータベース特性／ SQL デー
タベース情報以外にも、DBMS テーブルのパラメータ、データソース特性／ SQL データベース情報で設定可能です。ただし、この設定は Unicode 型の項目に対して正しく機能しません。Unicode 型を定義したファイルのデータ
ベースには、このパラメータを設定しないで下さい。

OVRLFLIB=［ライブラリ名］| *LIBL | *CURLIB
このキーワードを記述すると、インデックスに定義された論理ファイルを、物理ファイルと異なるライブラリに配置することができます。
• ［ライブラリ名］…… 指定されたライブラリにある論理ファイルを使用します。
•*LIBL …… ライブラリリストにある論理ファイルを使用します。

•*CURLIB …… カレントライブラリにある論理ファイルを使用します。

Magic xpa for IBM i 開発ガイド15

第 3 章 - データベースの設定
このキーワードは、データベース特性のほかに、データソース特性でも指定できます。

MAGICDBA=［HOST DBA ライブラリ］
デフォルトのライブラリ（MAGIC400）と異なる名前のホストライブラリを利用する場合は、このキーワードでライブラリ名を指定します。このオプションによって、異なる IBM i サーバに対して異なるライブラリ名を指定することができます。

CRTSPLF=N
ファイルの新規作成時に、スプールファイルを作成しません。

データリポジトリ (ISAM) の設定
IBM i のファイルシステム固有の機能や特徴に合わせて、Magic の［データ］リポジトリの設定上、いくつか考慮すべき点があります。ここでは、既存のパラメータの IBM i への影響や、Magic xpa for IBM i で有効なパラメータについて説明します。

IBM i ファイルシステムについての基礎知識
一般に IBM i は、2 つの基本的なファイルタイプを持っています。
•

物理ファイル•

論理ファイル

物理ファイルには実際のデータが含まれており、論理ファイルには異なるデータビューの定義だけが含まれています。キーフィールド（インデックス）は、物理ファイル、論理ファイル 共に使用することができます。
IBM i ファイルのレコード構造は、ISAM ゲートウェイを使う場合には DDS （Data Description Specification）およびIDDU （Interactive Data Definition Utility）を使います。
Magic xpa for IBM i がデータベースファイルを新規作成する時の DDS のソース・ファイルは MGDDSSRC というファイル名で、データベースファイルと同じライブラリに作成されます。
論理ファイルは、次のように分類することができます。
•

単純な論理ファイル（キー定義）
物理ファイルの全レコード形式を定義（引用）して、物理データに追加のキーフィールドを定義した論理ファイル。

•

条件なし論理ファイル
物理的なファイル・レコード形式からの特有のフィールドを抽出して、そのレコードでフィールド位置を変えたり、またはフィールドを追加して、オリジナル構造が判らないような定義をした論理ファイル。

•

条件付き論理ファイル
選択／除外キーワード（比較、範囲、値指定）の条件指示により物理ファイルからデータを選択した論理ファイル。

•

結合論理ファイル
複数の物理ファイル（32 個まで）フィールドを一つの論理的なレコードビュー様式に結合した論理ファイル。

注意：

16

•

Magic xpa for IBM i では、単純な論理ファイルのみ［データ］リポジトリにキー定義し使用することができます。

•

他の種類の論理ファイルに対しては、［データ］リポジトリで別々のファイルとして定義する必要があります。

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの設定

データベース欄の設定［データ］リポジトリの「データベース」にカーソルを移動し、ズームで IBM i のデータベースを選択します。

図 3-6 データベースの指定

ファイル名の設定
IBM i 上に作成されるファイル名（物理ファイル名）は、［データ］リポジトリの［データソース名］に指定します。
Magic の機能により、［データ］リポジトリの［データソース］カラムを空欄にしておくと、「”FIL” + ファイル番号」というファイル名がデフォルトで生成されます。
IBM i ファイル名は、「ライブラリ名 / ファイル名」か「ファイル名」の２種類の形式で指定することができます。もし、ファイル名だけを指定するならば、［設定 / データベース］の［位置］カラムに指定されたライブラリ名がデフォルトとして使用されます。

カラムの設定Magic xpa for IBM i では、IBM i 上でのファイルのフィールド名を［カラム特性 / データベース名］で定義します。
フィールド名も IBM i の規約に準じている必要があります。この特性がスペースの場合、デフォルトのフィールド名として「FLDn」（n は項目番号）となります。
また、ファイルの COLHDG の名称については、カラムの［名前］が反映されます。IBM i での制限により、これはシフトイン・シフトアウト文字含めて 30 桁までです。
逆に定義取得を行うと、デフォルトでファイルのフィールド名は［カラム特性 / データベース名］に、COLHDG の名称は［名前］に反映されます。
項目の［名前］にフィールド名を反映させるには、［設定 / データベース / データベース特性］の「データベース情報」パラメータに「FLDNAMES」のキーワードを記述してから定義取得を行います。詳細は「定義取得」を参照してください。
注意：

IBM i の規約では、ファイル名、カラム名は最大 10 字までの半角文字を指定します。最初の文字は、英字（A ～ Z）、@、# のいずれか、２文字目以降は英数字（A ～ Z、0 ～ 9）、@、#、_ が指定可能です。
英字は、大文字を使用してください。

Magic xpa for IBM i 開発ガイド17

第 3 章 - データベースの設定
IBM i の DBCS の専用フィールド、混用フィールド ( デフォルト )、択一フィールド、図形フィールドを指定する場
合には、文字型の書式に特別な「位置指示記号」を指定する必要があります。詳細は「6 章 DBCS」を参照して下さい。

インデックスの設定
ファイルにインデックスを定義して新規にファイルを作成したときには、そのキーが定義された論理ファイルが作成されます。
論理ファイル名は、［インデックス特性 /DB インデックス名］で指定します。

図 3-7 インデックス特性［インデックス特性 /DB インデックス名］が指定されていない場合、デフォルトの論理ファイル名として「DB テー
ブル名の左から 5 バイト＋ 'K' + キー番号」という形式で論理ファイル名が自動生成されます。
例：「データソース名」が「ABCDEFGH」の場合、1 番目のキーのデフォルト論理名は、「ABCDEK1」となります。
これらのファイル名が IBM i のファイルの規約に合致しないと実行時にエラーとなります。また、左から５文字が同じテーブル名が［データ］リポジトリに複数定義されていると、異なるファイルに対して、インデックスの論理
ファイル名が同じファイルとして動作するため、予期しない動作が発生します。
以上のことから、ファイル名や論理ファイル名は明示的に指定することをお勧めします。
注意：

存在しないライブラリを指定してファイルを作成しようとしたとき、または不正なファイル名を指定した場合、次のようなエラーメッセージが表示されます。

図 3-8 エラーメッセージ

注意事項•

Magic xpa の［タスク特性］や［リンク］コマンドなどでキーが指定されていますが、そのキーに対応する論理
ファイルが実際には存在しない場合、Magic はキーで定義された論理ファイルを自動生成します。

•

ファイルオープン時、Magic xpa は IBM i ファイルのファイルレベル識別コードと［データベース情報］特性で指定された「FILELVL=」キーワードの値を比較します。その値が同一でなければ、「定義内容が一致しません」のエラーが表示され、ファイルを開くことができません。

• ［データベース情報］特性に「RECLVL=」キーワードの値が設定され、レコード様式識別コードが同一ならば、ファイルレベル識別コードが異なっていてもファイルのオープンが可能になります。
•

18

結合論理ファイルは、読込専用モードでオープンされます。結合論理ファイルをオープンしてデータの修正を行おうとすると、エラーメッセージが表示され、プログラムが終了します。

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの設定•

文字型カラムの［カラム特性／データベース定義］に「S= 文字列」を設定すると、DBCS に対応した CCSID が設定されません。

• ［インデックス特性／タイプ］を「V= 仮想キー」に設定すると、QTEMP にインデックスを作成します。

［データソース特性］で有効なキーワード
Magic xpa for IBM i は、ファイル定義と I/O 属性を拡張するために、［データソース特性／ SQL タブ／ SQL データ
ベース情報］を使用しています。ここでは、次のようなキーワードが有効になります。

TYPE=PF | LF
［定義取得］機能で自動的に挿入されます。物理ファイル（PF）と論理ファイル（LF）の区別する機能と共に、Magic xpa で IBM i ファイル構造の変更を防ぐ機能があります。
このキーワードを持っているファイル構造に修正を行おうすると、次のようなエラーメッセージが表示されます。

図 3-9 エラーメッセージCOMPLEX_LOGIC［定義取得］機能によって自動的に挿入されます。
DB2 fot IBM i 特有のファイル定義ステートメントのために、再作成することができないファイルとして認識させるために使用されます。

FILELEVEL=［ファイルレベル識別コード］［定義取得］機能によりファイルレベル識別子が自動的に挿入されます。詳細は「注意事項」を参照してください。

RECLVL=［レコード様式識別コード］［定義取得］機能によりレコードレベル識別子が自動的に挿入されます。詳細は「注意事項」を参照してください。

RECNAME=［レコード様式名］
レコード様式名を定義する文字列の指定です（最大長は 10）。これは、新規の IBM i ファイルが作成されるとき、
Magic xpa によって追加されます。この値はファイル再作成の実行時に、新規ファイルのレコード様式名として利用されます。
定義取得を行った場合も、IBM i で定義されたファイルのレコード名パラメータが、「RECNAME=［レコード様式名］」の形式で追加されます。

*RNGSVR=Y
このキーワードは、範囲抽出時に OPNQRYF を利用するために追加されました。この設定は［データソース特性／ SQL データベース情報］以外に、［DBMS］テーブルのパラメータ、［データベース特性／ SQL データベース
情報］で設定可能です。
ただし、この設定は Unicode 型の項目に対して正しく機能しません。Unicode 型を定義したファイルには、このパラメータを設定しないで下さい。

SHARE=Y
同じジョブでファイル ODP を他のプログラムと共有するために記述します。

Magic xpa for IBM i 開発ガイド19

第 3 章 - データベースの設定
STORAGE=DB2
次に示す項目について DB2 for IBM i の形式で格納するかどうかを指定します。
Magic xpa の日付型と時刻型の項目は、デフォルトでは DB2 for IBM i の英数字フィールドとして定義されます。
このキーワードを記述することにより、IBM i のネィティブの日付／時間フォーマットで保管します。
時刻型は 23:59:59 が最大値になりますので注意が必要です。
論理型は、デフォルトとして ASCII コードの『F』または『T』で保管されます。このキーワードを記述すること
により、IBM i で EBCDIC コードの『F』または『T』で保管されます。

更に、日付型は次のキーワードを追加することにより、EUR 形式、USA 形式のフォーマットに変更することが可能です。
DATFMT=*USA
DATFMT=*EUR

または

時刻型は、デフォルトフォーマットは HH.MM.SS ですが、次のキーワードを追加することにより、HH:MM:SS に変更することが可能です。
TIMFMT=*HMS

CACHE=［レコードブロック数］
１回の READ 要求毎にどれだけのレコード数を転送するか指定します。連続した READ 操作には、I/O パフォー
マンスが改善されます。

TRANSACTIONS=Y
このキーワードを指定すると、指定したファイルがプログラムで利用されるとき、トランザクション処理を開始します。（詳細は後述の「ISAM ファイルにトランザクションを利用する方法」を参照してください。）

OPEN_PF=Y
Magic xpa のファイルアクセスモードでファイルロックが発生するモードを使用したい場合は、このキーワードを記述します。このキーワードを指定しないでファイルロックが発生するとロックが解除されるまで応答が返らな
いか、「Fail to Open ...」のエラーダイヤログが表示されます。
ただし、このキーワードを指定すると論理ファイルのオープン時にも、常に物理ファイルのオープン処理が行われるため、パフォーマンスが低下します。極力、レコードロック方式に変更することをお奨めいたします。

CRTSPLF=N
ファイルの作成処理中にスプールファイルを作成するかどうかを指定します。

定義取得
テーブル定義取得機能を使用して、IBM i ファイル定義を［データ］リポジトリに取り込むことができます。
参考：

20

この機能は、ISAM ゲートウェイ、SQL ゲートウェイともに有効です。

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの設定

図 3-10 定義取得

（1）リストから IBM i ファイルを選択
定義取得しようとするテーブルの名前が正確にわからない場合、あるいは複数のテーブルを一度に定義取得しようとする場合には、最初に一覧を取得し、その中から選択し、定義取得を実行する、という方法を使います。
以下に手順を説明します。
1. ［プロジェクト／データ］を開きます。
2. テーブルの最初の行より上に、カーソルを移動します。
3. ［オプション／定義取得］メニューを選択します。
4. ［データベース］カラムでズームして、定義取得するデータベースを選択します。
参考：一覧には、データベーステーブルで定義されているデータベースのうち、SQL 系のゲー
トウェイあるいは IBM i の ISAM ゲートウェイにより定義されたものが表示されます。

5. ［タグデータ］を「S= 選択」にします。
6. ライブラリ中のファイルが一覧表示されます。
7.

定義取得したいファイルをクリックします。

8. ［選択］ボタン、または［Enter］を押下します。
9. Magic xpa はタグが付けられたファイルの定義を取得し、［データ］リポジトリに登録します。

（2）特定の IBM i ファイルを選択
名前がわかっているテーブルをひとつだけ定義取得したい場合には、この方法を用います。テーブルの一覧を取得する手順がないので、その分速く定義取得ができます。
1. ［データ］リポジトリの任意の位置で、［ 登録］ボタンまたは、［F4］を押下して、新規行を作成します。
2. ［データソース名］と［データベース］を指定します。
3. ［オプション／定義取得］メニューを選択します。
4. Magic xpa は指定されたファイルの定義を取得し、［データ］リポジトリに登録します。
注意：•

IBM i から定義取得されたファイル構造は、Magic xpa の［データ］リポジトリですぐに変更することができません。

•

ファイルを変更したい場合、［データソース特性 /SQL データベース情報］に記述されたキーワード
TYPE=PF/LF を削除してください。

Magic xpa for IBM i 開発ガイド21

第 3 章 - データベースの設定

SQL ゲートウェイの設定［設定／ DBMS］(SQL) の設定
重要：SQL ゲートウェイは ISAM ゲートウェイを通して EASYCOM にアクセスするので、SQL ゲートウェイ
のみを利用する場合でも、ISAM と SQL の両方の設定が必要になります。
以下には SQL に固有な部分のみ説明しますが、SQL ゲートウェイを利用するにあたっては、前述の「［設定／ DBMS］(ISAM) の設定」（11 ページ）も必要となり、実行時に有効となるので、そちらを先に設定してください。
DB2 for IBM i（SQL）の［設定／ DBMS］テーブルを設定するには、次のように実行します。
1. Magic xpa を起動します。
2. プルダウンメニューから［設定／ DBMS］を選択します。
3. ［パラメータ］カラムに移動し、必要なパラメータを入力します。有効なパラメータについては、以下に説明します。
4. ［OK］ボタンか ［Enter］を押下します。

DB2 for IBM i(SQL) の「パラメータ」欄で有効なパラメータ
CONNECTDLL=MGEAC32.DLL
SQL ゲートウェイを利用する場合には、このキーワードを指定します。

CRTSQLSCRIPT=< ファイル名 >実行時に SQL ゲートウェイがテーブルを新規作成する際、発行された CREATE ステートメントが、< ファイル名> のファイルに記録されます。このファイルは PC クライアント上に作成されますので、クライアントの Windows
上で有効な名前を指定してください。
参考：

一覧には、データベーステーブルで定義されているデータベースのうち、SQL 系のゲー
トウェイあるいは IBM i の ISAM ゲートウェイにより定義されたものが表示されます。

DB2 for IBM i(SQL) の［DBMS 特性］の設定
分離レベル
トランザクションの分離レベルを設定します。ここは 0 ～ 3 の整数で指定し、それぞれの意味は以下の通りです。

参考：

分離レベルの値

分離レベル

意味

0 ( デフォルト )UR

未コミット読み込み

1CS

カーソル固定2

RS

読み取り固定3

RR

反復可能読み取り•

0 （未コミット読み込み）の設定だと、マルチユーザ環境での並列度が高く、オーバーヘッドも低いですが、コミットされていないデータが読み取られる可能性があるので、通常は 1 ( カーソル固定 )に設定しておくことを推奨します。

•

2（読み取り固定）や 3（反復可能読み取り）は並列度が下がるので、高度なデータ一貫性が要求される処理に止めておくようにしてください。

［設定／データベース］(SQL) の設定
SQL ゲートウェイに関する［設定／データベース］テーブルでは次のような設定を行います。

22

Magic xpa for IBM i 開発ガイド

SQL ゲートウェイの設定

DB2 for IBM i(SQL) データベースの定義
1. Magic xpa を起動します。
2. プルダウンメニューバーから［設定／データベース］を選択します。
3. 新しい行を作成するために、［登録］ボタンまたは、［F4］を押下します。
4. ［名前］カラムに、適当なデータベース名を入力します。データベース名は、ユーザが自由に設定できます。こ
こで設定した名前は、［データ］リポジトリの［データベース］で参照されます。
5. ［DBMS］カラムからズームして、［DBMS 一覧］を開き、［DB2 IBM i(SQL)］を選択します。
6. ［DB 名］カラムは、アクセスする IBM i データベースのスキーマ名を英数大文字で指定します。
7. ［位置］カラムは、空白のままにします。

図 3-11 データベーステーブル［データベース特性］の設定

図 3-12 データベース特性［データベース特性］ダイアログでは、IBM i のホストの定義とデータアクセスに関するパラメータを追加することができます。方法は次の通りです。
1. 該当する IBM i のデータベースに位置付けて、プルダウンメニュー［編集 / 特性］を選択するか 、［Alt+Enter］
を押下すると、［データベース特性］ダイアログの［ログオン］タブが表示されます。

Magic xpa for IBM i 開発ガイド23

第 3 章 - データベースの設定
ここでは、以下のパラメータを設定することができます。

ログオン (L) タブ•

データベースサーバ …… IBM i サーバのホスト名 (IP アドレス )。EASYCOM サーバのポート番号がデフォ
ルト (6077) 以外で起動された場合はホスト名 (IP アドレス ): ポート番号 ( 例 . IS400:6078)。

•

ユーザ名／パスワード …… IBM i サーバに接続する際のユーザ名とパスワード。

SQL(Q) タブ•

テーブルの存在チェック（「SQL」タブ）…… テーブルオープン時に毎回、アクセス先の SQL テーブルが存在するかどうかのチェックを行うか否かを指定します。

2. ［SQL］タブの［データベース情報］特性には、KEYWORD=VALUE の形式で、追加のパラメータを指定することができます。指定できるキーワードは、「SQL の［データベース情報］特性で有効なキーワード」で説明します。

図 3-13 データベース情報

3. ［OK］をクリックして［データベース特性］ダイアログを終了し、再度［OK］をクリックして［データベー
ス］テーブルを終了します。

SQL の［データベース情報］特性で有効なキーワード
DB2 for IBM i(SQL) データベースの［データベース情報］特性で指定できるキーワードは、次の通りです。

MAGICDBA=［HOST DBA ライブラリ］
利用するホスト DBA ライブラリ名を指定します。このパラメータによって、HOST DBA の異なるバージョンを使用したり、異なる IBM i サーバに対して異なるライブラリ名を指定することができます。

SQL_ISOLATION_LEVEL= UR | CS | RS | RR
ファイルにアクセスするときのトランザクション分離レベルを設定します。分離レベルの意味は、下記の通りです。

24

分離レベル記号意味UR

未コミット読み取り

CS ( 推奨 )カーソル固定RS

読み取り固定RR

反復可能読み取り

Magic xpa for IBM i 開発ガイド

SQL ゲートウェイの設定
参考：•

ここで指定されないとき、デフォルトの分離レベルは、［DBMS 特性］の設定が有効になります。

• ［DBMS 特性］に設定されていなければ、デフォルトとして「UR」となります。
• 「UR」ではコミットされていないデータを読み込む可能性があるので、「CS」に設定しておくことを推奨します。

DateTimeGetDefSupport=Y
TIMESTAMP 型のカラムを定義取得する場合、デフォルトでは文字型 26 バイトで定義されますが、このパラメータを設定すると、日付型と時刻型の組み合わせで定義されます。

Magic xpa for IBM i 開発ガイド25

第 3 章 - データベースの設定

データリポジトリ (SQL) の設定
データベース欄の設定
SQL ゲートウェイでアクセスするデータベースのテーブルは、［データベース］カラムで IBM i (SQL) のデータベー
スを選択します。

図 3-14 データベースの指定

データソース名／カラム／インデックスの設定
SQL ゲートウェイで IBM i のデータベースにアクセスする場合、ISAM ゲートウェイでアクセスする場合とは仕様が異なる点に注意が必要です。Magic でアクセスする上で考慮すべき点を以下に列挙します。
•

データソース名、DB インデックス名、DB カラム名を空欄にすることはできません。

•

データソース名、DB インデックス名、DB カラム名には、半角英数大文字で設定します。

•

データソース名、DB インデックス名、DB カラム名の最大サイズは次の通りです。
項目

サイズ

テーブル名、DB インデックス名、制約名

128 バイトカラム名30 バイト•

重複不可のキーを最低１つ定義する必要があります。

•

文字型のカラムの書式に DBCS 固有の位置指示記号を指定した場合、キー入力時の規制は Magic xpa Enterprise
Client が制御するために有効ですが、格納される文字タイプは、すべて全角と半角が混用可能な CHARCTER 型に対応します。

• 「インデックス特性／タイプ」を「V= 仮想キー」に設定した場合、データベースに論理ファイル、索引およびビュー等の物理的なインデックスは作成されません。
カラムの定義について、「補足」の「データ記憶型式と IBM i データタイプ」を参照してください。

26

Magic xpa for IBM i 開発ガイド

SQL ゲートウェイの設定［データソース特性］で有効なキーワード［データ］リポジトリで、SQL ゲートウェイにより定義されているテーブルに対し、［データソース特性］ダイアロ
グを開き、［SQL］タブの［SQL データベース情報］特性に、以下のパラメータが指定されます。
•

SHRTNAME= ［ファイルシステムでの名前］［定義取得］機能によって自動的に挿入されます。このキーワードが設定されていると、テーブル定義を削除しても、IBM i の実際のファイルは削除されません。

定義取得
SQL ゲートウェイを使った場合にも、定義取得が可能です。定義取得の方法については、ISAM データベースの設定の「定義取得機能」(20 ページ ) を参照してください。

Magic xpa for IBM i 開発ガイド27

第 3 章 - データベースの設定［このページは意図的に空白にしています。］

28

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの機能

4

プログラミング

この章では、IBM i 特有の OpenQuery 機能やジャーナルファイルの利用 , および IBM i プログラムの呼び出し、IBMi のスプール機能の操作、IFS の利用する方法について説明します。

ISAM ゲートウェイの機能
OPNQRYF の利用 － OpenQuery ファイル －注意：

この機能は、ISAM テーブルをメインテーブルとし、物理トランザクションモードのプログラムで有効になります。
プログラムで OPNQRYF の Query 選択式を定義するには、［タスク環境 / 範囲位置付 /IBM i Open Query ファイル］を選択します。ここで、プログラムで定義されたカラムを使用し、OPNQRYF で有効な Query 選択式を記述します。
IBM i ゲートウェイはこの設定に基づき Query ファイルをオープンします。

図 4-1 Open Query ファイル

OpenQuery ファイルの設定
OpenQuery ファイルのダイアログは、次の部分で構成されています。
•

Magic SQL 式（無効）•Query 選択式•

評価結果の表示

Query 選択式
この領域に Query 選択式を記述できます。ここに記述した Query 選択式が Query ファイルをオープンするときに利用されます。項目の記述方法としては、次の２種類があります。
1. ファイルのフィールド名、演算子、値を直接記述する方法
Magic xpa for IBM i 開発ガイド29

第 4 章 - プログラミング
メインソースで定義されたカラムについて、IBM i でのフィールド名、および演算子等を直接記述することで、この式がそのまま Query 選択式として、Query ファイルオープンに利用されます。
2. 項目の番号（A、B、C など）の先頭に「:」記号を付けて記述する方法
メインソースのカラムで［カラム特性］の［DB カラム名］特性が定義されている場合、この方式が利用できます。項目名は、［カラム特性］の［DB カラム名］特性に置き換えられます。
メインソースでない場合、データ型にしたがって値に変換されます。項目の型が文字型の場合、Magic xpa により後続のスペースが削除されるとともに引用符が追加されます。

評価結果の表示領域
この領域には、Query 選択式全体が表示されます。この Query 選択式は、Magic xpa から作成される Query ファイルに使われます。表示される内容は次の通りです。
• ［データビュー］エディタにより生成された Query 選択式：範囲式も表示されます。
•

Query 選択式：AND 句を使い、カッコで囲まれて表示されます。
［データビュー］エディタの範囲に追加されます。

Query 選択式全体表示領域では、カラム一覧の項目はすべて置き換えられます。項目のうち、メインテーブルの実
データのカラムは、DB2 for IBM i のフィールド名に置き換えられます。また、変数項目はその名前に置き換えられます。項目が置き換えられるときには、Magic により項目の型と記憶型式がチェックされ、必要な場合（例えば、文字型の場合）には引用符が追加されます。
ウィンドウの右下の［表示］ボタンをクリックすると、Query 選択式表示領域の内容が更新されます。
注意：

30

•

Query 選択式は、タスクのオープン時に評価され、その後変数や実項目などの値が変更されても再計算されません。タスクオープン時には、［データビュー］エディタの［代入］特性は評価される前なので、変数項目にはデフォルト値が入っています。そのため、Query 選択式で使う変数は、実際的にはパラメータ項目に限られます。

•

Query 選択式に指定されている項目のデータ型はチェックされません。項目のデータ型に対してはそれぞれ、文字列への変換が試みられ、Query 選択式の所定の場所に連結されます。このため、データ型に注意する必要があります。

•

Unicode 型の項目は使用できません。

Magic xpa for IBM i 開発ガイド

ISAM ゲートウェイの機能

ISAM ファイルへのダイレクト SQL セレクト
ここで説明するダイレクト SQL セレクトの機能は、過去のバージョンとの互換性のために残されています。

重要：

新規に作成するプログラムでは、この機能は使用せず、SQL テーブルとして、埋め込み SQL の機能を利用することをお勧めします。
ISAM テーブルに対しても、Open Query ファイルダイアログを使用することで SQL の SELECT 文を入力することができます。

図 4-2 ダイレクト SQL

入力するには以下の手順で実行します。
1. ISAM ゲートウェイによる IBM i 上のテーブルがタスクのメインソースとして定義されているかどうかを確認します。
2. メインソースのインデックスを「0」にします。
3. SELECT ステートメントで指定されているフィールドの型が、メインソースのものと合っているかどうかを確認します。
SQL の SELECT ステートメントは、FETCH ONLY オプションを付加して使用できます。

制限事項
以下に制限事項を挙げます。
•

SELECT ステートメント内で使用されるファイルは、直接更新できません。SQL の SELECT ステートメントテー
ブルと［リンク］コマンドでリンクすることで、この制限を回避できます。

•

SELECT ステートメント内で定義されたフィールドの数は、メインソースのカラム数と同じでなければなりません。異なる場合は、［データ］リポジトリでダミーのテーブルを定義することにより対応することが可能です。
以下に、ダミーテーブルからフィールドを指定する方法を説明します。
実テーブル：•

テーブル名：TESTDB•

位置：DBTEST1 ライブラリ•

テーブルには 3 つのカラムを定義します。: FLD1, FLD2, FLD 3

FLD1 と FLD3 のみ表示したい場合は、以下のようにします。
ダミーテーブル TESTDBDMY を［データ］リポジトリに定義します。このテーブルには、FLD1 と FLD3 の 2 つのカラムを定義します。TESTDB テーブルの FLD1 と FLD3 と同じ特性で定義してください。
Magic xpa for IBM i 開発ガイド31

第 4 章 - プログラミング
ダミーテーブル：•

テーブル名：TESTDBDMY•

位置：DBTEST1 ライブラリ•

テーブルには 2 つのカラムを定義します。：FLD1, FLD3

メインソースに TESTDBDMY を定義したタスクを作成します。このテスクで、FLD1 と FLD3 のカラムを定義します。
OpenQuery タスクウィンドウに以下のようなステートメントを入力します。
SELECT FLD1,FLD3 FROM DBTEST1/TESTDB WHERE FLD1 LIKE %MAGIC% FOR FETCH ONLY.
•Unicode 型の項目は使用できません。

カラム定義で範囲指定に対する OPNQRYF の利用［OpenQuery ファイル］ダイアログを使わず、タスクのカラム定義の範囲指定のみが設定されている場合は、「*RNGSVR=Y」キーワードが DBMS パラメータ、［データベース特性］、［データソース特性］のいずれかで設定している時に限り、その範囲条件を Query ファイルに含めることができます。
範囲大小の設定パターンにより、次のような OPNQRYF のステートメントが発行されます。
範囲小

範囲大

ステートメントA

B

Field >=A *AND Field <=B
または、%Range（A,B）

A－

Field >=A－

－B

Field <=B

NULL

NULL

Field=%NULL－

Field=%NULL

NULL

NULL

Field=%NULL

NULL

B

Field=%NULL

A

NULL

Field=%NULL

ISAM ファイルにトランザクションを利用する方法
Magic xpa で ISAM ゲートウェイを使い、IBM i ファイルのトランザクション処理を行うためには、次の設定を行う必要があります。
• ［オプション / 設定 / 動作環境 / マルチユーザータブ /ISAM トランザクション］パラメータを「Yes」にします。
• ［デ ー タ ベ ー ス 特 性］、ま た は［デ ー タ ソ ー ス 特 性］の「SQL」タ ブ で、
［デ ー タ ベ ー ス 情 報］特 性 に「TRANSACTIONS=Y」を指定します。
•
注意：

32

プログラムでは［タスク特性 / トランザクションモード］、および［トランザクション開始］を設定します。
キーワード TRANSACTIONS=Y は、次の新しい機能を起動します。
•

ジャーナルレシーバーとジャーナルを自動生成します。（ファイル名が、レシーバーとジャーナル
ファイルにて使用されます。）•

物理ファイルならば ジャーナル PF を開始します。論理ファイルならば、ジャーナルアクセスパスを開始します。

•

メッセージを QSYSOPR へ送ります。

Magic xpa for IBM i 開発ガイド

SQL ゲートウェイによる機能

SQL ゲートウェイによる機能
埋め込み SQL

図 4-3 埋め込み SQLSQL ゲートウェイを利用すると、埋め込み SQL の機能を利用できます。これにより、［SQL コマンド］ダイアログに複雑な SELECT ステートメントや、ストアドプロシージャを記述して実行することができます。
ただし、IBM i の SQL ゲートウェイを指定した埋め込み SQL のプログラムは、以下のような、他の SQL のゲートウェイとは異なる点に考慮する必要があります。
•

ステートメントには、半角英数大文字以外は指定できません。

• ［結果データベース］には IBM i SQL データベースを指定できません。Pervasive.SQL 、Memory データベース等を指定してください。
•

ストアドプロシージャを指定する場合、プロシージャー名の前に "CALL" を記述します。

•

ファイル名、プロシージャ名にはスキーマ名（ライブラリ名）を付加する必要があります。スキーマ名とファイ
ル名の区切文字は、DBMS テーブルの NAMING=*SQL パラメータの有無により、.（ドット）または /（スラッシュ）のいずれかを設定します。

SQL SELECT ステートメントを定義するには：
1. 新しいタスクを作成し、［Ctrl+Q］を押下します。
2. ［データベース］欄からズームして、IBM i (SQL) のデータベースを選択します。
3. 結果データベース］欄からズームして Memory、Pervasive SQL 等のデータベースを選択します。空欄、またはIBM i、IBM i (SQL) は選択しないでください。
4. 有効な SQL ステートメントを入力します。
5. SELECT ステートメントの場合、［APG］をクリックして Magic プログラムを作成できます。
参考：埋め込み SQL の詳細は、『リファレンスヘルプ』の「データビューエディタ」内のトピックを参照してください。

SQL 用の IBM i ファイルを使用したトランザクション処理
SQL ゲートウェイによるプログラムでは、データベースによるトランザクション処理が有効になります。更新時のトランザクション内では、最初にトランザクションが宣言され、次に COMMIT または ROLLBACK のどちらかのSQL ステートメントが全てのステートメントに対して発行されます。

Magic xpa for IBM i 開発ガイド33

第 4 章 - プログラミング
２つの更新ステートメントを実行する場合、同じトランザクション内で処理しないと、失敗して ROLLBACK された場合、整合性がとれなくなることがある点に注意が必要です。
また、ISAM ファイルの更新を同じプログラムで行う場合は、ISAM ゲートウェイのトランザクションの設定を行う必要があります。

SQL のエラーメッセージを取得する
エラーに関するデータを取得する方法として、ErrDbmsCode 関数や ErrDbmsMessage 関数を使用して取得することができます。

ErrDbmsCode 関数
データベースにエラーがある場合、この関数はオリジナルの DBMS エラーコードを返します。
構文：

ErrDbmsCode ()パラメータ：

なし

戻り値：

DBMS のオリジナルのエラーコード

参考：開発者が DBMS の内部エラーコードに精通している場合、発生したエラーコードをもとに対応することができます。

ErrDbmsMessage 関数
データベースにエラーがある場合、この関数はオリジナルの DBMS エラーメッセージを返します。

34

構文：

ErrDbmsMessage ()パラメータ：

なし

戻り値：

DBMS のオリジナルのエラーメッセージ

参考：

DBMS のエラーメッセージを Magic xpa のメッセージとして表示させることができます。

Magic xpa for IBM i 開発ガイド

IBM i 固有の UDF/ ユーザ PRC インタフェース

IBM i 固有の UDF/ ユーザ PRC インタフェース
Magic xpa for IBM i では、IBM i に特化した機能のために、固有のユーザ定義関数（UDF）／ユーザプロシージャ（ユーザ PRC）インタフェースをサポートしています。
プログラムでの設定方法は、『リファレンスヘルプ』の UDF 関数、または［コール PRC］処理コマンドに関する記述を参照してください。
注意：•マルチスレッド環境では、UDF は正しく動作しないことがありますので、ISERIES ユーザプロシ
ジャを使用してください。

•

構文チェックユーティリティは、UDF/ ユーザプロシジャの構文、およびパラメータの設定に対してチェックを行いません。

•

パラメータ、および戻り値には、Unicode 型の項目は対応していません。

AS400PGMCALL 関数
AS400PGMCALL 関数は、引数を１つ持つ IBM i プログラムをコールする場合に利用します。

構文
UDF（'MGEAC32.AS400PGMCALL',A,B,C,D）

パラメータ
•

A = IBM i システム名（文字型）•

B = プログラムライブラリ / プログラム名（文字型）•

C = 入力パラメータ（文字型）•

D = 入力パラメータ長（数字型）

戻り値プログラムの戻り値（文字型最大 2048 バイト）

RMTCMD 関数
RMTCMD 関数は、CL コマンドをコールする場合に利用します。また、CALL PGM … を指定することで、複数のパラメータを渡す IBM i プログラムを指定することができます。ただし、DBCS のパラメータは対応していません。

構文
UDF（'MGEAC32.RMTCMD',A,B）

パラメータ
•

A = IBM i システム名（文字型変数）•

B = CL コマンド（文字型）

戻り値：数値型•

0 ……処理が成功した場合•

1 ……処理が失敗した場合

Magic xpa for IBM i 開発ガイド35

第 4 章 - プログラミング

AS400Call ユーザプロシジャ
AS400Call 関数は、複数の引数を持つ IBM i プログラムをコールする場合に利用します。

図 4-4 AS400Call ユーザプロシジャ

構文［コール PRC］処理コマンドで実行します。
定義式：@MGEAC32.AS400Call

パラメータ
1. 引数型文字列
2. IBM i システム名……文字型
3. プログラムライブラリ / プログラム名……文字型
4. パラメータの総数……数値型
5. パラメータの内容（I/O タイプ【O: 出力】、データタイプ【A= 文字型、N= 数値型（packed）】、サイズ）……文字型
6. 1 番目のパラメータ
7. 2 番目のパラメータ36

Magic xpa for IBM i 開発ガイド

IBM i 固有の UDF/ ユーザ PRC インタフェース
8. ...（以下、パラメータを列挙 )注意：

数値パラメータを指定する場合、以下の点を考慮してください。
•

IBM i のプログラムの中のパラメータ変数の型が *DEC 等の場合でも、［コール PRC］処理コマンドのパラメータは、すべて文字型として定義します。

•

入力パラメータのデータの書式は、左詰め、かつマイナス符号を前付けに指定してください。

•

出力パラメータの桁数の合計が偶数桁の場合、戻り値の先頭に 0 が付加されるため、サイズを１桁多く必要とします。
例えば、LEN（10 3）の戻り値には、13 桁 （10+ マイナス符号 + コンマ +1）の文字型項目を定義します。

•［コール PRC］処理コマンドの 5 番目のパラメータに定義する書式には、MAGIC の書式ではなく、
IBM i のプログラムに定義された書式を設定します。

引数型文字列IBM i プログラムをコールする為に実行される AS400Call ユーザプロシジャ（DLL）への引数の型を定義します。
IBM i プログラムのパラメータ型を定義しているものではありません。
一つ一つの文字が引数の型を意味する文字列です。
最後の文字は、関数の戻り値の型を意味します。引数型文字と意味する型は次のとおりです。
•

4…long•L…long pointer•A…null で終了する文字列 pointer•

V…void pointer

例 :SAMPLIB/SAMP1 をコールする場合
SAMPLIB/SAMP1 のソース*************** データの始め ****************/* MAGIC IBM i UDP SAMPLE */PGM
PARM（&MGP1 &MGP2 &MGP3 &MGP4 &MGP5 &MGP6）
DCL
VAR（&MGP1）TYPE（*CHAR）LEN（10）/* IN */DCL
VAR（&MGP2）TYPE（*CHAR）LEN（10）/* IN */DCL
VAR（&MGP3）TYPE（*CHAR）LEN（20）/* IN+OUT */DCL
VAR（&MGP4）TYPE（*DEC）LEN（12）/* IN */DCL
VAR（&MGP5）TYPE（*DEC）LEN（15 3）/* IN */DCL
VAR（&MGP6）TYPE（*DEC）LEN（15 3）/* IN+OUT */CHGVAR
VAR（&MGP3）VALUE（&MGP1 *CAT &MGP2）CHGVAR
VAR（&MGP6）VALUE（&MGP4 + &MGP5）
ENDPGM*************** データの終わり ****************

Magic xpa for IBM i 開発ガイド37

第 4 章 - プログラミング
Magic プログラムの設定• ［コール PRC］処理コマンドのパラメータ
1. 'AA4AAAAAAAV'A A 4 A A A A A A A V

2. '10.1.4.201'↑ ↑↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑3. 'SAMPLIB/SAMP1'___ 」｜ ｜ ｜ ｜ ｜ ｜ ｜ ｜4. 6_____ 」 ｜ ｜ ｜ ｜ ｜ ｜ ｜5. 'A10, A10, O:A20, N12, N15.3, O:N15.3'_________」 ｜ ｜ ｜ ｜ ｜ ｜6. P1____________」 ｜ ｜ ｜ ｜ ｜7. P2_______________」 ｜ ｜ ｜ ｜8. P3__________________」 ｜ ｜ ｜9. P4_____________________」 ｜ ｜10. P5________________________」 ｜11. P6___________________________」

•

変数の定義
名前

型

書式

P1

A= 文字

10

P2

A= 文字

10

P3

A= 文字

10

P4

A= 文字

13

P5

A= 文字

17

P6

A= 文字

17

D4

N= 数値

N12

D5

N= 数値

N12.3

D6

N= 数値

N12.3

D4, D5, D6 は、それぞれ P4, P5, P6 に対応します。
•

コマンドの設定［外部コール］処理コマンドの直前に実行する［項目更新］処理コマンド：
項目更新 P4 式 = STR（D4,'N12L'）
項目更新 P5 式 = STR（D5,'N12.3L'）［外部コール］処理コマンドの後で、実行する［項目更新］処理コマンド：
項目更新 D6 式 = VAL（P6,'N12.3'）

EBCDIC コードによる文字コード比較関数
EBCCMP 関数は、EBCDIC コードで文字型項目の大小比較を行います。この関数は、［範囲／位置付］ダイアログ等で利用することが可能です。

構文
UDF（'MGEAC32.EBCCMP',A,B）

パラメータ
1. A,B = 比較文字項目（文字型）

38

Magic xpa for IBM i 開発ガイド

IBM i 固有の UDF/ ユーザ PRC インタフェース

戻り値

注意：

•

A>B の時 ……正数•

A=B の時 ……0•

A<B の時 ……負数

比較対象のベースとなるコードページは、［DBMS］テーブルで定義されたコードページを使用します。
（デフォルト：IBM-943:IBM:5026）

シフト JIS コードから EBCDIC コードへの変換関数
ASC2EBC 関数は、シフト JIS コードの文字列を、EBCDIC コードの文字列に変換します。

構文
UDF（'MGEAC32.ASC2EBC',A）

パラメータ
1. A = シフト JIS コードの文字列 （文字型）

戻り値
EBCDIC コードの文字列

例
文字列 'X' の EBCDIC コード（16 進）を求める場合
HSTR （ASC （UDF （'MGEAC32.ASC2EBC','X'）））
注意：

パラメータに２バイト文字を入力する場合、EBCDIC のパラメータは、シフトイン / シフトアウトコー
ドを考慮して、サイズを決定する必要があります。

EBCDIC コードからシフト JIS コードへの変換関数
EBC2ASC 関数は、EBCDIC コードの文字列を、シフト JIS コードの文字列に変換します。

構文
UDF（'MGEAC32.EBC2ASC',A）

パラメータ
1. A = EBCDIC コードの文字列 （文字型）

戻り値
シフト JIS コードの文字列

セッション開始関数
STARTSESSION 関数は、IBM i とのセッションを開始します。この関数を実行することで、［ユーザログオン］ダイ
アログを表示せずに、アプリケーションから自動ログオンすることができます。

Magic xpa for IBM i 開発ガイド39

第 4 章 - プログラミング構文：
UDF（'MGEAC32.STARTSESSION',A,B,C）

パラメータ：•

A= サーバ名（文字型）•

B = ユーザ ID（文字型）•

C= パスワード（文字型）

戻り値：数値型•

0 ……処理が成功した場合•

1 ……処理が失敗した場合

セッション終了関数
ENDSESSION 関数は、IBM i とのセッションを強制終了します。

構文：
UDF（'MGEAC32.ENDSESSION',A）

パラメータ：•

A= サーバ名（文字型）

戻り値：数値型•

0 ……処理が成功した場合•

1 ……処理が失敗した場合

エラーハンドリング関数
RTVERRID 関数は、プログラム実行中にサーバでエラーが発生した時、最後に出力されたエラーコードを取得します。
DBError 関数もエラーコードを取得することができますが、［レコード前］の前でエラーコードがクリアされます。
RTVERRID 関数は、次のエラーが発生するまでエラーコードを保持しています。

構文：［コール PRC］処理コマンドで実行します。
定義式：@MGEAC32.ISERIES

パラメータ：
1. 'AAAALV'
2. 'RTVERRID'
3. IBM i システム名（文字型）
4. CPF エラー ID （文字型）
5. CPF メッセージ（文字型）
6. CPF メッセージのサイズ（数値型）

40

Magic xpa for IBM i 開発ガイド

IBM i 固有の UDF/ ユーザ PRC インタフェース※ ISERIES ユーザプロシジャの詳細は、次項をご覧ください。

ISERIES ユーザプロシジャ
IBM i 固有の UDF 関数をアプリケーションサーバエンジンで実行する場合には、ISERIES ユーザプロシジャを通して実行します。

構文［コール PRC］処理コマンドで実行します。
定義式：@MGEAC32.ISERIES

パラメータ
1. 引数型文字列
2. UDF 関数の名前…文字型
3. IBM i システム名……文字型
4. （以下、UDF 関数のパラメータを列挙）

例 1．RMTCMD 関数
パラメータ1. 'AAAL'
2. 'RMTCMD'
3. '10.1.4.201'
4. 'SNDMSG MSG（HELLO）TOUSER（QSYSOPR）'
5. 戻り値…… 数値型

例 2. AS400PGMCALL 関数
1. 'AAAA4AV'
2. 'AS400PGMCALL'
3. '10.1.4.201'
4. 'MAGIC400/TEST'
5. 入力パラメータ …… 文字型
6. 入力パラメータの桁数 …… 数値型
7. 戻り値（文字型最大 2048 バイト）例 3. STARTSESSION 関数
1. 'AAAAL'
2. 'STARTSESSION'
3. '10.1.4.201'
4. ユーザ名
5. パスワード
6. 戻り値…… 数値型

Magic xpa for IBM i 開発ガイド41

第 4 章 - プログラミング

例 4. ENDSESSION 関数
1. 'AAL'
2. 'ENDSESSION'
3. '10.1.4.201'
4. 戻り値…… 数値型

例 5. EBCCMP 関数
1. 'AAAAL'
2. 'EBCCMP'
3. '10.1.4.201'
4. 入力パラメータ１ …… 文字型
5. 入力パラメータ２ …… 文字型
6. 戻り値 …… 数値型

出力パラメータの戻り値•

入力パラメータ１＞入力パラメータ２ …… 1•

入力パラメータ１＝入力パラメータ２ …… 0•

入力パラメータ１＜入力パラメータ２ …… -1

例 6. ASC2EBC 関数
1. 'AAAA4V'
2. 'ASC2EBC'
3. '10.1.4.201'
4. 入力パラメータ（シフト JIS コード）…… 文字型
5. 出力パラメータ（EBCDIC コード）…… 文字型
6. 出力パラメータサイズ …… 数値型

例 7. EBC2ASC 関数
1. 'AAAA4V'
2. 'EBC2ASC'
3. '10.1.4.201'
4. 入力パラメータ（EBCDIC コード）…… 文字型
5. 出力パラメータ（シフト JIS コード）…… 文字型
6. 出力パラメータサイズ ……数値型

オブジェクトリストの取得
DSPOBJ プロシージャは、IBM i のオブジェクトリストを取得して、指定されたファイルに格納します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.DSPOBJ

42

Magic xpa for IBM i 開発ガイド

IBM i 固有の UDF/ ユーザ PRC インタフェース

パラメータ
1. IBM i システム名
2. オブジェクト名 ［固有のオブジェクト、*ALL］
3. オブジェクトのライブラリ ［固有のライブラリ名 ,*LIBL, *CURLIBL, *ALLUSER, *ALL］
4. オブジェクトのタイプ ［*CMD, *FILE, *PGM, *ALL］
5. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
6. 取得したオブジェクトリストの格納する一時ファイル。デフォルトは MGOBJLIST。
7. 結果の戻り値 ［0: 成功 -1: 失敗］

システム値リストの取得
DSPSYSVAL プロシージャは、IBM i のシステム値のリストを取得して、指定されたファイルに格納します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.DSPSYSVAL

パラメータ
1. IBM i システム名
2. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
3. 取得したシステム値のリストの格納する一時ファイル。デフォルトは MGSYSVAL。
4. 結果の戻り値 ［0: 成功 -1: 失敗］

システム値データの取得
RTRVSYSVAL プロシージャは、IBM i の各システム値に設定されたデータを取得します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.RTRVSYSVAL

パラメータ
1. IBM i システム名
2. システム値の名前（QCCSID, QCENTURY など）
3. 設定されたデータ
4. 設定されたデータのサイズ

スプールファイルリストの取得
DSPSPLF プロシージャは、スプールファイルのリストを取得して、指定されたファイルに格納します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.DSPSPLF
Magic xpa for IBM i 開発ガイド43

第 4 章 - プログラミング

パラメータ
1. IBM i システム名
2. ユーザ名。デフォルトはカレントユーザ。
3. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
4. スプールファイルのエントリを格納する一時ファイル名。デフォルトは MGSPLLST。
5. 結果の戻り値 ［0: 成功 -1: 失敗］

スプールファイルデータの取得
DSPSPLFE プロシージャは、任意のスプールファイルのデータを取得して、指定されたファイルに格納します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.DSPSPLFE

パラメータ
1. IBM i システム名
2. スプールファイルエントリの名前。デフォルト値は QPRINT。
3. スプールファイルエントリの番号（文字型）
4. ジョブ名
5. ジョブ番号（文字型）
6. ユーザ名。デフォルトはカレントユーザ。
7. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
8. スプールファイルのエントリを格納する一時ファイル名。デフォルトは MGF255。
9. 結果の戻り値 ［0: 成功 -1: 失敗］

印刷制御文字付スプールファイルデータの取得
DSPSPLFEWP プロシージャは、印刷制御文字付で任意のスプールファイルのデータを取得して、指定されたファイルに格納します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.DSPSPLFEWP

パラメータ
1. IBM i システム名
2. スプールファイルエントリの名前。デフォルト値は QPRINT。
3. スプールファイルエントリの番号（文字型）
4. ジョブ名
5. ジョブ番号（文字型）
6. ユーザ名。デフォルトはカレントユーザ。
7. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
8. スプールファイルのエントリを格納する一時ファイル名。デフォルトは MGF255。

44

Magic xpa for IBM i 開発ガイド

IBM i 固有の UDF/ ユーザ PRC インタフェース
9. スプール・ファイルの内部印刷制御文字を置き換える印刷制御文字（存在する場合）を指定［*NONE,*FCFC,*PRTCTL］
10. 結果の戻り値 ［0: 成功 -1: 失敗］

スプールファイルの処理
WRKSPLFE プロシージャは、指定したスプールファイルに対して、次の処理を行います。
•

コピー枚数の変更•

スプールファイルの保留、解放、削除

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.WRKSPLFE

パラメータ
1. IBM i システム名
2. スプールファイルエントリの名前。デフォルト値は QPRINT。
3. スプールファイルエントリの番号（文字型）
4. ジョブ名
5. ジョブ番号（文字型）
6. ユーザ名。デフォルトはカレントユーザ。
7. スプールファイルに対する処理オプション［C: コピー , H: 保留 , R: 解放 , D: 削除］
8. コピー枚数
9. 結果の戻り値 ［0: 成功 -1: 失敗］

IFS ディレクトリの取得
DSPIFSDIR プロシージャは、IFS ディレクトリにあるオブジェクトリストを取得して、指定されたファイルに格納します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.DSPIFSDIR

パラメータ
1. IBM i システム名
2. ディレクトリ名
3. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
4. IFS ディレクトリのリストを格納する一時ファイル名。デフォルトは MGDIRLST。
5. 結果の戻り値 ［0: 成功 -1: 失敗］

IFS ストリームファイルの取得
RTVSTMF プロシージャは、IFS ディレクトリにあるストリームファイルのテキストデータを取得して、指定されたファイルに格納します。
Magic xpa for IBM i 開発ガイド45

第 4 章 - プログラミング

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.RTVSTMF

パラメータ1. IBM i システム名
2. ディレクトリを含むストリームファイル名
3. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
4. ストリームファイルのテキストを格納する一時ファイル名。
5. 結果の戻り値 ［0: 成功 -1: 失敗］

IFS ストリームファイルの更新
PUTSTMF プロシージャは、IFS ディレクトリにあるストリームファイルのテキストデータを更新します。

構文［コール PRC］処理コマンドで実行します。
定義式：MGEAC32.PUTSTMF

パラメータ1. IBM i システム名
2. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
3. 更新データのある一時ファイル名
4. ディレクトリを含むストリームファイル名
5. ストリームファイルの CCSID。デフォルトはストリームファイルの CCSID。
6. 結果の戻り値 ［0: 成功 -1: 失敗］

46

Magic xpa for IBM i 開発ガイド

プログラムに関する考慮事項

プログラムに関する考慮事項•

Magic xpa の本体の機能は、データをすべてシフト JIS コード体系で処理します。従って、次のパラメータ欄では、特にシフト JIS コードとして処理されることを考慮した上で、プログラムの開発を行う必要があります。
• ［モデル］リポジトリの［範囲］特性• ［データ］リポジトリ /［カラム特性］の［範囲］特性• ［範囲位置付］ダイアログ / 範囲式、位置付式• ［ソート］テーブル － ソート項目
３番目に関連して、この欄に文字型項目のコードを大小比較する条件式を定義すると、場合によってはデータが正しく抽出されないことがあります。その場合は、「Magic xpa for IBM i 固有の UDF/UDP インタフェース」に記述された、EBCDIC コードによる文字型コードの比較を行う UDF 関数を使用してください。
［データビュー］エディタの［項目特性］での範囲 / 位置付の指定については、Magic xpa IBM i Gateway によって変換されたパラメータを渡して、IBM i 上で処理するため、EBCDIC コードで処理されます。
４番目に関連して、ISAM ゲートウェイでは［データベース特性］の［サーバソート］特性をチェックすること
で、EBCDIC コード順にソートされます。

•

ISAM ゲートウェイによるソートで、サーバソートが無効の場合、ソート処理のために QTEMP に一時的なソー
トキーを作成して処理するため、通常のインデックスに比べてパフォーマンスが低下することがあります。

•

挿入や更新の処理コマンドが多数ある場合、ISAM ゲートウェイのほうが SQL ゲートウェイよりも相対的に高速に処理されます。

•

Magic xpa IBM i Gateway では、次に挙げる入出力関数はクライアント PC のディスク上にあるファイルを対象にしていますので、IBM i のファイルに対する処理は無効です。
FileCopy、FileDelete、FileExist、FileRename、FileSize

Unicode に関する考慮事項•

Unicode 型項目は GRAPHIC 型 (CCSID:13488) の項目で処理されるため、OpenQuery が実行できません。従って、［データベース特性］のサーバソート、*RNGSVR パラメータ、［範囲 / 位置付］ダイアログの［OpenQuery］ダ
イアログに、Unicode 型項目は使用できません。

•

SQL ゲートウェイによる［範囲位置付ダイアログ /SQL WHERE］の［MAGIC SQL］パラメータ、および［DBSQL］パラメータ には、Unicode 型項目による条件式は指定できません。

•

SQL ゲートウェイによる埋込 SQL では、入力パラメータにシフト JIS にない Unicode のデータをセットした場
合、正しく処理できません。

•

IBM i 固有の UDF ／ユーザ PRC インタフェースのパラメータには対応していません。

Magic xpa for IBM i 開発ガイド47

第 4 章 - プログラミング［このページは意図的に空白にしています。］

48

Magic xpa for IBM i 開発ガイド

ファイルタイプ

IBM i の操作

5

この章では、Magic xpa for IBM i のデータベースを操作するために、IBM i でサポートされている基本的な機能とMagic xpa for IBM i の動作を解析するためのログファイルについて説明します。

IBM i プラットフォームまたは Magic プラットフォームのどちらかにより精通しているかに関わらず、それぞれ他方のプラットフォームの機能についても理解できるように、先に Magic xpa for IBM i が 2 つのプラットフォームに対してどのように接続するかを説明します。

ファイルタイプ
Magic xpa で定義されたすべてのファイルは、データを含んだ物理ファイルを作成します。物理ファイルのデータはサブセットという形式になっている場合もあります。各サブセットはそれ自身のメンバ名を持っています。少なくとも 1 つのメンバ名がファイル内に存在しなければなりません。
インデックスは、物理ファイルと論理ファイルの両方で指定することができます。各ファイルに対するファイルレ
コード構造は、レコードフォーマットとして知られていて、それに割り当てられたレコードフォーマット名を持たなければなりません。
Magic xpa の［データ］リポジトリで定義された実キーは、IBM i 上では、ビュー (ISAM ゲートウェイの場合 )、またはインデックス (SQL ゲートウェイの場合 ) である論理ファイルになります。
物理ファイルは実際のファイルデータを含んでいます。
物理ファイル内のレコードフォーマットは、以下を含めた各レコードのフィールド順を表しています。
•

長さ

•

Packed decimal または Character のようなデータタイプ•

バリディティチェック

•

テキスト

論理ファイルは、以下のように分類できます。

注意：•

物理ファイルにアクセスする際に使用されるインデックスとして定義された論理ファイル•

特定のフィールドを物理ファイルのレコードフォーマットから取り出すことができる無条件のビュー。これはレコード内のフィールの位置を変更したり、オリジナルの構造の中にはない追加フィールドを定義することができます。

•

選択、省略、および比較のような物理ファイルから条件付きでデータを選択する指示が含まれた条件付きのビュー•

最高 32 までの物理レコードフォーマットを 1 つの論理レコードビュー定義に統合されたビュー
この章では、キーとインデックスという用語と同じように、ファイルとテーブルも区別なく使用されています

Magic xpa for IBM i 開発ガイド49

第 5 章 - IBM i の操作

IBM i のデータベースファイルを直接定義する方法
IBM i では、データベースファイルを定義する２つの主要な方法があります。
•

リレーショナルなファイルシステム用のデータ記述仕様（DDS）•

テーブルシステム用の DB2 for IBM i SQL

DDS を使用してデータベースファイルを定義する
DDS を使用して、IBM i でデータベースファイルを定義するには：
1. IBM i データベースである OS/400 ライブラリで、CRTLIB MYDATABASE コマンドを使用します。
2. CRTSRCPF MYDATABASE/QDDSSRC コマンドを使用して、物理ソースファイルを作成します。
3. データベースファイルを定義するために、STRPDM コマンドを使用し、「オプション 3、メンバーの処理」を選択します。
4. DDS ソースファイル名とライブラリを指定し、［Enter］を押下します。新しい物理ファイルを指定し、［F6］を押下し、メンバー名と Type = PF を指定します。以下に示すように、DDS ソースを入力し、「オプション 14」を使用してコンパイルします。

図 5-1DDS ソースの入力

DDS と SQL の用語
DDS と SQL に関する用語を以下でまとめました。
DDS

SQL

ライブラリ … ライブラリは、他のオブジェクトに対しディレクトリとして機能す コレクション /るシステムオブジェクトです。ライブラリは関連するオブジェクトをグループ化し スキーマ
ます。オブジェクトのためのシステムで認められている識別子は *Lib です。デー
タベースファイルを作成する前に、それを格納するライブラリを作成しなければなりません。
物理ファイル … 物理ファイルは、データの表示方法やプログラムからの受け取り テーブル
方法、データが実際にデータベースに格納する方法に関する記述が含まれる、アプ
リケーションデータを格納するデータベースファイルです。物理ファイルは、可変長フィールドを持つことができる固定長レコードから構成されます。物理ファイル
は少なくとも 1 つのメンバが含まれています。
レコード … レコードはファイル内に関連するデータのグループです。

行

フィールド

カラム

ビュー /
論理ファイル … 論理的に、1 つ以上の物理ファイルを表していて、データの表示方法やプログラムからの受け取り方法に関する記述が含まれているデータベース
インデックスファイル。このタイプのデータベースファイルにはデータが含まれていませんが、定義は 1 つ以上の物理ファイルのレコードフォーマットになります。論理ファイル
は、データを順番にアクセスして表示する物理ファイルとは異なります。

50

Magic xpa for IBM i 開発ガイドド

IBM i データベースファイルへのアクセス
ユーザプロファイル … ユーザプロファイル名は、サーバにユーザを識別させます。このユーザプロフィール名は、ユーザ ID しても知られています。これは、サインオンのユーザプロンプトに入力する名前になります。

認証名 /
認証 ID

SQL を使用してデータベースファイルを定義する
SQL インターフェースを使用して、IBM i でデータベースファイルを記述するにはSQL コマンドの実行
SQL コマンドを実行するために、オペレーションナビゲータから「SQL スクリプトの実行」を実行するか、5250 エ
ミュレーターから STRSQL コマンドを実行します。( これはライセンスプログラムを必要とします：5722SS1 - DBL
Query and SQL Dev Kit)

スキーマ（コレクション）の作成
SQL のスキーマ（コレクション）は、SQL オブジェクトの論理的なグループを提供します。スキーマは IBM i のラ
イブラリ、ジャーナル、ジャーナルレシーバー、カタログ、およびオプションであるデータディクショナリから構成されます。デフォルトでは、SQL コレクションの配下で作成されたすべてのテーブルがジャーナルの対象となります。
例えば SAMPLECOLL という SQL のスキーマ ( コレクション ) を作成するには、STRSQL のプロンプト、またはオ
ペレーションナビゲータから、CREATE SCHEMA SAMPLECOLL を実行します。

ファイルの定義
ファイルを定義するには、CREATE TABLE 文を実行します。
例えば、SAMPLECOLL というスキーマに CUSTFILE を作成するには、
CREATE TABLE SAMPLECOLL/CUSTFILE (CUSTID NUMERIC(5,0),CUSTNAM CHARACTER(20), CUSTADR(CHARCTER(25))
を実行します。

IBM i データベースファイルへのアクセス
DDS（ISAM）ファイルは、Magic の ISAM ゲートウェイで、SQL テーブルは SQL ゲートウェイを使用してアクセスすることができます。
IBM i データベースファイルまたはテーブルにアクセスするために、Magic xpa for IBM i 以外に次の IBM 製品を使用することができます。
•

オペレーションナビゲータ …… IBM i システムとそのデータベースオブジェクトを使用して動作する GUI ツー
ル•

ネイティブ SQL インタフェース STRSQL …… 5250 のエミュレーターインタフェースを使用する STRSQL コマ
ンド•

ネイティブ IBM i コマンド …… 5250 のエミュレーターインタフェースを使用する UPDDTA コマンド

DDS でオペレーションナビゲータを使用する
DDS とオペレーションナビゲータを使用して、IBM i ファイルにアクセスするには：
1. オペレーションナビゲータウィンドウ内で、データベース / スキーマを選択し、コンテキストメニュー（右クリック）から「表示するスキーマの選択」を選択します。
2. 図 5-2 のように、ライブラリの内容を表示させるためライブラリの 1 つを選択します

Magic xpa for IBM i 開発ガイド51

第 5 章 - IBM i の操作

図 5-2 オペレーションナビゲータ

SQL でオペレーションナビゲータを使用する
SQL でオペレーションナビゲータを使用して、IBM i ファイルにアクセスするには：
1. オペレーションナビゲータウィンドウ内で、データベースを選択し、右クリックを行います。
2. 図 5-3 に表示されるように、「SQL スクリプトの実行」を選択し、「SQL スクリプトの実行」を開きます。

図 5-3 ネイティブ SQL で SQL セッションを開始する

52

Magic xpa for IBM i 開発ガイドド

IBM i データベースファイルへのアクセス

ネイティブ SQL を使用する
ネイティブ SQL インタフェースを使用して、IBM i ファイルにアクセスするには：
1. IBM i 5250 エミュレーターから、図 5-3 に表示されているように、STRSQL コマンドを実行してインタラクティ
ブな SQL セッションを開始します。
2. ［F4］を押下して、選択可能な SQL 関数のリストを参照することができます。

図 5-4DDS を使用して作成された物理ファイル

DDS を使用した IBM i ファイルの作成例
DDS と ISAM ゲートウェイを使用して作成された IBM i 物理ファイルの例を以下に示します。

図 5-5DDS を使用して作成された物理ファイル

DDS と ISAM ゲートウェイを使用して作成された IBM i 論理ファイルの例を以下に示します。

Magic xpa for IBM i 開発ガイド53

第 5 章 - IBM i の操作
図 5-6DDS を使用して作成された論理ファイル

Magic ゲートウェイのクライアントログ
Magic xpa のクライアントゲートウェイを使用して実行する場合、処理プロセスは、IBM i 上の MAGIC サブシステ
ム配下で開始されます。Magic クライアントの各インスタンスは、MGCLIENT と名付けられた個別のジョブを持っています。Magic xpa のジョブは、WRKACTJOB スクリーン内の Status で識別できます。Status は、また MGCLIENT
ジョブの TIMW（Time Wait）期間も表示します。

IBM i アプリケーションが応答しない場合や、エラーメッセージを受け取った場合：
1. IBM i のコンソール画面を開き、現在の MGCLIENT ジョブに関する Magic ログファイルを確認します。
2. 図 5-7 で表示されているように、WRKACTJOB コマンドを入力し、IBM i 上のすべての既存のジョブ表示します。WRKACTJOB SBS(MAGIC) を入力することで、MAGIC サブシステムのジョブのみを表示することもできます。

図 5-7 Active Jobs 画面

3. 図 5-8 に表示されているように「オプション 2, 変更コマンド」を入力することでジョブの詳細を参照することができます。すべての要求されたジョブに対する「オプション 2」を指定し、値ログ (4 0 *SECLVL) を入力し、［Enter］を押下することで複数のジョブを変更することもできます。

図 5-8Change Job 画面

4. Change Job コマンドを使用して、現在のジョブのログレベルを変更することができます。IBM i のデフォルト値
は「None」です。

54

Magic xpa for IBM i 開発ガイドド

Magic ゲートウェイのクライアントログ
5. 以下の図に示すように、［F10］を押下してジョブレベルを変更し、［PageUp］を押下して Change Job スクリーンを表示します。
ユーザの JOBD を (4 0 *MSG) または (4 0 *SECLVL) に変更することで、このジョブ記述で始まるジョブのすべてに対してデフォルトのロギングレベルが変更されます。

注意：

6. ジョブを変更した後は、ジョブログを参照して更新されたログの値を確認する必要があります。

図 5-9Change Job 編集画面

IBM i 上でクライアントのすべてのジョブを参照する
選択した MGCLIENT ジョブに対するログレベルを設定した場合、WRKACTJOB コマンドを使用して選択されたクライアントに対する IBM i 上のすべての現在ジョブを参照することができます。
［Work with Active Jobs］スクリーン上で、「オプション 5, 処理」と入力すると以下のようなログの表示オプションが表示されます。
•

ジョブ状況属性の表示•

ジョブ定義属性表示•

ジョブ実行属性の表示（活動状態の場合）•

スプール・ファイルの処理•

ジョブ・ログの表示（活動状態またはジョブ待ち行列上の場合）•

呼び出しスタックの表示（活動状態の場合）•

ロックの処理（活動状態の場合）•

ライブラリー・リストの表示（活動状態の場合）•

オープンされたファイルの表示（活動状態の場合）•

ファイル一時変更の表示（活動状態の場合）•

コミットメント制御状況の表示（活動状態の場合）

Magic xpa for IBM i 開発ガイド55

第 5 章 - IBM i の操作

すべてのメッセージの表示システム : IS400
ジョブ : MGCLIENT

ユーザ : MAGIC10

番号 . . . : 359774>> CALL PGM(MAGIC400/MAGIC400) PARM('LµŒðU5&' 'MAGIC400/MAGIC400')
ライブラリー MAGIC494I がライブラリー・リストに追加された。
ライブラリー MAGIC494I はすでにライブラリー・リストに存在している。
ライブラリー QTEMP にファイル CMDSRC が作成された。
メンバー CMD1 が QTEMP のファイル CMDSRC に追加された。
ジョブ 359774/MAGIC10/MGCLIENT が MAGIC10 によって変更された。
終り続行するためには，実行キーを押してください。

F3= 終了 F5= 最新表示 F12= 取消し F17= 最上部 F18= 最下部
図 5-10Change Job 編集画面

56

Magic xpa for IBM i 開発ガイドド

実行時の初期設定機能

実行時の初期設定機能
ここで説明する初期設定機能は、実行中でのみ有効です。

QSYSOPR メッセージ
ゲートウェイを初期化したり終了したりする QSYSOPR メッセージのキューに発行されたメッセージは、メッセー
ジファイルに配置されます。これにより、ユーザによって重要度をコントロールすることができます。メッセージ
キューファイル MAGICMSGQ は、ホストライブラリに存在します。このファイルの配信オプションは、*DFT に設定されます。これは、応答を必要とするメッセージがそれらのデフォルト応答に対応し、メッセージキューに何のメッセージも追加されないことを意味します。
*HOLD 、*BREAK 、または、*NOTIFY を含む他のオプションは、以下のように Magic xpa for IBM i のクライアント
メッセージをメッセージキューに送ります。
•

Client job started in MAGIC400/MAGIC …… Magic xpa for IBM i ジョブが開始されたとき•Client job Completed in MAGIC400/MAGIC …… Magic xpa for IBM i ジョブが終了されたときゲートウェイとホストのバージョン同期化
ホストライブラリは、レベルに対応した ID を持っています。ネイティブな IBM i のコマンドで MGHSTVER を使用することで、バージョンが表示されます。バージョン表示は、ゲートウェイが必要とするホストライブラリの最低バージョンを指定する値を含んでいます。
初期化処理時ゲートウェイは、ホストバージョンと必要な最低バージョンを比較します。ホストバージョンが、期限切れか古すぎる場合、警告メッセージを表示します。
［DBMS 特性］で 「HOSTSYNC=N」というキーワードを指定することで、この警告を無視させることができます。

MGCLIENT ジョブ記述オプション
MGCLIENT ジョブは、HOST DBA ライブラリの MGCLIENT ジョブ記述を利用しますが、次のコマンドを実行して、TCP_INI データ領域 (*DTAARA) の 80 カラム目に *USRPRF の指示を挿入すると、ユーザプロファイルのジョブ記
述を利用するようになります。
CHGDTAARA DTAARA(TCP_INI (80 10)) VALUE('*USRPRF'))IBM i クライアントの Magic ゲートウェイのログレベルを設定する
ここでは、ゲートウェイログのレベルを設定する方法について説明します。
オプション (O) ／設定 (S) ／ロギング (O) のダイアログにおいて以下の設定ができます。
•

設定タブ／外部ログファイル名 ( クライアントのフォルダ、およびファイル名 )•DBMS タブ／ IBM i のログレベル
ログレベル

説明

N= なし

ログは出力されません

C= ユーザ用

基本動作

S= サポート用

拡張機能の動作

D= 開発者用

GW 内部の動作

Magic クライアントが終了すると、作成されたログファイルにアクセスすることができます。
以下に示すように、DB2 for IBM i と DB2 for IBM i(SQL) のゲートウェイログ情報は、［オプション / 設定 / ロギング］
で指定することができます。

Magic xpa for IBM i 開発ガイド57

第 5 章 - IBM i の操作

図 5-11 ロギングの設定

IBM i のミドルウェアコンポーネント用のログ情報
IBM i ミドルウェアコンポーネントのログ情報のために、Magic.ini ファイル内の IBM i DBMS パラメータに対し、
EASYCOM ログ (EAC_LOG) キーワードを定義することができます。以下に示すように、この設定によって IBM i 上のログトレースファイルが作成されます。
EAC_LOG = [Library/File:Detail] (Detail: 0=No log, 1-4 = increasing log level)
例：EAC_LOG=QGPL/MGLOG:4
このファイルは、ログ処理における問題を検索するために開発者によって使用されます。
ログファイルは、［データ］リポジトリで定義取得によって取り込んでから . 参照することが可能です。
注意：58

EAC_LOG キーワードは、ゲートウェイのパフォーマンスを低下させます。

Magic xpa for IBM i 開発ガイドド

DBCS の種類

6

DBCS

Magic クライアントはシフト JIS コード、IBM i は EBCIDIC コードにて処理しています。Magic xpa for IBM i では、クライアント PC と IBM i の間でデータのやりとりを行う際に、自動的にシフト JIS と EBCIDIC のコード変換を行います。
EBCIDIC コードにおいて、DBCS と SBCS の区別はシフトコードの追加により表現されています。
この章は ISAM ゲートウェイの処理を前提として説明しています。

注意：

DBCS の種類
DBCS は２種類の形式が提供されています。シフト文字付き DBCS データと図形（シフト文字なし）DBCS データです。シフト文字付き DBCS データは、DBCS シフトアウト文字と DBCS シフトイン文字により DBCS を表現します。
DBCS データタイプ（DDS コーディング形式）は、次の４種類が提供されています。
DDS 記入項目記号 および名称

説

J:DBCS 専用フィールド

漢字専用シフト付き 2 バイトデータのみが含まれる文字列。

O:DBCS 混用フィールド

漢字混用 SBCS 及びシフト文字付き DBCS データを含めることができる文字列。

E:DBCS 択一フィールド

漢字択一 すべて SBCS か、すべてシフト文字付き DBCS データかの文字列。

G:DBCS 図形フィールド

DBCS 図形シフト文字なし 2 バイトデータのみが含まれる文字列。

明

＜例＞
•

DBCS 専用フィールド、または DBCS 択一フィールドに”漢字”を登録した場合※ SO（0Eh）シフトアウト文字 SI（0Fh）シフトイン文字•

DBCS 混用フィールドに ”ABC 漢字 DEF” を登録した場合•

DBCS 図形フィールドに”漢字”を登録した場合

Magic xpa for IBM i 開発ガイド59

第 6 章 - DBCS
すなわち、DBCS 図形フィールド以外に２バイト文字を登録したフィールドには、シフトコードが付加されるため、実際に入力／表示される文字データよりも格納されるフィールド長が大きくなります。Magic xpa for IBM i では、シ
フト JIS → EBCIDIC のコード変換に於いて変換データがデータ格納エリアよりも大きくなった場合は、オーバーした分をカットします。アプリケーションはこのことを考慮して設計する必要があります。

文字型書式の「位置指示記号」の追加機能
DBCS 対応のために、DDS のデータフィールドに対応して Magic に機能追加しています。次の表の Magic 位置指示
記号を［データ］リポジトリの各項目の書式に定義します。例えば、10 桁の DBCS 専用フィールドを定義する場合には、J10 あるいは JJJJJJJJJJ と記述します。位置指示記号の指定がない場合、DBCS 混用フィールド（X）になります。

注意：

60

DDS フィールド

Magic
位置指示記号

制限事項

DBCS 専用フィールド（J）

Ｊ

全角のみ入力可DBCS 混用フィールド（O）

Ｘ

全角、半角の混在入力可

DBCS 択一フィールド（E）

Ｔ

全て全角か、全て半角で入力可

DBCS 図形フィールド（G）

Ｇ

全角のみ入力可。シフトコード無し

SBCS（A）

Ｓ

半角のみ入力可•Magic 位置指示記号の（J, T, G）は、必ず２文字単位で記述します。

•

追加された位置指示記号と、Magic 位置指示記号文字（J, X, T, G, S）は混在して記述することができません。例．JJJJXXXX など•追加された位置指示記号（J, T, G, S）は、U, L, # を使用できません。

•

SQL ゲートウェイの場合、位置指示記号の J、T は混用フィールド（O）として格納されます。また、図形フィールド（G）はサポートしていません。

Magic xpa for IBM i 開発ガイド

データ記憶型式と IBM i データタイプ

補足－ A

データ記憶型式と IBM i データタイプ
ISAM ゲートウェイ
文字型

数値型

論理型
日付型 *3時間型 *4

Unicode 型

Magic 記憶型式

IBM i でのデータ型

IBM i でのデータ可視 *1

String ［default］

文字 (*2)可能

Lstring文字

不可Zstrig文字

不可String Memo文字（可変長）可能

Magic Memo文字

不可

Signed Integer

2 進数

可能

Unsigned Integer

2 進数

可能

Float

浮動小数点数可能

Float MS-Basic

文字

不可

Float Decimal

文字

不可Packed Decimal ［default］ パック 10 進数

可能

Numeric

ゾーン 10 進数

可能

Character Number

文字

不可String Number

文字

不可Magic Number

文字

不可C-ISAM Decimal

文字

不可Extended Float

文字

不可

Integer Logical

2 進数

不可

String Logical ［default］

文字

可能 *3

Integer Date

2 進数

不可

Integer Date -1901

2 進数

不可

String Date ［default］

文字可能

YYMD Date

2 進数

不可

Magic Date

文字

不可

Magic Date -1901

文字不可Integer Time

2 進数

不可

String Time［default］

文字可能

HMSH Time

2 進数

不可

Magic Time文字

不可

Unicode［default］

文字 ( 図形 *5)

可能

ZUnicode

文字 ( 図形 *5)

可能*1：RUNQRY でデータを出力した結果です。
*2：書式の位置指示記号により DDS フィールドのタイプが変わります。詳しくは DBCS の章を参照して下さい。
Magic xpa for IBM i 開発ガイド

61

第 章 - 補足－ A*3：ASCII コードの「T」または「F」が格納されます。EBCDIC コードで格納するときは、第 3 章「［データソース
特性］で有効なキーワード」（ページ 19）の「STORAGE=DB2」を参照してください。
*4：IBM i の日付または時刻のデータタイプを格納するときは、第 3 章「［データソース特性］で有効なキーワード」（ページ 19）の「STORAGE=DB2」を参照してください。
*5：カラムの CCSID が 13488 として定義されます。

制限事項•

BLOB 型は、使用できません。

SQL ゲートウェイ
文字型

数値型

論理型
日付型

時間型

Unicode型
BLOB 型

Magic 記憶型式

IBM i でのデータ型

IBM i でのデータ可視

String ［default］

CHARCTER

可能

Lstring

不可

不可

ZstrigCHARCTER

可能

String Memo

VARCHAR可能

Magic Memo

VARCHAR可能

Signed Integer

SMALLINT可能

Unsigned Integer

DECIMAL

可能

Float

FLOAT

可能

Float MS-Basic

不可

不可

Float Decimal

不可

不可Packed Decimal ［default］ DECIMAL

可能

Numeric

NUMERIC可能

Character Number

不可不可String Number

NUMERIC不可

Magic Number

不可不可C-ISAM Decimal

不可

不可Extended Float

不可

不可

Integer Logical

SMALLINT

不可String Logical ［default］

CHARCTER

可能 *4

Integer Date

INTEGER不可

Integer Date -1901

不可不可String Date ［default］

DATE

可能

YYMD Date

不可

不可Magic Date

不可

不可Magic Date -1901

不可

不可Integer TimeINTEGER

不可

String Time ［default］

TIME*5可能

HMSH Time不可不可

Magic Time

不可

不可

Unicode［default］

文字 ( 図形 *5)

可能

ZUnicode

文字 ( 図形 *5)

可能－

BLOB*6

不可*4: EBCDIC コードの「T」または「F」が格納されます。

62

Magic xpa for IBM i 開発ガイド

データ記憶型式と IBM i データタイプ*5: TIME 型に格納できる値の最大は 23:59:59 ですので、それを越える値を格納するには、別の型に変更する必要があります。INTEGER にする場合は、記憶型式を IntegerTime に変更し、CHARCTER にする場合は、タイプに CHAR
（6）を記述します。
*6: BLOB 型のカラムは IBM i の BLOB 型に対応しますが、デフォルトの最大サイズは 1MB です。それを越えるデー
タを格納する場合、カラム特性／タイプに BLOB（n）（n: サイズ）を記述してテーブルを作成する必要があります。

文字型記憶型式の説明
文字型記憶型式は、英数字およびカナ、漢字の文字列を表わします。
［ ］内は IBM i でのデータタイプを表わします。

String［ 文字 ］
サイズ 1 バイトから 32000 バイトまで•

Magic xpa は、左から右に並べられた文字の連なりを記憶します。半角文字は 1 文字 1 バイトで、全角文字は 1
文字 2 バイトとなります。

LString（長さ + 文字列）
［ 文字 ］
サイズ 1 バイトから 255 バイト• 「LString」は、Pascal 言語の文字列定義に対応しており、最初の 1 バイトに文字列の長さがバイト単位で含まれています。
• ［記憶型式］を「String」から「LString」に変更すると、長さを格納する 1 バイトを確保するため、Magic xpa は
元のサイズに 1 を加えます（逆に、［記憶型式］を「LString」から「String」に変更すると、Magic xpa はサイズの値から 1 を減らします）。

ZString（ゼロバイト終了文字列）［ 文字 ］
サイズ 1 バイトから 32000 バイトまで• 「ZString」は、C 言語の文字列定義に対応しています。すなわち、最後のバイトには、文字列の終わりを示す 2進数のゼロ（ヌル文字）が含まれています。
• ［記憶型式］の値を「String」から「ZString」に変更すると、Magic xpa では、［サイズ］の値には 1 が加算されます。逆に、［記憶型式］を「ZString」から「String」に変更すると、Magic xpa では、［サイズ］の値から 1 が減算されます。

String Memo（文字列メモ）［ 文字 ］
「String Memo」は、2 バイトとそれに可変長の文字列が続く形で格納されます。

Magic Memo（ Magic メモ）［ 文字 ］
これは、dbMAGIC Ver.4 の「メモ型」記憶型式です。最初の 2 バイトには、メモ項目の実際のサイズが含まれます。
記憶されるとき１バイトコードのみ容量が最小となるように圧縮されます。

数値型記憶型式の説明
数値型記憶型式は、計算で通常使用される数値を表わします。この数値型データを利用する時には、次のことに注意してください。
•

Magic xpa がサポートする最大桁数は、18 桁です。

•

Magic xpa 以外のアプリケーションで作成されたファイルに、18 桁以上の数値型の項目がある場合、それ以下に切り捨てます。

•

デフォルト以外の数値型記憶型式は、ほかのシステムとの互換性をもたせるときだけ使用してください。

「Signed Integer」「Unsigned Integer」「Float」「Float MS-Basic」の数値型記憶型式では、上記で説明した桁数以上の数
字を受け付けることができますが、この場合でも、値が正しく記憶されないことがあります。

Magic xpa for IBM i 開発ガイド

63

第 章 - 補足－ A

Signed Integer（符号付き整数）［2 進数］
これは、9 桁までの符号（+ / -）付き整数に対して使用されます。
サイズそれぞれ 2、4 または 9 桁まで記憶するとき、1、2 または 4 バイト。
「Signed Integer」の実際のマシン表記は、ハードウェアに依存します。詳細については、そのコンピュータのマニュアルを参照してください。

Unsigned Integer（符号なし整数）［2 進数］
これは、9 桁までの正の整数のみを記憶するために使用されます。
サイズそれぞれ 2 、4 または 9 桁まで記憶するとき、1、2 または 4 バイト。
「Unsigned Integer」の実際のマシン表記は、ハードウェアに依存します。詳細については、そのコンピュータのマ
ニュアルを参照してください。

Float（浮動小数点）［浮動小数点］
これらは、16 桁までの整数部分と小数部分を記憶するために使用される IEEE 浮動小数点タイプです。
サイズそれぞれ 6 または 15 桁まで記憶するとき、4 または 8 バイト。
実際のマシン表記は、ハードウェアに依存します。詳細は、コンピュータのマニュアルを参照してください。

Float MS-Basic（浮動小数点 MS-Basic ）［文字］
サイズそれぞれ 6 または 16 桁まで記憶するとき、4 または 8 バイト。
これは、Microsoft Basic で使用されている単精度および倍精度の浮動小数点です。バイナリデータとして格納されます。

Float Decimal（浮動小数点 10 進数）［文字］
サイズそれぞれ 6 または 14 桁まで記憶するとき、4 または 8 バイト。
これは、MS-Pascal Decimal Float ライブラリ内の REAL4 および REAL8 のデータタイプと互換性のある単精度および倍精度の浮動小数点です。

Packed Decimal（パック 10 進数）［ パック 10 進数 ］
数値型を選んだ時には、デフォルトとして「Packed Decimal」が設定されます。
これは 10 進数表記で表わした数字を 1 バイトごとに 2 桁づつ格納し、一番右側のバイトの後半分には符号（正数の場合は 16 進数の F または C、負数の場合は D ）を格納したものです。
サイズ 1 から 10 バイト• 「Packed Decimal」は、ANSI-74 標準 COBOL の COMP-3 データタイプと互換性があります。
•

与えられたサイズが n の場合、「Packed Decimal」で記憶できる最大桁数は、2 * n - 1 です。したがって、サイズ
が 1 の「Packed Decimal」項目は、2 * 1 - 1 = 1 桁しか保持できません。サイズが 10 の場合 は、2 * 10 - 1 = 19 桁となりますが、Magic xpa の上限が 18 桁なので Magic xpa 内では 18 桁までしか扱えません。

Numeric（数値）［ ゾーン 10 進数 ］
１桁につき１バイトの EBCDIC コードの数字で格納されます。右端のバイト上位４ビットに符号（+ では F,- ではD）が入ります。
サイズ 1 から 18 バイト

Character Number（文字数字）［ 文字 ］
１桁につき１バイトの ASCII コードの数字が格納されます。右端のバイトに `+' または `-' の符号が ASCII コードで格納されます。

64

Magic xpa for IBM i 開発ガイド

データ記憶型式と IBM i データタイプ
サイズ 1 から 18 バイト•与えられたサイズが n の場合、記憶される最大桁数は n - 1 です。

String Number（文字列数字）［ 文字 ］
１桁につき１バイトの ASCII コードの数字が格納されます。数字に小数点が含まれる場合は、1 バイト追加されます。負数は、最初の桁の前に `-' を含みます。
サイズ 1 から 19 バイト

Magic Number（ Magic 数字）［ 文字 ］「Magic Number」は、Magic xpa によって使用される内部表記です。基数を 100 として、1 バイトに 2 桁ずつ記憶し、追加バイトを 1 バイト付加します。
サイズ 2 から 10 バイト• 「Magic Number」は、18 桁までの数値をサポートします。

C-ISAM Decimal（ C-ISAM 10 進数）［ 文字 ］C-ISAM Decimal」は、1 バイトに 2 桁ずつ記憶し、追加バイトを 1 バイト付加します。
サイズ 2 から 17 バイト•与えられたサイズが n の場合、
「C-ISAM Decimal」で記憶できる最大桁数は、2 * （n - 1）です。サイズが 2 の CISAM 項目 は、2 * （2 - 1）= 1 桁しか保持しません。サイズが 17 の場合は、2 * （17 - 1）= 32 桁となりますが、Magic xpa の上限が 18 なので Magic xpa 内では 18 桁までしか使えません。

Extended Float（拡張浮動小数点）［ 文字 ］
整数部と小数部で 14 桁まで記憶する時に使用される IEEE 浮動小数点です。
サイズ 8 バイト。
•

この型式は、DEC Rdb の GFLOAT 記憶型式に基づいています。

論理型記憶型式の説明
Integer Logical（整数論理）［ 文字 ］「Integer Logical」は、1 バイト（または 2 バイト）のヘキサコードで真の場合には 01（または 0001）、偽の場合には00（または 0000）を格納します。
サイズ 1 バイトまたは 2 バイト

String Logical（文字列論理）［ 文字 ］
論理型を選んだ時には、デフォルトとして「String Logical」が設定されます。
「String Logical」は、1 バイト文字列に、文字「T」（真）または「F」（偽）を ASCII コードで格納します。
サイズ 1 バイト
EBCDIC コードの文字 T、または F を格納するには、［テーブル / データソース特性 / データベース特性］に、
STORAGE=DB2 と記述します（詳細は第 3 章 「［データソース特性］で有効なキーワード」を参照）。

Magic xpa for IBM i 開発ガイド

65

第 章 - 補足－ A

日付型記憶型式の説明
Integer Date（整数日付）［2 進数 ］
基準日である西暦 1 年 1 月 1 日からの経過日数を表わします。データベースによって、符号付きまたは符号なしの整数として記憶されます。
サイズ 4 バイト

Integer Date - 1901（整数日付 - 1901 ）［2 進数 ］
基準日である 1901 年 1 月 1 日からの経過日数を表わします。符号なしの整数として記憶されます。
サイズ 4 バイト

String Date（文字列日付）［ 文字 ］
日付型を選んだ時には、デフォルトとして「String Date」が設定されます。
「String Date」は、'YYYYMMDD' のフォーマットの文字列で日付を表わします。
ここで、YYYY は年を 4 桁で表わします。MM は月を、DD は日を表わします。
サイズ 6 バイトまたは 8 バイト

YYMD Date（YYMD 日付）［2 進数 ］
YYMD 日付は、'YYMD' フォーマットの 2 進整数として日付を表わします。
最上位の 2 バイトは年、3 番目のバイトは月、最後のバイトは日を 2 進数表記で記憶します。これは、Btrieve デー
タ項目のフォーマットです。
サイズ 4 バイト

Magic Date（ Magic 日付）［ 文字 ］
Magic 日付は、基準日西暦 1 年 1 月 1 日からの経過日数を、「Magic Number」の型式で表現します。
サイズ 4 バイト

Magic Date - 1901（ Magic 日付 - 1901）［ 文字 ］
この記憶型式は、基準日 1901 年 1 月 1 日からの経過日数を、「Magic Number」の記憶型式の数値項目として表現します。
サイズ 4 バイト

時刻型記憶型式の説明
Integer Time（整数時間）［ 2 進数 ］
秒数は、データベースによって、符号付きまたは符号なしの倍長整数として記憶されます。
サイズ 4 バイト

String Time（文字列時間）［ 文字 ］
時刻型を選んだ時には、デフォルトとして「String Time」が設定されます。
「String Time」は、フォーマットが 'HHMMSS' の文字列で時間を表わします。ここで、最初の 2 文字は時間を、次の2 文字は分を、最後の 2 文字は秒を表わします。
サイズ 6 バイト

66

Magic xpa for IBM i 開発ガイド

データ記憶型式と IBM i データタイプ

HMSH Time（ HMSH 時間）［2 進数 ］
「HMSH Time」は、'HMSH' の形式の 2 進整数として時間を表わします。最上位バイトが時間を、2 番目が分を、3 番
目が秒を、最後のバイトが 100 分の 1 秒を、それぞれ 2 進数表記で表現します。これは、Btrieve の時間項目のフォー
マットです。
サイズ 4 バイト

Magic Time（ Magic 時間）［ 文字 ］
「Magic Time」では、秒数が「Magic Number」の記憶型式で表現されます。
サイズ 4 バイト

Magic xpa for IBM i 開発ガイド

67

第 章 - 補足－ A

定義取得
IBM i の各データタイプのフィールドを、Magic xpa の［データ］リポジトリに取り込んだときのそれぞれのデータ型、および記憶型式は次のようになります。

ISAM ゲートウェイ
IBM i のデータタイプ

Magic のデータ記憶形式
データ型

記憶型式

記憶サイズ

書式

文字［A］

文字型

StringnSn

DBCS 専用［J］

文字型

Stringn

Jn

DBCS 混用［O］

文字型

Stringn

Xn

DBCS 択一［E］

文字型

Stringn

Tn

DBCS 図形［G］
CCSID:300

文字型

Stringn

Gn

DBCS 図形［G］
CCSID:13488

Unicode 型

Unicoden

Xm

パック 10 進数［P］

数値型

Packed DecimalnNn

ゾーン 10 進数［S］

数値型

NumericnNn

2 進数［B］

数値型

Signed IntegernNn

浮動小数点［F］

数値型

Float

n

Nn

16 進数［H］

文字型

String

2

S2

日付［L］

日付型

String Date8####/##/##

時刻［T］

時刻型

String Time

6

HHMMSS

タイムスタンプ［Z］

文字型

String2626(m=n/2)

SQL ゲートウェイ
IBM i のデータタイプ

Magic のデータ記憶形式
データ型

記憶型式

記憶サイズ

書式

CHARACTER

文字型

Stringnn

VARCHAR

文字型

StringMemo

n+2n

GRAPHIC(CCSID:13488)

Unicode 型

Unicodenm(m=n/2)

INTEGER

数値型

Signed Integer

4

N9

SMALLINT

数値型

Signed Integer

2

N5

DECIMAL

数値型

Packed Decimaln

Nn

NUMERIC

数値型

Numeric

n

Nn

FLOAT

数値型

Float

n

n

DATE

日付型

String Date8

YYYY/MM/DD

TIME

時刻型

Signed Integer

6

HH:MM:SS

TIMESTAMP ※文字型

ZString

27

26

BLOB

BLOB 型

Blob

-

-

CLOB

BLOB 型

Blob--※ TIMESTAMP 型のカラムを定義取得する場合、デフォルトでは文字型 26 バイトで定義されますが、”DateTimeGetDefSupport=Y” パラメータを設定すると、日付型と時刻型の組み合わせで定義されます。

68

Magic xpa for IBM i 開発ガイド

各種限界値

各種限界値
項目

IBM i での制限

キーの最大数99

一つのキーあたりの最大セグメント数120

一つのキーの最大レコード長128

最大文字型長32K バイト最大レコード長

32K バイト最大メモ型長32K バイト

双方向キーのサポートあり

デフォルトサフィックス

なし

Magic xpa for IBM i 開発ガイド

69

第 章 - 補足－ A［このページは意図的に空白にしています。］

70

Magic xpa for IBM i 開発ガイド

IBM i プログラムコールウィザード

補足－ B
Magic xpa for IBM i に添付された Magic xpa のアドオンアプリケーションを説明します。

IBM i プログラムコールウィザード
このウィザードは、既存のネイティブの IBM i プログラムをコールする Magic プログラムを作成します。Magic xpa
Enterprise Studio の［ツール］メニューに表示される［IBM i プログラムコールウィザード］をクリックすると起動されます。
既存の Magic バージョンをアップグレードした場合は、Magic.ini ファイルの［TOOLS_MENU］セクションに以下のようなテキストを追加する必要があります。
IBM i Wizard = A,IBM i ﾌﾟﾛｸﾞﾗﾑｺｰﾙｳｨｻﾞｰﾄﾞ (&S),, %EngineDir%IBMi_Utili+
ties\Program_Call_Wizard\Program Call Wizard.ECF,,,%EngineDir%IBMi_U+
tilities\Program_Call_Wizard\Primport2.txt,
ウィザードは、入力された IBM i プログラムのパラメータに基づいてバッチプログラムを作成し、オープン中のア
プリケーションファイルにプログラムを追加します。プログラムの公開フラグを有効にすると、他のアプリケーションからこのプログラムを直接呼び出すことができます。
作成されるバッチプログラムには、プログラムのパラメータに加えて、以下のパラメータが追加されます。
•

IBM i の接続情報•

Host Name …… 必須•

User ID …… プログラムコールによって初めて IBM i の接続が行われる場合に指定します。

•

User Password …… プログラムコールによって初めて IBM i の接続が行われる場合に指定します。

•

IBM i のライブラリ名とプログラム名
Library name …… Magic プログラムで定義された IBM i プログラムライブラリを無効にしたい場合に指定す
るオプションパラメータ
Program name …… Magicプログラムに定義されたIBM iプログラムを無効にしたい場合に指定するオプショ
ンパラメータ

Magic xpa for IBM i 開発ガイド

71

第 章 - 補足－ B［このページは意図的に空白にしています。］

72

Magic xpa for IBM i 開発ガイド

Magic xpa for IBM i 開発ガイド

Copyright 2014 Magic Software Enterprises Ltd.and Magic Software Japan K.K.

第１版 2014 年 7 月 22 日
発行 〒 169-0074 東京都新宿区北新宿三丁目二十一番地一号
新宿フロントタワー 24 階All rights reserved.