Magic eDeveloper V10 for System 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 eDeveloper® と Magic Client® は、Magic Software Japan K.K. の登録商標です。
Magic Studio、Magic Enterprise Server および Magic RichClient 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 の商標です。
System iTM、DB2/400TM、および MQ/SeriesTM DB2 Universal DatabaseTM for iSeriesTM は IBM 社の登録商標です。
EASYCOMTM は AURA Equipments 社の登録商標です。
一般に、会社名、製品名は各社の商標または登録商標です。
MSE および MSJ は、本製品の使用またはその使用によってもたらされる結果に関する保証や告知は一切していません。この製品のもたらす結果およびパフォーマンスに関する危険性は、すべてユーザが責任を負うものとします。
この製品を使用した結果、または使用不可能な結果生じた間接的、偶発的、副次的な損害（営利損失、業務中断、業務情報の損失などの損害も含む）に関し、事前に損害の可能性が勧告されていた場合であっても、MSE および MSJ、その管理者、役員、従業員、代理人は、いかなる場合にも一切責任を負いません。

2008 年 7 月 18 日 Version 10.1J SP4b

第二版

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

All rights reserved.

目次
1 はじめにMagic eDeveloper V10 for System i とは？................................................................................................................... 1
Magic eDeveloper V10 for System i の種類と名称............................................................................................................... 1

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

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

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

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

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

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

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

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

System i 開発ガイド
Magic eDeveloper V10 for System iiSQL 用の System i ファイルを使用したトランザクション処理 ..................................................................................... 35
SQL のエラーメッセージを取得する ................................................................................................................................. 36

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

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

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

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

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

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

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

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

System i 開発ガイド
Magic eDeveloper V10 for System i補足－ A
データ記憶型式と System i データタイプ .................................................................................................................. 61
ISAM ゲートウェイ.............................................................................................................................................................. 61
SQL ゲートウェイ ................................................................................................................................................................. 63
文字型記憶型式の説明.......................................................................................................................................................... 63
数値型記憶型式の説明.......................................................................................................................................................... 64
論理型記憶型式の説明.......................................................................................................................................................... 66
日付型記憶型式の説明.......................................................................................................................................................... 66
時刻型記憶型式の説明.......................................................................................................................................................... 67

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

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

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

System i 開発ガイド
Magic eDeveloper V10 for System i

iii

iv

System i 開発ガイド
Magic eDeveloper V10 for System i

Magic eDeveloper V10 for System i とは？

1

はじめに

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

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

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

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

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

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

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

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

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

クライアント製品
Magic System i Gateway V10
データベースゲートウェイとサーバ通信のためのファイルの総称です。データベースゲートウェイは 2 種類あり、アクセス方法が異なります。
•

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

•

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

本書では、製品名を次のように省略する場合があります。

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i1

第 1 章 - はじめに
製品名

省略製品名

Magic eDeveloper V10 for System i

Magic for System i

Magic System i Gateway V10

Magic System i Client

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

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

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

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

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

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

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

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

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

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

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

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

•

新機能ガイド …… V10 の新機能についての概要が説明されています。

•

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

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

2

•

AS/400 実行管理の手引き……【SD88-5009-02/SC41-5306-02】•

DB2 AS/400 用データベース・プログラミング…… 【SD88-5035-02/SC41-5701-02】•

AS/400 TCP/IP 構成および解説書……【SD88-5013-02/SC41-5420-02】•

AS/400 TCP/IP セットアップ……【SD88-5016-00/SC41-5430-00】•

AS/400 CL プログラミング……【SD88-5038-01/SC41-5721-01】•

OS/400 機密保護解説書……【SD88-5027-02/SC41-5302-02】

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

概要

概要
第 2 章では、Magic for System i の全体の構成を説明します。
第 3 章では、Magic for System i Client の機能とデータベース、およびファイル定義の方法を説明します。
第 4 章では、Magic for System i の機能を利用したプログラムの設定、および各種関数を説明します。
第 5 章では、Magic for System i を利用するために必要な System i の基本的な操作を説明します。
第 6 章では、日本語環境の DBCS について説明します。
補足では、V10 で定義されたデータの型と System i のデータタイプの対応、添付されたコンポーネントプログラム等を説明します。

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i3

第 1 章 - はじめに

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

4

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iネイティブな System i アーキテクチャ

製品アーキテクチャ2

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

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

図 2-1 簡単な System i 環境

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

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i5

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

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

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

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

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

6

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iメッセージサーバの構成

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

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

コンポーネント

説明

1

Magic System i Gateway

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

2

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

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

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

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

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

3

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i7

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

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

Magic メッセージサーバ•

Magic Enterprise Server•

Magic Client および Magic RichClient Server、インターネットブラウザ、HLL の各クライアント

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

Magic Studio V10 / Magic Client V10/Magic RichClient Server V10•

Magic System i Gateway V10（開発／実行）

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

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

Magic Studio V10 / Magic Client V10/Magic RichClient Server V10•

Magic System i Gateway V10（開発／実行）•

Magic Enterprise Server V10（Windows）•

Microsoft Internet Information Server（IIS）•

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

MRB（Windows）

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

8

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

通信アーキテクチャ

3

データベースの設定

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

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

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

•

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

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

図 3-1 接続構成

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

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

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

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

•

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

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

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

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

•

ホストライブラリに、SQL ゲートウェイ用のパッチを適用すると、「ISAM ファイルへのダイレクト SQL
セレクト」の機能が利用できなくなります。ISAM ゲートウェイのみを利用するアプリケーションで、ダイレクト SQL セレクトの機能を利用しているアプリケーションの場合には、このパッチを適用しないようにしてください。

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

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

SQL ゲートウェイを利用する場合には、System i 上のホストライブラリに、インストール後パッチを適用する必要があります。インストールおよびパッチの適用に関しては、『Magic eDeveloper for System i インス
トールガイド』を参照してください。

•

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

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

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

•

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

•

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

•

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

•

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

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

10

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iインストレーション

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

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

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

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

図 3-2 DBMS テーブル

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i11

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

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

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

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

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

例：EAC_LOG=MAGIC400/EACLOG:1

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

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

NOCCSIDMSG
DBMS パラメータのコードページ（CCSID）とユーザプロファイルに設定された CCSID が異なる場合に表示されるメッセージダイアログ（図 3-3 ／ 14 ページを参照）を抑止します。

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

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

12

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

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

コードページタイプ

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 ) は V10 において使用可能です
が、将来サポートされない可能性があります。

•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i13

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

NEC 選定文字 CCSID1399 割当一覧

注意：

文字

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

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

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

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

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

14

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

ISAM ゲートウェイの設定

データベースの定義
1. Magic を起動します。
2. プルダウンメニューから［設定／データベース］を選択します。［データベース］テーブルが開きます。

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

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

［データベース特性］の設定［データベース特性］ダイアログでは、System i のホストの定義とデータアクセスに関するパラメータを追加することができます。方法は次の通りです。

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i15

第 3 章 - データベースの設定
1. 該当する System i のデータベースに位置付けて、プルダウンメニュー［編集 / 特性］を選択するか 、［Alt+Enter］を押下すると、［データベース特性］ダイアログの［ログイン］タブが表示されます。

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

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

ログオン (L) タブ•

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

•

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

オプション (O) タブ•

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

SQL(Q) タブ•2.

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

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

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

FLDNAMES
このキーワードを記述すると、定義取得時に［データ］リポジトリのカラム名に、System i ファイルの実際の項
目名を代入します。

16

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

ISAM ゲートウェイの設定
このキーワードの指定がない場合（デフォルト）では、DDS の機能ワードで定義された項目名（COLHDG）を代入します。

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

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

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

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

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

このキーワードは、［データベース特性］のほかに、［データソース特性］でも指定できます。

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

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

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

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

物理ファイル•

論理ファイル

物理ファイルには実際のデータが含まれており、論理ファイルには異なるデータビューの定義だけが含まれています。キーフィールド（インデックス）は、物理ファイル、論理ファイル 共に使用することができます。
System i ファイルのレコード構造は、ISAM ゲートウェイを使用する場合には DDS （Data Description Specification）
および IDDU （Interactive Data Definition Utility）を使用します。

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i17

第 3 章 - データベースの設定
Magic for System i がデータベースファイルを新規作成する時の DDS のソース・ファイルは MGDDSSRC というファイル名で、データベースファイルと同じライブラリに作成されます。

論理ファイルは、次のように分類することができます。
•

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

•

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

•

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

•

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

注意：

18

•

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

•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

ISAM ゲートウェイの設定

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i19

第 3 章 - データベースの設定
項目の［名前］にフィールド名を反映させるには、［設定 / データベース / データベース特性］の「データベース情報」パラメータに「FLDNAMES」のキーワードを記述してから定義取得を行います。詳細は「定義取得」を参照してください。
注意：•

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

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

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

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

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

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

20

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

ISAM ゲートウェイの設定

注意事項•

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

•

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

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

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

•

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

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

カラムの名前、あるいは書式に定義された DBCS 対応の位置指示記号を変更しても、ファイルの再編成は行われません。

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

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

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

21

第 3 章 - データベースの設定様式名］」の形式で追加されます。

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

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

更に、日付型は次のキーワードを追加することにより、EUR 形式、USA 形式のフォーマットに変更することが可能です。
DATFMT=xxx
xxx には、*MDY, *DMY, *YMD のいずれかを記述します。

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

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

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

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

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

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

22

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

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

図 3-10 定義取得

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i23

第 3 章 - データベースの設定
4. Magic は指定されたファイルの定義を取得し、［データ］リポジトリに登録します。
注意：

24

•

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

•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSQL ゲートウェイの設定

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

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

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

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

分離レベル

意味

0 ( デフォルト )UR

未コミット読み込み

1CS

カーソル固定2

RS

読み取り固定3

RR

反復可能読み取り

参考：•

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

•

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i25

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

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

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

26

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSQL ゲートウェイの設定［データベース特性］の設定

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

ログオン (L) タブ•

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

•

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

SQL(Q) タブ•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i27

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

図 3-13

データベース情報

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

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

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

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

未コミット読み取り

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

読み取り固定RR

反復可能読み取り

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

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

28

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSQL ゲートウェイの設定［データ］リポジトリ (SQL) の設定
データベース欄の設定
SQL ゲートウェイでアクセスするデータベースのテーブルは、「データベース」の欄で System i (SQL) のデータベー
スを選択します。

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

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

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

•

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

•

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

サイズ

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

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

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

•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i29

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

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

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

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

30

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

ISAM ゲートウェイの機能

4

プログラミング

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

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

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

図 4-1 Open Query ファイル

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

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

評価結果の表示

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i31

第 4 章 - プログラミング

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

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

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

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

32

•

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

•

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

•

文字型の G フィールド、および Unicode 型の項目は使用できません。

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

ISAM ゲートウェイの機能

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

重要：

新規に作成するプログラムでは、この機能は使用せず、SQL テーブルとして、埋め込み SQL の機能を利用することをお勧めします。
また、この機能は、ホストライブラリに SQL 用のパッチを適用した場合には利用できなくなります。過去のバージョンから移行してきたアプリケーションでこの機能を利用する場合には、ホストライブラリにパッチを適用しないでください。
ISAM テーブルに対しても、Open Query ファイルダイアログを使用することで SQL の SELECT 文を入力することができます。

図 4-2 ダイレクト SQL

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

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

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

•

SELECT ステートメント内で定義されたフィールドの数は、メインソースのカラム数と同じでなければなりません。異なる場合は、［データ］リポジトリでダミーのテーブルを作成しなければなりません。
ダミーテーブルは、System i 内には存在させてはいけません。以下に、ダミーテーブルからフィールドを指定する方法を説明します。
•

テーブル名 : TTT1•

位置 : MAGIC400 ライブラリ•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i33

第 4 章 - プログラミング
FLD1 と FLD3 のみ表示したい場合は、以下のようにします。
ダミーテーブル TTT2 を［データ］リポジトリに定義します。このテーブルには、FLD1 と FLD2 の 2 つのカラムを定義します。TTT1 テーブルの FLD1 と FLD3 と同じ特性で定義してください。
メインソースに TTT2 を定義したタスクを作成します。このテスクで、FLD1 と FLD2 のカラムを定義します。
OpenQuery タスクウィンドウに以下のようなステートメントを入力します。
SELECT FLD1,FLD3 FROM MAGI400/TTT1 WHERE FLD='some value' 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 で ISAM ゲートウェイを使用し、System i ファイルのトランザクション処理を行うためには、次の設定を行う必要があります。
• ［オプション / 設定 / 動作環境 / マルチユーザータブ /ISAM トランザクション］パラメータを「Yes」にします。
• ［デ ー タ ベ ー ス 特 性］、ま た は［デ ー タ ソ ー ス 特 性］の［SQL］タ ブ で、［デ ー タ ベ ー ス 情 報］特 性 に「TRANSACTIONS=Y」を指定します。
•
注意：

34

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

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

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

•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSQL ゲートウェイによる機能

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

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

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

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

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

•

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

•

OUT または INOUT パラメータが定義されたストアドプロシージャには対応していません。

SQL SELECT ステートメントを定義するには：
1. 新しいタスクを作成し、［Ctrl+Q］を押下します。
2. ［データベース］欄からズームして、System i (SQL) のデータベースを選択します。
3. ［結果データベース］欄からズームして Memory、Pervasive SQL 等のデータベースを選択します。空欄、またはSystem i、System i (SQL) は選択しないでください。
4. 有効な SQL ステートメントを入力します。
5. SELECT ステートメントの場合、［APG］をクリックして Magic プログラムを作成できます。

参考：埋め込み SQL の詳細は、『リファレンスヘルプ』の「データビューエディタ」内のトピックを参照してください。

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i35

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

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

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

ErrDbmsCode ()パラメータ：

なし

戻り値：

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

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

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

36

構文：

ErrDbmsMessage ()パラメータ：

なし

戻り値：

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

参考：

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i 固有の UDF/ ユーザ PRC インタフェース

System i 固有の UDF/ ユーザ PRC インタフェース
Magic for System i では、System i に特化した機能のために、固有のユーザ定義関数（UDF）／ユーザプロシージャ（ユーザ PRC）インタフェースをサポートしています。
プログラムでの設定方法は、Magic リファレンスの UDF 関数、または［コール PRC］処理コマンドに関する記述を参照してください。
注意：•

マルチスレッド環境では、UDF は正しく動作しないことがありますので、ISERIES ユーザプロシ
ジャを使用してください。

•

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

•

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

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

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

パラメータ
•

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

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

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

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

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

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

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

パラメータ
•

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

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

戻り値：数値型•

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i37

第 4 章 - プログラミング

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

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

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

パラメータ
1. 引数型文字列
2. System i システム名……文字型
3. プログラムライブラリ / プログラム名……文字型
4. パラメータの総数……数値型
5. パラメータの内容（例：データタイプ：A= 文字型、N= 数値型、サイズ、I/O タイプ：O= 出力）……文字型
6. 1 番目のパラメータ
7. 2 番目のパラメータ
8. ...（以下、パラメータを列挙 )注意：

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

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

•

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

•

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

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

引数型文字列
一つ一つの文字が引数の型を意味する文字列です。
最後の文字は、関数の戻り値の型を意味します。引数型文字と意味する型は次のとおりです。

38

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i 固有の UDF/ ユーザ PRC インタフェース•

1…char•2…short•

4…long•F…float•

8…double•D…double pointer•

E…float pointer•

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

V…void pointer•

0…void例 :SAMPLIB/SAMP1 をコールする場合
SAMPLIB/SAMP1 のソース*************** データの始め ****************/* MAGIC System 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（16 3）/* IN+OUT */CHGVAR
VAR（&MGP3）VALUE（&MGP1 *CAT &MGP2）CHGVAR
VAR（&MGP6）VALUE（&MGP4 + &MGP5）
ENDPGM*************** データの終わり ****************

Magic プログラムの設定• ［コール PRC］処理コマンドのパラメータ1.

'AA4AAAAAAAV'

2.

'10.1.4.201'

3.

'SAMPLIB/SAMP1'

4.

6

5.

'A10, A10, O:A20, N12, N15.3, O:N16.3'

6.

P1

7.

P2

8.

P3

9.

P4

10. P5
11. P6
•

変数の定義
名前

型

書式

P1

A= 文字

10

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i39

第 4 章 - プログラミング
P2

A= 文字

10

P3

A= 文字

10

P4

A= 文字

13

P5

A= 文字

17

P6

A= 文字

19

D4

N= 数値

N12

D5

N= 数値

N23

D6

N= 数値

N133

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

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

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

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

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

注意：•

A>B の時 ……1•

A=B の時 ……0•

A<B の時 ……-1

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

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

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

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

戻り値
EBCDIC コードの文字列

40

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i 固有の UDF/ ユーザ PRC インタフェース

例
文字列 'X' の EBCDIC コード（16 進）を求める場合
HSTR （ASC （UDF （'MGEAC32.ASC2EBC','X'）））
パラメータに２バイト文字を入力する場合、EBCDIC のパラメータは、シフトイン / シフトアウトコー
ドを考慮して、サイズを決定する必要があります。

注意：

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

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

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

戻り値
Shift JIS コードの文字列

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

構文：
UDF（'MGEAC32.STARTSESSION',A,B,C）

パラメータ：•

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

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

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

戻り値：数値型•

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

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

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

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

パラメータ：•

A= サーバ名（文字型）

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i41

第 4 章 - プログラミング

戻り値：数値型•

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

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

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

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

パラメータ：
1. 'AAAALV'
2. 'RTVERRID'
3. System i システム名（文字型）
4. CPF エラー ID （文字型）
5. CPF メッセージ（文字型）
6. CPF メッセージのサイズ（数値型）※ ISERIES ユーザプロシジャの詳細は、次項をご覧ください。

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

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

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

例 1．RMTCMD 関数
パラメータ1. 'AAAL'
2. 'RMTCMD'

42

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i 固有の UDF/ ユーザ PRC インタフェース
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. 戻り値…… 数値型

例 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'

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i43

第 4 章 - プログラミング
2. 'ASC2EBC'
3. '10.1.4.201'
4. 入力パラメータ（Shift JIS コード）…… 文字型
5. 出力パラメータ（EBCDIC コード）…… 文字型
6. 出力パラメータサイズ …… 数値型

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

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

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

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

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

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

パラメータ
1. System i システム名
2. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
3. 取得したシステム値のリストの格納する一時ファイル。デフォルトは MGSYSVAL。

44

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i 固有の UDF/ ユーザ PRC インタフェース
4. 結果の戻り値 ［0: 成功 -1: 失敗］

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

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

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

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

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

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

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

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

パラメータ
1. System i システム名
2. スプールファイルエントリの名前。デフォルト値は QPRINT。
3. スプールファイルエントリの番号（文字型）
4. ジョブ名
5. ジョブ番号（文字型）

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i45

第 4 章 - プログラミング
6. ユーザ名。デフォルトはカレントユーザ。
7. 一時ファイルを格納するライブラリ。デフォルトは QTEMP。
8. スプールファイルのエントリを格納する一時ファイル名。デフォルトは MGF255。
9. 結果の戻り値 ［0: 成功 -1: 失敗］

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

コピー枚数の変更•

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

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

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

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

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

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

46

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i 固有の UDF/ ユーザ PRC インタフェース

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

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

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i47

第 4 章 - プログラミングプログラムに関する考慮事項•

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

•

ISAM ゲートウェイによるソートで、サーバソートが無効の場合、ソート処理のために QTEMP に一時的なソー
トキーを作成して処理するため、通常のインデックスに比べてパフォーマンスが低下することがあります。このため、［オプション / 設定 / 動作環境 / 動作設定］の［ソート / 一時用データベース］には、System i 以外のデー
タベースを指定してください。

•

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

•

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

System i のソース・ファイルにアクセスすることはできません。

•

不正な SQL コマンドや OpenQuery の実行によってエラーが発生した場合、［ロジック］エディタに定義される［エラー］ロジックユニットで取得することはできません。

• 「* 」（アスタリスク文字）をワイルドカードとして使用できません。

Unicode に関する考慮事項

48•

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

•

SQL ゲートウェイによる［範囲位置付ダイアログ /SQL WHERE］の［MAGIC SQL］パラメータ、および［DBSQL］
パラメータ には、Unicode 型項目による条件式を指定する場合、DBMS パラメータに「SUPPORT_UNICODE_STMT」を設定してください。

•

SQL ゲートウェイによる埋込 SQL コマンド では、入力パラメータに Shift_JIS に存在しない Unicode のデータを指定する場合、DBMS パラメータに「SUPPORT_UNICODE_STMT」を設定してください。

•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

ファイルタイプ

System i の操作

5

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

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

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

長さ

•

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

バリディティチェック

•

テキスト

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

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

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

•

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

最高 32 までの物理レコードフォーマットを 1 つの論理レコードビュー定義に統合されたビュー

注意：この章では、キーとインデックスという用語と同じように、ファイルとテーブルも区別なく使用されています。

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i49

第 5 章 - System i の操作

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

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

テーブルシステム用の DB2UDB for System i SQL

DDS を使用してデータベースファイルを定義する
DDS を使用して、System i でデータベースファイルを定義するには：
1. System 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 for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i データベースファイルへのアクセス
ユーザプロファイル … ユーザプロファイル名は、サーバにユーザを識別させます。このユーザプロフィール名は、ユーザ ID しても知られています。これは、サインオンのユーザプロンプトに入力する名前になります。

認証名 /
認証 ID

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

スキーマ ( コレクション ) の作成
SQL のスキーマ（コレクション）は、SQL オブジェクトの論理的なグループを提供します。スキーマは System 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))
を実行します。

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

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i51

第 5 章 - System i の操作

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

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

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

52

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i データベースファイルへのアクセス

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

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i53

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

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

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

図 5-7 Active Jobs 画面

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

図 5-8Change Job 画面

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

54

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

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

注意：

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

図 5-9Change Job 編集画面

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

ジョブ状況属性の表示•

ジョブ定義属性表示•

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

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

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

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

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

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

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

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i55

第 5 章 - System 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 for System i 開発ガイド
Magic eDeveloper V10 for System i

実行時の初期設定機能

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

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

Magic/400 started in MAGIC400 …… Magic System i Client が開始されたとき•

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

MGCLIENT ジョブ記述オプション
MGCLIENT ジョブは、HOST DBA ライブラリの MGCLIENT ジョブ記述を利用しますが、次のコマンドを実行して、TCP_INI データ領域 (*DTAARA) の 80 カラム目に *USRPRF の指示を挿入すると、ユーザプロファイルのジョブ記
述を利用するようになります。
CHGDTAARA DTAARA(TCP_INI (80 10)) VALUE('*USRPRF'))

System i クライアントの Magic ゲートウェイのログレベルを設定する
ここでは、ゲートウェイログのレベルを設定する方法について説明します。
［ロギング］テーブル（［オプション (O) ／設定 (S) ／ロギング (O)］）において以下の設定ができます。
•

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

説明

N= なし

ログは出力されません

C= ユーザ用

基本動作

S= サポート用

拡張機能の動作

D= 開発者用

GW 内部の動作

Magic クライアントが終了すると、作成されたログファイルにアクセスすることができます。
以下に示すように、DB2 System i と DB2 System i(SQL) のゲートウェイログ情報は、Magic400.ini ファイルにて以下のように指定することができます。
[MAGIC-DBMS]
DB2 System i = 17, OnePhaseCommit, NotAllowNull, NotTransLockExcl, 10.3, + MAGICDBA=MAGIC400

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i57

第 5 章 - System i の操作
LANGUAGE=etc/as2eb.jpn, NotShowPlan, S, +%Magic.Dir%/logs/isam_log,NotLogSync,0,0,NotCheckExist, etc/acs400.jpn
DB2 System i(SQL) = 7. OnePhaseCommit, AllowNull, NotTransLockExcl, 10.3, +MAGICDBA=MAGIC400 LANGUAGE=etc/as2eb.jpn +CONNECTDLL = mgeac32.dll, ShowPlan, D, %MagicDir%logs/db2_log, +LogSync, 1, 0, CheckExist, etc/acs400.jpn
セミコロン (；) を選択されたログ設定から削除することでリクエスタログを定義することができます。

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iDBCS の種類

6

DBCS

Magic クライアントは Shift JIS コード、System i は EBCIDIC コードにて処理しています。Magic for System i では、クライアント PC と System i の間でデータのやりとりを行う際に、自動的に Shift 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 for System i 開発ガイド
Magic eDeveloper V10 for System i59

第 6 章 - DBCS
すなわち、DBCS 図形フィールド以外に２バイト文字を登録したフィールドには、シフトコードが付加されるため、実際に入力／表示される文字データよりも格納されるフィールド長が大きくなります。Magic for System i では、Shift
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 for System i 開発ガイド
Magic eDeveloper V10 for System iデータ記憶型式と System i データタイプ

補足－ A

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

文字型

数値型

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

Unicode 型

Magic 記憶型式

System i でのデータ
型

System 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 でデータを出力した結果です。

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i61

第 章 - 補足－ A*2：書式の位置指示記号により DDS フィールドのタイプが変わります。詳しくは DBCS の章を参照してください。
*3：ASCII コードの「T」または「F」が格納されます。EBCDIC コードで格納するときは、第 3 章「［データソース
特性］で有効なキーワード」（ページ 21）の「STORAGE=DB2」を参照してください。
*4：System i の日付または時刻のデータタイプを格納するときは、第 3 章「［データソース特性］で有効なキーワー
ド」（ページ 21）の「STORAGE=DB2」を参照してください。
*5：カラムの CCSID が 13488 として定義されます。

制限事項
•

62

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iデータ記憶型式と System i データタイプ

SQL ゲートウェイ

文字型

数値型

論理型
日付型

時間型

Unicode型
BLOB 型

Magic 記憶型式

System i でのデータ
型

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i63

第 章 - 補足－ A

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

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

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

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

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

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

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

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

•

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

•

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

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

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

Unsigned Integer（符号なし整数）［2 進数］
これは、9 桁までの正の整数のみを記憶するために使用されます。

64

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iデータ記憶型式と System i データタイプ
サイズそれぞれ 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 上限が 18 桁なので Magic 内では 18 桁までしか扱えません。

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

Character Number（文字数字）［ 文字 ］
１桁につき１バイトの ASCII コードの数字が格納されます。右端のバイトに `+' または `-' の符号が ASCII コードで格納されます。
サイズ 1 から 18 バイト•与えられたサイズが n の場合、記憶される最大桁数は n - 1 です。

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i65

第 章 - 補足－ A

Magic Number（ Magic 数字）［ 文字 ］「Magic Number」は、Magic によって使用される内部表記です。基数を 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 の上限が 18 なので Magic 内では 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 章 「［データソース特性］で有効なキーワード」を参照）。

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

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

66

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iデータ記憶型式と System i データタイプ

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 バイト

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

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i67

第 章 - 補足－ A

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

ISAM ゲートウェイ
System 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 ゲートウェイ
System i のデータタイプ

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

記憶型式

記憶サイズ

書式

CHARACTER

文字型

Stringnn

VARCHAR

文字型

StringMemo

n+2n

GRAPHIC(CCSID:13488)

Unicode 型

Unicodenm(m=n/2)

INTEGER

68

数値型

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--

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i各種限界値

各種限界値
項目

System i での制限

キーの最大数99

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

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

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

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

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

デフォルトサフィックス

なし

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i69

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

70

Magic for System i 開発ガイド
Magic eDeveloper V10 for System iSystem i プログラムコールウィザード

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

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

System i の接続情報•

Host Name …… 必須•

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

•

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

•

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

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i71

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

72

Magic for System i 開発ガイド
Magic eDeveloper V10 for System i

Magic for System i 開発ガイド

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

第 2 版 2008 年 7 月 18 日
東京都渋谷区代々木三丁目二十五番地三号
発行 〒 151-0053
あいおい損保新宿ビル 14 階

All rights reserved.