Magic eBusiness Platform Ver9.30J SP5a readme

マジックソフトウェア・ジャパン
株式会社２００３年５月

Magic eBusiness Platform Ver 9.30J SP5a 追加情報

  Magic eDeveloper
  Magic Application Server
  Magic Client

このファイルには、Magic eBusiness Platform （以下 Magic と表記） Ver 9.30J SP5aについて、マニュアルに記載されていない注意点や制限事項など重要な情報が記載されています。

本バージョンのご利用にあたっては、Ver 9.30J SP5a のご利用にあたって に 、特に重要な事項がまとめてありますので、必ず目を通してください。

表記上の注意

本文書には、参考のために過去のバージョンの追加情報 (readme.htmの内容) も含まれていますが、今バージョンでの新規の情報を区別するため、次のようなアイコンを利用しています。

特に重要な情報であることを表しています。

今バージョンで新しく追加された情報を表しています。

今バージョンで変更になった情報を表しています。

また、本文書の各項目において、説明文書の最後に括弧つきの番号がつけてあります。(例： (1000641))。これは、サポートセンターがい～さぽで提供している重要技術情報の情報番号です。

内容

Ver 9.30J SP5a のご利用にあたって

過去のバージョンとの互換性

サポートDBMS、OS対応一覧

Ver9.30J SP5a での新機能・改善・制限事項等

Ver9.30J SP5 以前のバージョンの修正履歴

データベース固有の追加情報

注意事項

ブラウザクライアント利用時の注意事項

ワークグループ開発機能利用時の注意事項

その他の制限事項および留意事項

V8.2およびそれ以前のバージョンについて

dbMAGIC Ver8と混在環境での使用について

旧バージョンからのマイグレーション

参考技術情報

文字型書式「位置指示記号」の拡張

サポートするイメージフォーマット

リポジトリ等の制限値

付録

ボーナスパック

テクニカルホワイトペーパー

ベータ機能評価レポートのお願い

使用条件


9.3SP5aのご利用にあたって (重要事項)

9.3SP5aのご利用にあたって

過去のバージョンとの互換性について

Ver 9.30J SP5a は、基本的に Ver 9.30J SP5 と互換性がありますが、不具合の修正などに伴って細かな動作の違いがあります。

互換性についての詳細は、「過去のバージョンとの互換性」に記述してあります。また、不具合の対応・細かな仕様の変更などにともなう動作の違いがありますので、「Ver9.30J SP5a での改善・変更・制限事項等」をご参照ください。

ベータをご利用になったお客様へ

ベータ評価にご協力ありがとうございました。ベータ版をご利用になった環境で本製品版をご利用になる場合には、以下の事項にご注意ください。

  • ベータ版はアンインストールしてください： Ver 9.30J SP5a 正式製品版出荷前のベータ版をご利用になった場合には、ベータ版のモジュールやファイル類が残って予期しない動作を起こす可能性を防ぐため、ベータ版を含む 9.30J SP5 バージョンをいったんアンインストールしてから、製品版をインストールするようにしてください。 アンインストールせずに、インストーラによるアップグレードを行った場合、ベータ版のモジュールやファイル類が完全に消去されない可能性があります。

  • ブラウザクライアントのサブバージョンの設定を解除してください： ベータ版をご利用の際に、「動作環境」ダイアログの「アプリケーションサーバ」タブにある、「ブラウザクライアントのサブバージョン」欄に｢BETAxx｣の設定が必要でしたが、本製品版では必要ありません。残っているとエラーとなりますので、設定を解除(空白にする)してください。

ベータ機能のサポートについて

本製品版のサポートは、マジックソフトウェアジャパンのサポートセンターで受け付けておりますが、一部の機能は「ベータ機能」として残されています。

ベータ機能と指定されている機能に関するご質問等は、マジックソフトウェアジャパンのサポートセンターではお受けいたしておりませんが、「ベータ評価レポート」に記入して、メールで japan_v9beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。


Ver9.x からのマイグレーション(互換性)

過去のバージョンとの互換性

ここでは、9.30J SP5およびそれ以前のバージョンからのアップグレード時の互換性について説明します。

  • Ver 9.30J SP5 からのアップグレード
  • Ver 9.30J SP3/3a からのアップグレード
  • Ver 9.01J SPx、Ver 9.20J SPｘ からのアップグレード
  • Ver 8.2 およびそれ以前のバージョンからのマイグレーション

Ver 9.30J SP5 からのアップグレード

  • Magicコントロールファイル互換性： Magicコントロールファイル（MCF, MFF)は互換性があります。すなわち、Ver9.30JSP5 で作成したコントロールファイルは、Ver 9.30J SP5a で読み、また修正することが可能です。 また、その逆も可能です。

  • 動作の変更： 不具合の修正に伴う、細かな動作の違いがあります。「Ver9.30J SP5a の動作変更」をご参照ください。(なお、ここには、SP5ですでに変更されていたものだが、SP5に添付の readme に記述されていなかった内容も含まれます)。

Ver 9.30J SP3/3a からのアップグレード

  • Magicコントロールファイル上位互換性： Magicコントロールファイル（MCF,MFF)は 上位互換性があります。すなわち、Ver 9.30J SP3/3aで作成したCTLファイルは、Ver 9.30J SP5aで読み、また修正することが可能です。

  • Magicコントロールファイル下位非互換性： 下位互換性は保障されていません。すなわち、Ver 9.30J SP5aで作成・修正等を行ったCTLファイルをVer 9.30J SP3/3aで開いたり、修正 したり、実行したりすることは、動作保証されていません。

  • リポジトリ出力・入力： Ver 9.30J SP5aから下位バージョン(Ver 9.30 SP3/3aおよびそれ以前のバージョン)へのリポジトリ出力・入力は行えません。行おうとするとエラーとなります。

  • Ver 9.30J SP3/3a からのアップグレード後にも、Ver 9.30J SP3/3a で利用する可能性がある場合には、MCFファイルおよびリポジトリ出力を行ったファイルを保存しておいてください。

Ver9.01JSPx、Ver9.20JSPｘ からのアップグレード

  • Magicコントロールファイル非互換性： Magicコントロールファイル（MCF、MFF)の互換性がありません。旧バージョンにてリポジトリ出力し、新バージョンでリポジトリ入力を行なう必要があります。コンポーネントを使用している場合、コンポーネント化されているコントロールファイルを先に移行して下さい。事前に旧バージョンの開発環境をバックアップされることをお奨めいたします。

  • モジュール名の変更

    V9.01モジュール名 | V9.2モジュール名 | V9.3モジュール名 | 備考
    mgrqispi9.dll | mgrqispi92.dll | mgrqispi93.dll | 設定／動作環境／アプリケーションサーバ／HTTPリクエスタで設定
    mgrqcgi9.exe | mgrqcgi92.exe | mgrqcgi93.exe
    mgrqnspi9.dll | mgrqnspi92.dll | サポートされなくなりました。
    mgrqgnrc9.dll | mgrqgnrc92.dll | mgrqgnrc93.dll
    mgrqhttp9.dll | mgrqhttp92.dll | mgrqhttp93.dll

    上記の変更に伴い、MAGIC.INIおよびHTMLファイルを必要に応じて変更してください。

     例： InternetDispatcherPath = /Magic9Scripts/mgrqispi93.dll
    一時的な回避方法として、IISのURLへのリダイレクトの機能を使用する方法があります。

  • MRBデフォルトポート番号の変更：
    デフォルトのポート番号が、3001, 3100 → 3200へ変更になりました。旧ポート番号（3001, 3100）でも動作可能ですが、各種INIファイルの設定を変更することを推奨いたします。

    ＩＮＩファイル | 設定 | 備考
    MAGIC.INI | 設定／サーバ／サーバアドレス
    MGREQ.INI [REQUESTER_ENV]
    MessagingServer = 3200     		Magicエンジン、インターネットリクエスタのインストール場所
    MGRB.INI [MRB_ENV]
    BrokerPort = 3200

  • セキュリティファイルの変更： 安全性を高めるためのユーザID/パスワード のサイズの拡張に伴い、セキュリティファイルが変更になりました。旧バージョンのセキュリティファイルは、コンバートツールで変換する必要があります。詳細は、Ver9.30J SP3 の動作変更 を参照してください。


サポートDBMS、OS対応一覧

対応OS、DBMS

ここでは、Ver 9.3SP5a のシステム要件を記します。

参考： システム要件については、インストールガイドの第1章「はじめに」 → 「セットアップ条件」の節にも注意事項等ありますので、ご覧ください。

V9 サポートDBMS一覧表

DBMS | Version | Magic eBusiness Platform V9 Winodws版
Pervasive.SQL | Pervasive SQL2000/2000i Workstation for Win95/98/NT | ○
 | Pervasive SQL2000/2000i Workgroup for Win95/98/NT | ○
 | Pervasive SQL2000/2000i Server for WinNT | ○
 | Pervasive SQL2000/2000i Server for Netware | ○
 | Pervasive SQL V8 | 予定
ORACLE | Oracle8 | ○
 | Oracle8i | ○
 | Oracle9i | △ 注意1
MS-SQL | 7 | ○
 | 2000 | △ 注意2
MSDE | Ver1.0 ／ Sp3 | ○
 | Ver 2.0 | 予定
DB2 UDB | V7.2 | △ 注意3

凡例 … ○：動作確認済、△：制限あり、－：対象外、予定：評価予定

注意1. | Oracle8/8i用のGTWを使用して、互換のレベルで動作を確認。 詳細はこちら。
注意2. | SQLServer7.0用のGTWを使用して、互換のレベルで動作を確認。
注意3. | Ver9.3J SP3以降。

V9 サポートOS一覧表

OS | Machine Type | Version | Magic eDeveloper V9 | Magic Client V9 | Magic Application Server V9
Windows | Intel | 98 | ○ | ○ | ×
 |  | NT 4.0WS | ○注意1 | ○注意1 | ×
 |  | NT 4.0SV | ○注意1 | ○注意1 | ○注意1
 |  | 2000Pro | ○ | ○ | ×
 |  | 2000SV | ○ | ○ | ○
 |  | 2000ASV | ○ | ○ | ○
 |  | XP Professional | △注意2 | △注意2 | ×

凡例 … ○：動作確認済、△：制限あり、× ：対象外、予定：評価予定

注意1. | WindowsNT4.0SP6a以降。USB-HASPはサポートされていません。
注意2. | (下記「Windows XP 利用時の注意事項」を参照)

Windows XP 利用時の注意事項

  • Ver9.20J SP1以降で対応しています。
  • Windows2000の互換機能を使用してMagicが動作することを確認したもので WindowsXP の新機能に関しては未評価です。
  • Pervasive.SQLを使用する場合は、Pervasive.SQL2000i を使用します。
  • HASPデバイスドライバは Ver4.65以降を使用します。
  • Windows2000 互換モード、「視覚テーマを無効にする」で使用することを推奨します。この設定がなされていない場合、GUIツールバーが正しく表示されないことがあります。
  • WindowsXPの仕様により、ネットワークドライブ上のモジュールに対して「互換モード」「視覚テーマ」の設定はできません。このため、Windows XP を利用する場合には、Magicはネットワークドライブではなく、各クライアントのローカルハードディスクにインストールする必要があります。
  • 必要に応じて画面のプロパティにおいて、テーマを「Windows クラシック」にするなど、ウィンドウとボタンが「Windows クラシック スタイル」になるように設定することを検討してください。これはWindowsXPのスタイルとクラシックのスタイルでは使用されるフォントのサイズも異なるため、Magicにおいて使用可能なクライアント領域が異なるためです。そのため、いままで表示できていたフォームが表示しきれずにスクロールバーが表示されることがあります。


Ver9.30J SP5a での新機能・改善・変更内容

Ver9.30J SP5a での改善・変更・制限事項等

ここでは、 Ver9.3 SP5a での新機能・改善・変更内容の記述します。

改善内容

動作変更

制限事項および既知の問題


Ver9.30J SP5a の改善内容

ここでは、以前のバージョンでの不具合・制限事項に対応したものをあげてあります。

ライセンスマネージャ関係

  • 「Ethernet 以外」のHOST-ID で登録しようとした場合、HOSTーID の確認ダイアログの「確認」ボタンが動作しない問題に対応しました。

    SP5a以前のバージョンで起こった場合の回避策： Magicのインストールフォルダの下に License サブフォルダがあります。この中の lmCTL_old.mff というファイルをlmCTL.mff にリネームしてライセンスマネージャを実行してください。(事前にライセンスマネージャを終了させ、lmCTL.mff というファイルを別の名前にリネームしておいてください。)

  • 「インデックスが重複しています。 テーブル：table8」というエラーがライセンスマネージャー実行時に発生することがある問題に対応しました (1000665)。これは、ライセンスマネージャーを実行した時に、MGDEMOのライセンス名を削除してからすぐに追加する、という操作を行った場合に、ライセンスマネージャーが参照しているライセンスファイル(C:\FLEXLM\License.dat)に、MGDEMOというライセンス名が2つ登録されてしまうことがあったためです。なお、このエラーによる実害はありません。

    SP5a以前のバージョンで起こった場合の回避策： C:\FLEXLM\License.dat をテキストエディタで開き、２つのMGDEMOのうち片方を削除します。

  • 「ライセンスの確認」ボタンが有効にならないことがある(正しいコードを入力しても)問題に対応しました。 この問題は、9.30J SP3のベータ版をインストールした後に、上位のバージョンをアップグレードした場合に起こっていました。

インストーラ

  • 以下のようなエラーが発生する問題に対応しました (1000670)。この問題は、Windows2000またはXPで、C:\ProgramFiles 以下にMagicをインストールした後、PowerUsersやUsersグループのユーザでログインしてMagicを実行すると 起こっていました。WindowsNTでは発生しません。magic.ini、license.dat、mgmemry.dll に対して Users グループの権利設定がされていないことが原因です。

    • can not open magic.ini
    • LICENSE ERROR: Failed to set the license file parameters
    • Failed To Load Driver: GATEWAY\MGMEMORY.DLL

    なお、この問題の対応のため、インストール処理の終了前にコマンドプロンプト画面が一時的に表示されます。
    SP5a以前のバージョンで起こった場合の回避策： Administratorでログインして、Users に対する権利を割り当てることで回避できます。また、cacls というコマンドを使用することでインストールフォルダ内のファイルに権利設定を行うことができます。

  • ライセンスマネージャおよびショートカットから起動されるMRBモニタは、Support サブフォルダにある MAGIC.INI ファイルのコピーを参照するようになりました。これは、ユーザによるMAGIC.INI ファイルの変更により、ライセンスマネージャやMRBモニタの動作に影響が起こることを防ぐためです。

開発モード

  • 位置付ダイアログにおいて、入力する文字数が2文字以下の場合、文字が表示されない問題に対応しました。 (1000641)。この問題は、開発版の以下の画面で、Ctrl+L または編集/テーブル位置付を実行したときに起こっていました。

    • 各リポジトリのフォルダ

    • モデルの型

    • 入出力ファイルのメディア

    • フォームのインタフェースタイプ

    • タスク定義のレベル、イベントおよびスコープ

    • 処理テーブルの処理コマンド

    • 処理コマンドのフォームの区分、インタフェースタイプ、子ウィンドウ

  • プロパティシートやナビゲータをドッキング解除し たとき、以下のような操作によりウィンドウの位置がずれてしまったり、画面から消えてしまう問題に対応しました。

    • ウィンドウの下端をマウスでドラッグしたとき (1000650)。

    • ALT+Spaceによりプロパティシートやナビゲータのウィンドウを移動後、再度、ウィンドウタイトルの部分をマウスでドラックして移動したとき (1000653)。

    万一、ナビゲータやプロパティシートが画面から消えてしまう現象が再度起こったら、 「プロパティシートやナビゲータが画面から消えてしまう問題」で書かれている手順により対応してください。

  • コールリモートダイアログの優先順位（式）欄において、設定した式番号を変更しても元の式番号に戻ってしまう問題に対応しました。この問題 は、式欄から式テーブルにズームして、先頭に新しい式を追加して、その式番号を指定した場合に起こっていました (1000621)。

  • 親タスクで定義された項目を子タスクのフォーム上に配置しているプログラムに対して、親タスクからサブツリーコピーし、別のタスクに貼り付けるとMagicが異常終了する問題に対応しました。(1000688)

オンライン プログラム

  • フローモードによるズーム実行でサブタスクをコールするようにしているとき、プッシュボタンに割り当てられた「ズーム」アクションによってプログラムがコールされないことがある問題に対応しました(1000647)。

  • 「ウィンドウ消去」 が No のタスクのウィンドウが消えてしまう問題に対応しました。この問題は、次のような構造の親子のタスクA, B とそこから呼び出される第3のタスク C において、実行中、制御がタスクAとBの間を移動しているときに、起こっていました。 (1000640、1000638)。
    • タスク B と C の「タスク制御→オプション→ウィンドウ消去」 が No。
    • タスク C は、開始後直ぐに終了する。
    • タスク A と B それぞれのタスク前処理でタスク C を呼び出す。このとき、タスクCのウィンドウの表示座標をパラメータで渡す。

Web プログラム

  • インターネットプログラムにおいて、コンテキスト変数の日付制限または時間制限を使用すると、実行時にMagicが異常終了する問題に対応しました(1000645)。

ブラウザ クライアント プログラム

  • Microsoft Java VM の StringBuffer.SetLength メソッドに起因するメモリリークを回避するように修正しました (BC003)。

  • ネスト遅延の子タスクを呼び出す時、子タスクのフォームが「モーダル=No」になっていると、Magicがエラーメッセージを出した後、異常終了する件に対応しました。
  • ハイパーテキストコントロールのコントロール特性／ハイパーリンクダイアログで、「ハイパーリンクタイプ」をURLに設定し、「URL」にFTPサイトを設定した場合、実行時にそのハイパーテキストをクリックすると、FTPサイト用のフォルダビューが表示されない問題に対応しました (1000662)
  • ブラウザクライアントアプリケーションを実行しているドメイン(Webサーバのあるホストマシン)と異なるドメインからのHTMLによって作成されるIFRAMEコントロールにブラウザクライアントタスクを表示 できない問題に対応しました。(975041)
  • ウィンドウオープン時のタイマーイベント： 以前のバージョンでは、ブラウザクライアントタスクが始まる時にウィンドウを開く場合、タイマーイベントが内部で処理されていたが、これによりブラウザクライアントモジュールで例外がまれに発生することがありましたが、この問題に対応しました（BC002）。
  • Windows 98上でブラウザクライアントを実行中、多くのウィンドウを開いたり閉じたりを繰り返した後、ウィンドウを閉じる時に不定期にエラーが発生することがある問題に対応しました。 Internet Explorer はWindows 98 上で動作する場合、スレッドが使っていたリソースを解放するために時間がかかるため、ブラウザクライアントモジュールが内部で使っているタイマーイベント処理中に、不定期にエラーが発生していたためでしたが、これを回避するためにリソース解放の途中でタイマーイベントが発生しないように修正しました (790383)。

実行エンジン一般

  • 次のような条件を満たすタスクを実行すると、実際にはレコードが更新されていなくとも、「レコードは修正されていました」のエラーが発生する問題に対応しました (308647)。

    1. トランザクションモード： 物理
    2. トランザクション開始： レコードロック時
    3. ロック方式： 入力時
    4. 外部結合リンクを使っていて、リンク条件として複数のカラムに位置付けを指定している。
    5. メイン・リンクテーブルともに、Oracleである。
  • 二つ以上の外部結合リンクを使ったタスクで以下の条件が満たされると、リンクの結果が正しくない場合がある問題に対応しました (423826)。
    • メインテーブルのキーの中で、「セレクト」コマンドで選択されていないカラムがある。
    • 二つ(あるいはそれ以上)の外部結合リンクがある。
    • 一方の外部結合リンクでは、「リンク条件の評価」として「T=タスク」が設定されていて、「条件」が False である。
    • 他方の外部結合リンクコマンドでは、「位置」指定として定数が使われていて、「条件」が True である。
  • 外部結合リンクを使い、グループレベルが定義されているバッチタスクで、Magicが異常終了することがある問題に対応しました (760304) (注： この問題はSP5で修正されていましたが、SP5のreadmeには記載されていませんでした)。
  • 仮想項目を使ってグループレベルを定義しているバッチタスクで、その仮想項目をグループレベルの処理内で更新している場合、Magicが異常終了する問題に対応しました (751558)。
  • SQLコマンドタスクで、入力パラメータに式で指定した数値のマイナス符号が消える問題に対応しました (765901)。
  • マルチスレッドでの実行時、複数のプログラムが特定の項目についてINIGET/INIPUTを同時に行うと、同期が正しくとれなくなる可能性がある問題に対応しました(403315)。これで修正されたのは、以下のパラメータです：
    • 論理名([LOGICAL_NAMES]セクション)の設定
    • MaxConcurrentRequests
    • ActivateRequestsServer
    • RequestsServerCanReplaceCtl
    • MessagingServer
    • ExceptionMessageBoxDisplay
  • アプリケーションサーバ実行時に、スタートアプリケーションを設定したCTLの中で、メインプログラムのタスク前処理でINIPUT(ファイルのエントリ, 'TRUE'LOG)を実行すると、MRBに接続できない問題に対応しました (762484)。
  • STRTOKENCNT 関数が2バイトに対応していない問題に対応しました (1000095)。例えば、STRTOKENCNT('Ａ表\Ｂ','\') を実行した場合、「表」文字の第2バイト目のコードが「\」文字のコードと同じ(16進で5C)であるため、誤って 3 が返されていましたが、9.30J SP5aでは、正しく 2 が返されます。
  • 登録モード時におけるビュー再表示発行時、代入式のSTAT関数が再評価されない問題に対応しました(1000664)。
  • 新規行においてレコード書込アクションを実行後、タスクモードが登録モードのままで、行作成アクションや行削除アクションが実行できない問題に対応しました（1000663）。
  • MMCOUNT関数でマークした行を数え、「マークを全て解除」イベントを実行しても０にならない問題に対応しました(1000630)。
  • テキスト形式印刷において、入出力特性のページフッタを使用すると、最終ページの空白行にプリンタ属性の「24」のコマンドが出力される問題に対応しました(1000636)。
  • 項目（モデル、カラム、ローカル変数）特性/デフォルト値に値を設定した項目を使ったプログラムを実行し、

    その項目の値を変更した場合に、不定期に異常終了することがある問題に対応しました (1000678)。

印刷ユーティリティ

  • スタイル設定ユーティリティ(SETSTYLE)で、プリンタの「キュー名」の最大長が 255バイトとなりました。以前は32バイトが上限でした。

  • プリンタ設定ユーティリティ及びスタイル設定ユーティリティ起動時に、コマンドライン パラメータとして INI ファイル名を指定できるようになりました。起動方法は以下の通りです。

    Mgprn /INI=(INIファイル名)

    Setstyle /INI=(INIファイル名)

MRB

  • MRBに関連して、以下の２つの問題に対応しました (1000684)。

    • 指定したサーバにMRBが起動されていない時にリモートコールを実行すると、開発版ではクラッシュする。実行版ではクラッシュしないが、あとからMRBを立ち上げても実行できない。
    • 指定したサーバにMRBが起動されていないで、かつサーバ特性／代替サーバが有効な時にリモートコールを実行すると、実行可能。ただし、代替サーバのMRBまたはアプリケーションサーバを再起動すると、その後でリモートコールすると以後は1.と同じ現象になる。

ベータ機能

以下の機能は、本バージョンではベータ機能として提供させていただきます。

  • プログラム一覧（コールプログラムでズームしたとき等）の操作性を向上させるため、 コンボボックス（全て、同一CTL、コンポーネント）を切り替えたときに、カーソルを常に 先頭行にするのではなく、直前までカーソルのあったプログラムに位置付けされるように 設定できます。この機能は、以下のフラグによって有効になります。デフォルトでは無効になっています。

    [dbMAGIC_ENV]
    LocateProgramList = Y

  • プログラム一覧の操作性を向上させるため、「コンポーネント名.辞書名」の順ではなく、「辞書名@コンポーネント名」の順で表示できるようになりました。この機能は、以下のフラグによって有効になります。 デフォルトでは無効になっています。

    [dbMAGIC_ENV]
    PrecedeProgramList = Y

サンプルアプリケーション

  • 以下のサンプルアプリケーションを和訳し、FTPサイトで公開しました。

    デモ

    ファイル

    ブラウザクライアントアプリケーション開発手法 （9.3SP5対応）

    デモサンプル

    ブラウザクライアントアプリケーション開発手法 ホワイトペーパ （PDF形式）

    ヘルプファイル （CHM形式）

    Ver 9.30J SP3 でのサンプルアプリケーション （9.3SP3対応）

    ブラウザクライアントからHTMLマージタスクを呼び出す

    ブラウザクライアントでヘルプを呼び出す

    ブラウザクライアントタスクをオーバーレイする

    スタイルとクラスのサポート

    なお、ブラウザクライアントアプリケーション開発手法のサンプルデモアプリケーションは、ボーナスパック (CD-ROMの \BONUS フォルダ)にもあります。


Ver9.30J SP5a の動作変更

ここでは、SP5aでの動作変更の内容を記述します。ここには、SP3a → SP5 で変更されていたけれども、SP5 の readme ファイルに記述されていなかった内容も含みます。区別するために、次の表記を使います。

記号 | 意味
(SP5a) | SP5 → SP5a で変更になったもの。
(SP5) | SP3a → SP5 で変更になったが、SP5の readme に記述されていなかったもの。

開発モード

  • (SP5a) 9.3SP5で、コンポーネント読みとり時のエラーメッセージを出すようにしましたが、SQL DBMSにCTLを作った場合や、 CTL名を省略した場合などで、正常にロードできるにもかかわらずエラーメッセージが出る問題に対応しました。
    また、エラーメッセージを表示するオプションを、デフォルトでオフにしました。
    エラーメッセージを表示するオプションをオンにするには、MAGIC.INI の[dbMAGIC_ENV]に、以下の指定をしてください。
    [dbMAGIC_ENV]
ShowComponentError = Y
  • (SP5a) 9.3JSP5でモーダルの時にフロートになってしまわないように修正しましたが、この影響で開発画面がずれてしまう問題があったため、実行時にだけ有効にするよう変更しました。
    9.3SP3a以前では、モーダルウィンドウは必ずフロートになっていましたが、SP5aの実行モードでは、デフォルトではそのようになっていません。以前のバージョンと互換性を持たせるために 、モーダルウィンドウで必ずフローティングにしたい場合は、MAGIC.INI で下記の設定を行って下さい。
    [dbMAGIC_ENV]
ModalIsFloating = Y
  • (SP5) 9.3SP3a以前では、MFFファイル作成時のデフォルトファイル名が「xxCTL.MCF.MFF」 というような名前になってしまうことがありました。9.3SP5では、拡張子「.MCF」をはずした名前に拡張子「.mff」を付加し、「xxCTL.mff」とするようになりました。(764131)。
  • (SP5a) 開発版(ライセンス名がMGCSTK)の場合、9.3SP5 以前ではプログラムのテストのために受け付けられるリクエスト数が500に制限されていて、それを超えると開発版を再起動する必要がありました。SP5a では、2000 まで受け付けるようになりました。
  • (SP5a) 開発版でリクエスト数が最大値を超えてLicense Expireのエラーが発生したとき、MRBアイコン/Display AppServerで表示される「現在実行中のスレッド数」が4294967292といった大きな数字になる問題に対応しました。

Web プログラム

  • (SP5) タスクトレーにあるMRBアイコンのメニューから「Display AppServers」を選択したときに表示される情報に、「現在保持しているコンテキスト数」が追加になりました。表示の形式は、以下の通りになります。(注： MRBアイコンは、インストール時にMRBを「サービス」でなく、「実行形式」でインストールした場合のみ表示されます。)

     N   host/port   pid   status  (C   M   L,  T)  appname

    記号

    意味

    N

    アプリケーションサーバの番号

    host

    稼動しているホスト名

    port

    MRBとの通信に使っているポート番号

    pid

    プロセスID

    staus

    ステータス

    C

    現在実行中のスレッド数

    M

    今までの同時実行スレッド数のピーク値

    L

    同時実行可能な最大スレッド数

    T

    現在保持しているコンテキスト数 (新しい表示項目)

    appname

    アプリケーション名

実行エンジン一般

  • (SP5) 組み込み関数のうち、タスクのレベルを引数としてとるもの (STAT, TDEPTHなど) を、イベントハンドラの「有効」欄の条件式として使った場合、SP3a以前と、SP5以降とで、タスクレベルの数値の解釈が変わりました (1000660)。詳細については、「9.30SP5でのSTAT/TDEPTH関数の変更について」を参照してください。


Ver9.30J SP5a の制限事項と既知の問題

留意事項

開発モード

  • CTL特性の開始モード欄が「R=実行モード」に設定されている場合、メインプログラムのタスク前処理において無限ループするようなプログラムをコールする設定をしてしまうと、開発版においてCTLを開こうとしても開けなくなることがあります。Ver8までは、メインプログラムが存在しないため、CTL特性の開始プログラム欄に設定されたプログラムがこれに該当します。

    このような現象を防ぐため、CTL特性の開始モード欄は「N=なし」に設定して、Magicの設定/動作環境/システムのアプリケーション起動モード欄を「R=実行モード」に設定することをお勧めします。

実行モード

  • Microsoftの制限により、大きなファイル（3MBや4MB）を送信しようとしたときに、Winsockのエラー10055が発生して、正しくファイルを送信できない場合があります。

    そのため、コールリモートコマンド、ファイルのアップロードなどにおいてBLOB項目にファイルのデータを入れて、パラメータとしてやりとりする場合、ファイルサイズは1MB以内にされることを推奨します 。ファイルサイズが大きくなる場合、FTPなどの代替手段を使用されることをご検討ください。
    大きな BLOB 項目を転送する場合、ファイルサイズに応じて MGREQ.INI の CommTimeout を設定する必要があります。この値は、あらかじめFTPなどでファイルの転送にかかる時間を計測して、その値 にプラスアルファを加えた値に設定してください。
    しかし、この値は、内部的な通信のリトライの間隔となるため、あまり大きな値を設定することは推奨できかねます。そのため、特に通信回線が細い場合など、この値が60秒以内で転送できるサイズにとどめることを推奨します。

上記の2件は、9.30JSP5aに限らず、V9 一般に留意すべき事項です。

制限事項

ブラウザクライアント

  • ネスト遅延トランザクションのタスクをフレーム/IFRAMEに表示させようとすると、「Illegal trial to begin a transaction in a non-owner frame」というエラーが出ます。これは 9.30でのネスト遅延トランザクションの仕様によるものです。問題の詳細と回避方法については、「フレーム/IFRAMEとネスト遅延トランザクションでのエラーについて」を参照してください。

  • 「取消終了」アクションは、ブラウザクライアントタスクでは無効です。ただし、MG_QUIT.jpg イメージは使うことができます (980928)。

既知の問題

開発モード

  • コールコマンドのパラメータなどにおいて、設定した式番号を変更しても元の式番号に戻ってしまうことがあります。この問題は、以下の ダイアログで式を使用している場合、式テーブルにズームしてから先頭に新しい式を追加して、その式番号を指定した場合に起こります (1000661)。

    • コールコマンドのパラメータ
    • イベント実行/パラメータ
    • SQLコマンド/入力パラメータ
    • コールコマンド / Web.S / パラメータ
    • ブラウザフォーム/HTMLコントロール/式
  • 結合、外部結合リンクを使用し、リンク条件を設定し忘れた時に、プログラムチェックすると、「結合リンクでのセレクトコマンドは位置付大小の値を同じにしてください」というエラーメッセージが表示されますが、タスク前処理等にコメント行があった場合などに、カーソルがエラーのある位置にパークしないことがあります。

  • 並行開発時、ロックされていたプログラムをチェックインしようとしたとき、「アボート」を選択すると「ABNORMAL TERMINATION」のエラーが出て、Magicが異常終了する問題に対応しました (755159) が、メニューリポジトリ、コンポーネントリポジトリ、テーブルリポジトリなどではまだ修正されていません。この問題は、Windows 98 でだけ起こります。

コンポーネント

  • コンポーネントから外部に公開する場合、最後に「\」文字のある公開名の使うと、コンポーネントの読み込み時に正常にロードされず、「Item Not Available」というエラーが表示されます。公開名の最後には「\」文字を使わないようにしてください。コンポーネントビルダでは、最後に「\」文字のある公開名を選択できないようになりました。

ブラウザクライアント

  • 次のようなタスクを実行するときに、タスク終了時に「Context Not Found」が出ることがあります (717840)。

    • ブラウザクライアントタスク
    • フローモニターを開いている
    • 「エラー発生時」＝「A=アボート」
    • プログラム中でROLLBACK()を使っている。

MSDEのインストール

  • Windows 98上でマイクロソフト社の MSDE 1.0 をインストールすると、インストール途中でハングアップすることがあることが知られています。この問題の詳細と対応方法については、「Windows98上でのMSDEインストール時の障害について」を参照してください。

実行モード

  • ユーザイベントを使用して自タスクを再帰的に起動すると、起動されたタスク終了後、このユーザイベントが無効になります。(781068)

自タスクをイベントで再帰的に起動させる場合は、内部イベントを使用してください。


プロパティシートやナビゲータが画面から消えてしまう問題

Magic 9.3 eDeveloper 製品を使っているとき、ナビゲータやプロパティシートをドッキングさせず、フロート状態にしていると、突然このウィンドウが画面から消えてしまう現象が確認されています。9.3SP5a でこの問題に対応しましたが、万一、同じ問題が起こった場合には、大変お手数ですが、以下の手順でレジストリのキー を削除することで元の戻せます。

STEP 1. Magic をいったん終了します。

STEP 2. レジストリエディッタ （REGEDIT.EXEなど)で、 \\HKEY_LOCAL_MACHINE\SOFTWARE\Magic Software Japan\Magic\9.00 を開きます。

STEP 3. その下にある、Navigator および PropSheet 以下を削除します。

STEP 4. Magicを再起動します。


9.30SP5でのSTAT/TDEPTH関数の変更について

ハンドラの「有効」欄の条件式として STAT 関数など、タスク世代に関連する関数を設定した場合、9.30J SP3a以前では、結果に一貫性が欠ける問題がありました (1000660)。

9.30JSP5では一貫した結果を返すように修正しましたが、その副作用として、アプリケーションの動作に影響することがあります。

変更により影響を受けるプログラム

以下の条件を満たすプログラムは、この変更により影響があります。

  • イベントハンドラの「有効」欄で、ハンドラ有効の条件式としてタスク世代を扱う関数 (STAT, TDEPTH など)を使っている。
  • イベントハンドラの定義されているタスクと、実行時にイベントを発生するタスクとが異なる。

9.30JSP3a以前の問題

イベントハンドラに STAT や TDEPTH など、タスク世代を指定する関数を使った場合、イベントハンドラが定義されているタスクと、実行時にイベントを発生させるタスクが異なる場合、以下のような一貫性を欠く結果が返される、という問題がありました。

  • イベントハンドラの「有効」欄で、ハンドラ有効の条件式として使った場合には、世代 0 は、ハンドラの定義されているタスクを指します。
  • イベントハンドラの中のフローテーブル中のコマンドで使った場合(コマンド実行の「条件」欄とか、項目更新の「式」欄など)には、世代 0 は、イベントを発生させたタスクを指します。

例： 親子タスクがあって、修正モードの親タスクにイベントハンドラが定義されており、登録モードの子タスクで実行時にイベントを発生するようになっていた場合、イベントハンドラの「有効」欄に STAT (0,'M'MODE) が定義されていたとすると、この式は親タスクのモードをチェックするので、子タスクのモードに関わらず、常に TRUE になる。一方、同じ式がイベントハンドラのコマンドの「条件」欄に指定されていた場合には、この式はイベントを発生させた子タスクのモードを参照するので、FALSE と評価される。

9.30JSP5以降の動作

9.30JSP5以降では、タスク世代の「0」は、常に「イベントを発生させたタスク」を参照するように修正されました。

例： 上の例では、STAT (0,'M'MODE) の式は、イベントハンドラの「有効」欄であっても、コマンドの「条件」欄であっても、常に、イベントを発生させた子タスクのタスクモードを参照するので、FALSE と評価される。

影響のある関数

この変更により影響を受ける関数には、次のようなものがあります。

  • タスク世代番号を引数に持つ関数：
    CHEIGHT | CTOP | EOF | LINE | WINBOX
    CLEFT | CTOPMDI | EOP | PAGE | WINHWND
    CLEFTMDI | CWIDTH | LASTPARK | STAT
    COUNTER | DBCACHE | LEVEL | VIEWMOD
  • タスク世代番号を返す関数：
    TDEPTH

プログラムの修正

9.30J SP5以降で、 9.30J SP3a以前と同様の動作を行う場合は、次のような変更を行ってください。

  1. イベントを定義するタスクで数値型変数(仮にAとする)を定義して、タスク前処理でTDEPTH()に更新する。
  2. イベントの「有効」条件式に STAT( TDEPTH() - A, 'C'MODE )を設定する。


Ver 9.30J SP5におけるフレーム/IFRAMEとネスト遅延トランザクションでのエラーについて

9.3SP5/5a では、IFRAMEに対応していますが、IFRAMEあるいはFRAMEで設定されているフレームに、「ネスト遅延」 トランザクションを使ったタスクを呼び出して表示させようとすると、「Illegal trial to begin a transaction in a non-owner frame」 というエラーが出て、実行が中断されることが確認されています。これはV9.3のネスト遅延トランザクションに関する仕様に起因するものです。

発生条件

この問題が起こる発生条件は以下のようなものです：

  • ブラウザクライアントで、あるタスクAから別のタスクBを呼び出そうとしている。
  • タスクAは、すでにトランザクションを開始しており、タスクBのトランザクション設定は「ネスト遅延」である。(このため、タスクBのフォームは「モーダル=Yes」にする)。
  • タスクBを呼び出すコールコマンドで、ターゲットを指定しており、それがIFRAMEあるいはFRAMEで設定されているペインである。

現象

Webブラウザ上で、「Magic's Browser Client Internal Error: Illegal trial to begin a transaction in a non-owner frame」というエラーが出ます。

原因と対応方法

これはV9.3のネスト遅延トランザクションに関する仕様(スタックとして実装されているため、最後に開いたトランザクションを最初に閉じなければならない)に起因するものです。

この制限に対応するには、以下のいずれかの方法により行ってください。

  • 呼出すタスクをトランザクションなし、呼び出されるタスクを遅延トランザクションにして、ネスト遅延を使わないようにする。この場合、呼び出すタスク内ではデータの更新ができなくなります。
  • 呼出すタスクと呼び出されるタスクとを同一トランザクションで実行し、ネスト遅延を使わない。(呼び出される側のタスクのトランザクションを「親と同じ」とする)。
  • FRAME/IFRAME を使わず、新しくウィンドウを開くような画面設計にする。(コールコマンドで「出力先フレーム」としてFRAME/IFRAMEを指定しない)
  • フレーム/IFRAMEに表示させるタスクは、別コンテキストでプログラムを起動する。すなわち、「コール」コマンドで呼び出すのではなく、Webリクエスタにアプリケーション名とプログラム名とを指定して呼び出す。


Ver9.30J SP3a 以前のバージョンの修正履歴

Ver9.30J SP5 以前のバージョンの修正履歴

ここでは、Magic eBusiness Platform（以下 Magic と表記） Ver9 の過去のバージョン (9.3SP5以前)における変更点を記述しています。

注意： ここでは参考情報として、過去のバージョンのREADMEの内容を、修正せずにそのまま掲載しています。最新版において対応されているものもありますので、ご注意ください。

バージョン (新しい順) | 新機能 | 改善内容 | 動作変更
9.30J SP5 |  |  |
9.30J SP3a |  |  |
9.30J SP3 |  |  |
9.20J SP1a |  |  |
9.20J SP1 |  |  |
9.01J SP3a |  |  |
9.01J SP3 |  |  |
9.01J SP2a |  |  |
9.01J SP2 |  |  |


Ver9.30J SP5 の新機能

開発時機能

HTML ヘルプ

Ver9.30J SP5 より、Magicのヘルプファイルは CHM (HTMLヘルプ)形式となりました。これにより、検索機能も強化されます。

インストーラは、MAGIC.INI ファイルをチェックし、以前の MGHELPW.HLP ファイルの指定を、新しい MGHELPW.CHM に自動的に置き換えます。

インストーラは MAGIC.INI ファイルしか更新しないので、もし別の名前の INI ファイルを利用している場合には、手作業でヘルプファイル名を変更してください。Magicの「設定」→「動作環境」メニューで「動作環境」ダイアログを開き、「外部参照ファイル」タブを選択して、「ヘルプファイル」を変更します。

また、ヘルプリポジトリにも、Windows ヘルプに加え、HTMLヘルプファイルを指定することもできます。この場合には、HTML ヘルプの制限により、「C=コンテキスト」および「Q=終了」コマンドしか利用できません。リファレンスマニュアル 17章「エンドユーザヘルプ」の「ヘルプリポジトリ」もご参照ください。

「項目一覧」ダイアログの改善

変数が予め選択されていない場合の、変数の選択のための「項目一覧」ダイアログの初期表示方法が変わりました。以前のバージョンでは、つねに項目一覧の先頭(変数 'A')に位置づけされていましたが、Ver9.30J SP5 では、現在のタスクに定義されている最初の変数に位置づけされるようになりました。

複数行に対するプロパティ シートのサポート

モデル、カラム、変数、パラメータなどに対し、それぞれ、モデルリポジトリ、テーブルリポジトリのカラム一覧、タスク定義の変数項目一覧などで複数行をマークして、 プロパティシートの共通パラメータを同時に変更することができるようになりました。

フローモニターの改善

  • 「検索」ダイアログでの検索方向のサポート フローモニタの「検索」ダイアログで、「検索する方向」として、「上」と「下」とを指定できるようになりました。
  • 「トリガされたイベント」オプション 「動作オプション」ダイアログで「トリガされたイベント」が追加されました。 これをチェックすると、フローモニターに発生したイベント名とコントロール名が、次の形式で表示されます。
    >> イベント処理中 [コントロールヒット] コントロール名：[項目１]

コンポーネントMCF/MFFファイルオープン時のエラーメッセージ

コンポーネントMCF/MFFファイルをオープンするときに、ファイル名が違っているなどでエラーが起こってロードできなかった場合に、エラーメッセージを表示するようにしました。バックグラウンドモードの場合には、フローモニタファイル(デフォルトは mgflwmtr.log)に出力されます。

この機能を無効にしたい場合には、MAGIC.INI ファイルに以下のように指定します。

[dbMAGIC_ENV]
ShowComponentError = N

ブラウザから実行

ツールバー、またはオプションメニューに「ブラウザから実行(B)」のコマンドが追加されました。これにより、プログラムリポジトリからインターネットプログラム、すなわちリクエスタ出力を行うバッチプログラムが実行可能になりました。

実行時機能

新しいイベントハンドラ： 「コントロール」レベルの「変更」イベントハンドラ

オンラインプログラムの「コントロール」レベルのハンドラで、「変更」イベントハンドラが追加になりました。

  • このイベントは、エンドユーザの操作によりそのコントロールの値が変化した場合にトリガされます。 このイベントは、項目更新コマンドなどでプログラム的に値を変更した場合にはトリガされません。
  • オンラインプログラムだけで有効です。ブラウザタスクではサポートされていません。

コントロールの「変更」イベントについてのサンプルは、017_control_change.exe からダウンロードすることができます。

新しい関数

Ver9.30J SP5では、次の関数が追加になりました。各関数の詳細については、リファレンスガイドの「関数」の章を参照してください。

関数名 | 機能
ASTR | ASTR 関数は、文字型データと書式とを引数としてとり、そのデータに対して指定された書式を適用した結果を文字型データとして返します。 ASTR 関数のサンプルは、015_astr.exe からダウンロードすることができます。
HTTPPOST HTTPGET | HTTPPOST と HTTPGET 関数により、HTTP/HTTPSプロトコルを通して Web サーバにMagicプログラムからアクセスできるようになりました。
RQHTTPHEADER | HTTPファイルを結果として出力するタスクで、RQHTTPHEADER 関数を使ってHTTPヘッダを指定できるようになりました。 RQHTTPHEADER 関数を使ったサンプルは、012_rqhttpheader.exe からダウンロードすることができます。
HTTPLASTHEADER | 直前に実行した HTTPPOST 関数あるいは HTTPGET 関数により取得したHTTPの結果のヘッダ部分を、HTTPLASTHEADER 関数を使って取得することができます。
VARDBNAME | VARDBNAME 関数を使って、実項目の DBMS 上の名前、オーナ名などを取得することができるようになりました。
TRANSLATE | TRANSLATE 関数は論理名を含むパス名を引数として受け取り、論理名を展開した実効値を文字型データとして返します。論理名の展開は再帰的に行われるので、論理名の定義中に別の論理名が使われている場合でも、展開は正しく行われます。これにより、INIGET を繰り返し呼び出して論理名をプログラムで展開する必要がなくなります。
CALLURL CALLPROGURL | CALLURL と CALLPROGURL という二つの新しい関数が追加されました。この関数は、ブラウザクライアントタスクで、MagicプログラムやURLを呼び出すために使います。

HTTP プロキシ環境での認証のサポート

HTTP プロキシ環境で、HTTPPOST、HTTPGET、および Web サービスを利用する場合には、「HTTP Proxy」の設定が必要になります。 「設定」→「動作環境」で「動作環境」ダイアログを開き、「外部参照」タブを選んで、「HTTP Proxy - IPアドレス：ポート番号」パラメータに、以下の形式で設定します：

[username]:[password]@[Proxy Server Hostname/IP Address]:[port number]

例:

myuser:mypass@10.1.1.1:8080

HTTP Proxy 設定の詳細については、リファレンスマニュアルの「設定」の章を参照してください。

GUI 形式フォームでのコントロールの座標と「位置」パラメータ

以前のバージョンでは、コントロールの特性において「左辺位置」「上辺位置」「幅」「高さ」などの、コントロールの座標に関するパラメータでの 「式」指定と、「位置」パラメータの指定とは同時に行うことができませんでした。

Ver9.30J SP5ではこの制限が取り除かれ、コントロールの実際の座標は、式を評価した結果に、「位置」パラメータにより指定されている変分を考慮に入れて計算されます。 このようなダイナミックな座標計算は、フォームに直接貼り付けられているコントロールに対してだけ有効になります。

画像データのロード処理の改善

Magicエンジンの実行時、いったんディスクファイルからロードしたイメージデータはメモリのキャッシュに保存するようにして、同一イメージデータが何回もロードされるような場合に、ディスクファイルからのロード回数を減らして、オーバヘッドを減らすことができるようになりました。

イメージデータをキャッシュする場合に用いるメモリの最大量は、「設定」→「動作環境」メニューから「動作設定」タブを選び、「画像キャッシュサイズ」パラメータで指定することができます。また、キャッシュしたデータの時刻とファイルの時刻とを常にチェックするかどうかは、「画像キャッシュ」パラメータにより指定することができます。 「画像キャッシュサイズ」および「画像キャッシュ」パラメータの詳細については、リファレンスマニュアルの「設定」の章を参照してください。

マルチマーキングの機能追加

マルチ マーキング機能が強化され、次のようなイベントが追加されました：

イベント名 | 機能
全てマーク | タスクの全レコードをマークする。
最後までマーク | 現在カーソルのあるレコードから最後のレコードまでをマークする。
先頭までマーク | 現在カーソルのあるレコードから最初のレコードまでをマークする。
マークを反転 | 現在マークされているレコードをマーク解除し、マークされていないレコードをすべてマークする。
マークを全て解除 | マークされているレコードをすべてマーク解除する。

注意 １： 「全てマーク」「最後までマーク」「先頭までマーク」「マークを反転」などのイベントを実行すると、非常に多くのレコードがDBMSから読み込まれ、動作が完了するまでに長い時間がかかる可能性があります。これらのイベントを使う場合には、対象となるレコード数を考慮し、十分に注意して使ってください。

注意 ２: 9.3SP5では、以下の制限があります。

  • マーク／マーク解除： ラインモードで表示されているプッシュボタンにマルチマークイベントを設定した場合、正常に動作しないことがある。(564269)
  • 「マークを全て解除」イベントを実行しても、すぐに MMCOUNT 関数で反映されない。(195109)

参考： 新しいマルチマーキング用のイベントを使ったサンプルは、016_multi_marking.exe からダウンロードすることができます。

新しい特性

● GUI形式フォームの「開始時の位置」

GUI形式フォームに新しい特性 「開始時の位置」が追加されました。これにより、タスクのウィンドウの表示位置を、絶対位置以外に、画面全体あるいは親ウィンドウとの相対的な関係から計算して表示させることができるようになりました。 「開始時の位置」特性は、GUI 形式フォームのプロパティシートの「位置とサイズ」のグループ内にあります。 「開始時の位置」特性の詳細については、リファレンスマニュアルの「表示フォーム」の章を参照してください。

● GUI形式フォームの「MDI調整」

GUI形式フォームに新しい特性 「MDI調整」が追加されました。これにより、タスクのウィンドウが開かれるときに、Magicのウィンドウのクライアント領域いっぱいに最大化された状態で表示されるようになります。 「MDI調整」特性は、GUI 形式フォームのプロパティシートの「位置とサイズ」のグループ内にあります。 「MDI調整」特性の詳細については、リファレンスマニュアルの「表示フォーム」の章を参照してください。 「MDI調整」についてのサンプルは、013_fit_to_mdi.exe からダウンロードできます。

● カラム特性の「デフォルト記憶型式」

テーブルリポジトリの「カラム特性」で、「デフォルト記憶型式」という特性が追加になりました。この値が Yes になっていると、そのカラムのDBMS上での格納形式とサイズとは、開発時には決まらず、カラムの特性と、利用しているDBMSゲートウェイとから自動的に実行時に決定されるようになります。この特性を利用することにより、異なるDBMSへのアプリケーションの移行が容易になります。 「デフォルト記憶型式」特性は、「カラム特性」の「格納形式」グループにあります。値としては、Yes （記憶型式を実行時に動的に決定する）、No （開発時に決めてしまう。従来の方法と同じ）の二つがあります。デフォルト値は、テーブルリポジトリに新たに作成されたカラムの場合には Noで、埋め込みSQLタスクの変数の場合には Yes です。 過去のバージョンからリポジトリ入力する場合には、指定されている「格納形式」「サイズ」の値と、項目のデータ型とリポジトリ入力する時点で定義されているDBMSのゲートウェイから計算されるものとが比較され、一致していれば「デフォルト 記憶型式」が Yes に設定され、一致しなければ No に設定されます。

新しい I/O メディア： 「項目」

タスクの「入出力ファイル」テーブルの「メディア」パラメータとして、新たに「項目」が追加されました。これは、BLOB項目へのテキストデータの入出力を可能にするもので、主に XML データを複数のタスクにまたがって扱う場合などに用いることができます。 「項目」メディアタイプについては、リファレンスマニュアルの「プログラム」の章を参照してください。

新しいイベント： 「取消終了」

新しいイベント「取消終了」は、「C:取消」と「E:終了」イベントとを組み合わせたものです。 「取消終了」イベントについての詳細は、ヘルプファイルを参照してください。

印刷マージンの機能

GUI形式印刷の場合、プリンタテーブルの「キュー」欄に印刷マージンのパラメータを設定することで用紙の周りの余白を設定することができるようになりました。この設定により、用紙の左上隅から指定した左上マージン値を移動した位置を原点として、設定した余白でフォームのレイアウトを印字するようになります。 本指定がない場合には、プリンタモデルの印字可能領域の左上を原点として、フォームレイアウトを印字します。 パラメータはスタイル設定ユーティリティまたは、プリンタ設定ユーティリティで設定ができます。 設定方法の詳細に関しましては、ユーティリティの使用方法 (UTIL.HLP） をご覧ください。

ブラウザクライアントの機能

サーバ側とクライアント側の処理方式の改善

ブラウザクライアントにおける Magic の処理(コマンドや関数の実行)は、処理をどこで行うかにより、次の三つに分類できます：

  • クライアント： 処理はクライアント側でのみ行うことができるもの。CALLJS関数などがクライアント側関数の例です。
  • サーバ： 処理はサーバでのみ行うことができるもの。INIGET 関数などがサーバ側関数の例です。
  • クライアントとサーバ： 処理はクライアント、サーバいずれでも実行可能なもの。

Ver9.30J SP5でのブラウザクライアントモジュールは、上記のカテゴリに属する処理を行う上で、クライアントとサーバの間の通信が最小になるように最適化して、実行を行うようになっています。

以前のバージョンでは、ブラウザクライアントモジュールは、サーバ側の処理を行うたびに、Magicのコマンド単位でサーバと通信を行い、同期を取りながら処理を進めていました。この方式では、処理フローでサーバ側の処理が続く場合でも、ひとつひとつのコマンドの実行のたびにクライアントとサーバの間の通信が発生し、オーバーヘッドがありました。

Ver9.30J SP5では、サーバ側のエンジンは、処理フローのコマンドをチェックして、サーバ側で実行できる処理が続く限り、ブラウザクライアントモジュールとの通信を行わずに実行を続け、クライアントでしか実行できない処理に行き着いたとき、あるいはひとつのハンドラの処理が最後まで行ったときに 初めて、クライアントに制御を返します。これにより、クライアントとサーバの間の通信オーバーヘッドを最小にすることができます。

Magicの開発モードでは、クライアントのみ、あるいはサーバのみで実行する処理があれば、処理テーブル上でコマンド単位に「S」(サーバ側処理)、「C」(クライアント側処理) の印が表示されます。いづれの印もついていない場合には、サーバ側あるいはクライアント側いずれでも実行できるものを示しています。

プログラムを開発する際には、プログラムロジックが許す限り、「S」あるいは「C」が連続して続くような形に処理フローを定義するようにしてください。これにより、通信なしで連続して実行できるコマンドの数が増えるので、実行効率が良くなります。

「S」あるいは「C」の印の表示をするかしないかは、「オプション」→「処理情報を表示」メニューによりトグルすることができます。「処理情報を表示」がオンになっている場合には、 それぞれ下記のように表示されます。

場所 | 表示の単位
処理テーブル | コマンド
式テーブル | 式
関数一覧 | 関数

また、以下のように実行の場所(クライアント、あるいはサーバ)に不整合がある場合、プログラムチェック時にエラーになります。

  1. クライアントのみで実行可能な関数をタスク前処理に設定した場合。タスク前処理では常にサーバで処理が行われます。
  2. 一つの式にクライアントの関数とサーバの関数を混在して設定した場合。
    例： CALLPROGURL ( SYS(), 'Prog1', '' )

ブラウザクライアントモジュールの国際化

Ver9.30J SP5から、MGBCL930_05xxx.cab というCABファイルがブラウザクライアントモジュールに追加されていますが、これには国別の言語でのエラーメッセージの文字列が定義されています。日本語版では、日本語(xxxの部分がJPN)と、英語 (ENG) とが提供されています。 エラーメッセージの言語はアプリケーションサーバが使っているMGCONSTWファイルの言語で表示され ます。

新しいツールイメージファイル

以前のバージョンでは、ブラウザクライアントで使えるイメージファイルとして、MG_VCR と MG_EDIT とがありました。これらのイメージファイルをHTMLテンプレートの中に入れることにより、良く使う「次レコード」「次ページ」などの内部イベントを発生させることができました。

Ver9.30J SP5 では、これに加えて、次の三つのイメージファイルが追加されています。 インストーラは、これらのイメージファイル(JPEG形式)を、インストール時に「Javaスクリプトの転送先ディレクトリ」で指定されたディレクトリにコピーします。

ファイル名 | name 属性の指定 | クリック時の機能
MG_CANCEL.JPG、mgcalcel.jpg | MG_CANCEL | 「C:取消」イベントが発生
MG_EXIT.JPG、mgexit.jpg | MG_EXIT | 「E:終了」イベントが発生
MG_QUIT.JPG、mgquit.jpg | MG_QUIT | 「取消終了」イベントが発生

HTMLテンプレートファイル上では、次のような形で利用します。(ここで「/Magic93Java」というのは、インストール時に「Javaアプレットの転送先ディレクトリエイリアス」で指定された仮想ディレクトリ名です。インストールの設定に合わせて変更してください)。

<IMG SRC="/Magic93Java/MG_CANCEL.JPG" name="MG_CANCEL">

ブラウザクライアントにおける IFRAME コントロールのサポート

Ver9.30J SP5では、ブラウザクライアントのテンプレートファイルに IFRAME タグを使うことができるようになりました。IFRAME コントロールの使い方については、リファレンスマニュアルの「表示フォーム」の章を参照してください。

ブラウザクライアントにおける「不特定」(Opaque) コントロールのサポート

Ver9.30J SP5では、ブラウザクライアントタスクのテンプレートファイル上で、Magicが認識しないタグを使った要素であっても、「不特定」タイプのコントロールとして扱うことができるようになりました。Magicはタグの中身は理解しませんが、可視、有効、CSS関係の特性、マウス関係のイベント発生時のハンドリング、位置、サイズなどを設定できます。 「不特定」コントロールについては、リファレンスマニュアルの「表示フォーム」の章を参照してください。

MGExternalEvent() 関数(JavaScript) と「外部イベント」

以前のバージョンでは、ブラウザクライアントタスクで、Web ブラウザ側からイベントを発生させて、Magicに認識させることはできませんでした。このため、たとえば、Webブラウザで JavaScript などにより項目の値を変更しても、Webブラウザ上では表面的に値が変更されているように見えても、それが Magic には反映されませんでした。

Ver 9.3 SP5 では、HTML 上での JavaScript で MGExternalEvent() 関数により、Webブラウザから Magic に向けて「外部イベント」というイベントを発生させ、Magic のイベントハンドラでそれをキャッチすることにより、Web ブラウザ側から Magic にアクションを起こさせることができるようになります。「外部イベント」には任意のパラメータを付加することができるので、JavaScript から Magic に任意のデータを渡すことが可能になります。

MGExternalEvent() と「外部イベント」のサンプルは、ext_event.exe からダウンロードすることができます。

関数

メール関数

メール機能をサポートする関数です。メールの送信には SMTP をサポートし、受信には POP3 と IMAP をサポートします。各関数の詳細は、リファレンスマニュアルの「関数」の章をご覧下さい。

関数名 | 機能
MAILCONNECT | メールサーバへの接続
MAILDISCONNECT | メールサーバとの接続を切断
MAILERR | メール関数のエラーメッセージを取得
MAILFILESAVE | 添付ファイルの保存
MAILMSGBCC | BCC アドレスの取得
MAILMSGCC | CC アドレスの取得
MAILMSGDATE | 日付／時刻の取得
MAILMSGDEL | メッセージの削除
MAILMSGFILE | 添付ファイル名の取得
MAILMSGFILES | 添付ファイル数の取得
MAILMSGFROM | FROM アドレスの取得
MAILMSGHEADER | ヘッダ情報の取得
MAILMSGID | メッセージID の取得
MAILMSGREPLYTO | REPLAY TO アドレスの取得
MAILMSGSUBJ | 件名の取得
MAILMSGTEXT | メッセージ内容の取得
MAILMSGTO | TO アドレスの取得
MAILSEND | メールの送信
MAILBOXSET | メールボックス中のメッセージを検索
MAILLASTRC | 直前に実行した MAIL 関係の関数の戻り値を取得

メール接続タイムアウト、メール処理タイムアウト

メール機能のタイムアウトに関するパラメータ（動作環境／メール接続タイムアウト、メール処理タイムアウト）が追加されました。詳細はリファレンスマニュアル 第２章 「設定」 をご覧下さい。

その他の関数

以下の関数は、9.3SP3aではベータ扱いでしたが、9.3 SP5 で正式対応となります。

VARCURRN、VARINDEX
EVALSTR
HANDLEDCTRL
CLIPADD、CLIPWRITE、CLIPREAD

上記関数について、以下の制限事項が知られています。

  • EVALSTR： CALLPROG関数でコールされたプログラムの戻り値に設定すると、動作しないことがある。 コールコマンドでは可能 (6166)
  • HANDLEDCTRL： コントロールレベルで実行しても、値が返らない。(760484)

Ver9.30J SP5でのベータ機能

以下の関数・機能は、Ver9.30J SP5に含まれていますが、現段階では日本語環境での検証が十分に行われていないため、ベータ機能として、サポート対象外とさせていただきます。将来のバージョンでサポート予定ですので、ご意見、お気づきの点などありましたら、ベータ機能評価レポートに記入して、メールで japan_v9beta@magicsoftware.com までお送りください。

Interstage サポート

富士通株式会社のアプリケーション・サーバソフトウェア Interstage Application Server で Magic のアプリケーションをEJB（ステートレスのセッションBean）として呼び出すことが可能になります。 Magic のコンポーネントビルダを使用して、JARファイル、DDファイル、テストアプリケーションを生成します。詳細はリファレンスマニュアル（23章 J2EEとの連携）、開発者ガイド（20章 J2EEとの連携）をご覧下さい。

Ver 9.3SP5 では、次の制限事項があることが知られています。

  • long 型を返すMagic J2EEコンポーネントを作成したとき、32bitを超える大きな数が戻り値になったとき、数値が正しく扱われなかったり、Javaエラーが発生する。(755453)

リモートフローモニタ

Magicのフローモニタと同様の機能を持ちますが、Magicアプリケーションサーバとは異なるマシン上でもモニタすることが可能です。詳細については、リファレンスマニュアル22章「ユーティリティ」の「フローモニター/デバッガ」→「リモートフローモニタ」を参照してください。

関数

以下の関数は、実装されていますが、ベータ機能扱いとさせていただきます。

RQRTCTXS、RQRTCTX、RQCTXTRM、RQCTXINF
XMLCNT、XMLEXIST、XMLFIND、XMLGET

上記のXML・・・関数について、以下の注意事項が知られています。

  • encoding の指定を常に行うようにしてください。encoding の指定が無い場合に、タグ名にDBCSが使えないなどの問題が起こることがあります。
  • XMLのデータ中に &lt; &gt などがあっても、デコード(「<」、「>」文字への変換)はされません。

XML Webサービス (SOAP)

  • Ｗｅｂサービス コンシューマ（クライアント）： 拡張されたコール処理コマンドにより、Webサービスを呼び出すことができます。詳細は、リファレンスマニュアル（８章処理コマンド）を参照してください。
  • XML Ｗｅｂサービス プロバイダ（サーバ）： Ｗｅｂサービス記述言語（WSDL）を使用してアプリケーションを公開することによるＷｅｂサービスプロバイダになることができます。WSDLは、コンポーネントビルダにより生成します。

制限事項： 9.3 SP5 では、XML Webサービスに以下の制限事項があります。

  1. キャラクタセットとしては UTF-8 を指定してください。UTF-16 には対応していません。
  2. メソッド名、パラメータ名には日本語を使えません。
  3. エラーメッセージも日本語に未対応です。

XML コンポーネント ジェネレータ (XCG)

Ver9.30J SP5から、XMLスキーマの定義されている XML ファイルを Magic から扱うことができるようになりました。

XMLコンポーネントジェネレータは、開発モードで「オプション」→「コンポーネント」→「XMLジェネレータ」メニューを選択して起動します。

注意：

  • SP5より前のMAGIC.INIで実行する場合、以下のエントリを追加してください。これが定義されていないと、「データベース 'Component' がありません」というエラーが出ます。
    [MAGIC_DATABASES]
XCG = 1, , , XCG\, , , , , MagicRecordLock, ChangeFileInToolkit, CheckDefin+
ition, CheckKey, FileLocks, , , , NoCheckExist, 0, , NoXATrans, NoAS400Srvr+
Sort,
  • MAGIC.INIのMergePrefix、およびMergeSuffix の設定は無効にして下さい。
  • xsdファイルに、UTF-8以外の２バイト文字を含める場合、キャラクターセットを指定する必要があります。 例えば、 ShiftJISコードの場合、1行目に以下のような記述を追加します。
     <?xml version="1.0" encoding="Shift_JIS"?>

参考： XMLコンポーネント ジェネレータについては、リファレンスマニュアル第20章 「XMLコンポーネントジェネレータ」を参照してください。

その他

Interlude 評価版のバンドル

ボーナスパックに、株式会社マイクロリンク社の Interlude 評価版をバンドルしました。


Ver9.30J SP5 の改善内容

ここでは、以前のバージョンでの不具合・制限事項に対応したものをあげてあります。

モデル

  • 追加したモデル項目がフォルダの変更によってモデル番号が変更された場合、そのモデルを設定したカラムとの関連性が失われる件に対応しました。(0746866)

  • SQL系データベースのテーブルのカラムにモデルを設定している場合、カラムを追加してテーブル変換を実行すると、カラム特性のデフォルト/NULL、格納形式、SQLのモデルの継承が外れる件に対応しました。 (1000600)

  • モデルを設定したカラムに対して、カラム特性のモデル欄の右隣にあるXボタンを押して継承を外し、更にモデルを0でクリアしたとき、モデル上でデフォルトと同じ値として定義されていたパラメータは、継承を保つように変更しました。(1000637)

テーブル

  • あるテーブルのカラムの追加と削除を行ってから、別のテーブルをこのテーブルに上書きすると、カラムのISNが同じになる件に対応しました。(0992326)

メニュー

  • リポジトリ出入力を行うと、メニュー特性に設定したパラメータがずれてしまう件に対応しました。(0751743)

コンポーネント

  • [コンポーネント特性／即時有効]をチェックしない場合、そのコンポーネントを利用するプログラムが正しく動作しない件に対応しました。(768085)
  • コンポーネントで作成したプッシュボタンのモデルを使用したオンラインタスクで、タスクツリーから親タスク作成を実行すると、異常終了する件に対応しました。(1000606)
  • メインプログラムの変数を任意のプログラムのフォームの式に設定し、それをコンポーネントとして他のアプリケーションから実行した場合、「不正な変数です」のエラーが発生する件に対応しました。 (0307203)
  • コンポーネントのテーブルのインデックスからクロスリファレンスを実行しても、結果が得られない件に対応しました。(0747287)
  • コンポーネントのエラーが発生した場合、Component.logに出力していたメッセージを、フローモニター及びメッセージボックスで表示するようになりました。 この機能を無効にする場合は、MAGIC.INIの以下のパラメータを設定します。(1000634)
    [dbMAGIC_ENV]
ShowComponentError = N

プログラム一般

  • コンポーネントで作成したプッシュボタンのモデルを使用したオンラインタスクで、タスクツリーから親タスク作成を実行すると、異常終了する件に対応しました。(1000606)
  • メインプログラムにおいて、リンク終了コマンドから複写登録でリンクセレクトコマンドを選択すると、不正なパラメータ項目が設定され、異常終了することがある問題に対応しました。(305002)
  • オンラインプログラムでレコードのマルチマーキングを行い、「末尾にマーク」のイベント実行を行うと、動作が不安定になることがある問題に対応しました。(764587)
  • ログオンダイアログを開いて、パスワードが登録されていないユーザ名でログオンした場合、「不正なパスワードです」というエラーで一度拒否されることがある問題に対応しました。（1000571）
  • １つのプログラムの中で、戻り値の設定したコールコマンドとCALLPROG関数を定義した場合、実行時に異常終了する問題に対応しました。(0747439)
  • イベント可パラメータをNoに設定したバッチタスクを実行した場合、バッチイベント間隔の秒数ごとに画面がリフレッシュしない件に対応しました。(0750783)
  • Windows XP上または、MS-IME2002をご使用の場合、テーブルコントロールのスクロールバーを上/下矢印ボタンを押した時にスクロールが止まらない問題に対応しました。(003797)
  • かな入力モードの場合、ラインモードのプログラムにおいて、レコードメインの先頭からバッチタスクを実行した後、テーブルのスクロールバーを押し続けると、スクロールが止まらなくなることがある件に対応しました。(1000595)
  • バッチタスクを実行して「実行しますか？」の標準ダイアログを表示した時、マウスやキーボードで、プルダウンメニューのオプション(O)が選択できない件に対応しました。(1000607)
  • ソートテーブルに変数と実項目をソート項目に設定したプログラムを実行すると、「インデックスが重複しています」のエラーメッセージが表示されることがある件に対応しました。(1000613)

SQL共通機能

  • テーブルリポジトリに異なるデータベースのテーブルが混在していると、SQLコマンドのアシスト画面で、テーブル欄をスクロールすると、異常終了する件に対応しました。(1000620)

リポジトリ入出力

  • リッチテキストのスタイルをWindows立体に設定したVer8のアプリケーションを、Ver9にリポジトリ入力した場合、凹立体に変更するように対応しました。(1000575)

フォーム・印刷機能

  • GUI形式のテーブルを印刷すると、レコード罫線が正しく出力されないことがある件に対応しました。(1000611)

フォーム

  • コントロールパレットのテキストをクリックし、更に右クリックメニューで、複数行編集Yesに設定したスタティックコントロールを選択してフォームに配置すると、その高さと幅が0に設定される件に対応しました。(0937663)
  • フォームエディタ上で、エディットコントロールの上に、ラインコントロールを重ねた場合、Zオーダの値が変更される件に対応しました。(1000614)

ブラウザクライアント

  • Web ブラウザを実行するOSが Windows 98 の場合、ラジオボタンの値をマウスで設定後、次項目に移動すると元の値に戻ってしまう問題に対応しました (1000619)。
  • メインプログラムの論理型変数をHTMLコントロールに設定した場合、そのプログラムをフレームから実行すると正しく動作しない件に対応しました。(0445301)
  • バッチタスクから実行したエラーウィンドウに表示される文字数の制限がなくなりました。(0719395)
  • モーダルタスクのプログラムを続けてコールすると、最初の画面のクローズ時に、同じ画面を再度オープンしようとする件に対応しました。(0984504)
  • サブフォームで新規レコードを登録後、メインフォームに戻って新規レコードを登録すると、サブフォームで実行されたSTAT(0,'C'MODE)がFALSEを返す件に対応しました。(1000616)
  • 登録モードで、キーボードからの入力を行わずに終了すると、「止」=Yesの項目更新コマンドがタスク後処理で取り消される件に対応しました。(1000623)
  • 自動ヘルプを呼び出すプログラムを複数のブラウザから同時に実行すると、不定期に異常終了する件に対応しました。(1000631)

サーバ機能

  • バックグラウンドモードで、OLE関数が正しく実行できないことがある件に対応しました。(0979961)
  • マルチCPUのマシンで、アプリケーションサーバ、およびMRBを実行した場合、動作が不安定になる件に対応しました。(1000592)

参考： もしマルチCPU環境で動作不安定が見られる場合には、 以下のような回避策を検討してください。

  1. Magic Application Serverの場合は、設定/動作環境/アプリケーションサーバの最大並行リクエスト数（MaxConcurrentRequests）を１にし、複数インスタンスでご使用ください（例：５スレッド版の場合、１スレッド×５インスタンス）。
  2. MGREQ.INIに以下の設定を行ってください。 この設定により、Magic サーバエンジンが、特定のCPUをランダムに選んで、そのCPUだけで動作するようになります。ただし、それにより、マルチCPU上でマルチスレッドを動かすことによるパフォーマンスのメリットが減ることがあります。
    [REQUESTER_ENV]
SpecialAffinity = Y


Ver9.30J SP5 の動作変更

親タスクのイベントハンドラから呼び出されたタスクのウィンドウの位置

以前のバージョンでは、親タスクのイベントハンドラから呼び出されたタスクのウィンドウは、親タスクから直接呼び出されたタスクと同じように扱われ、イベントを発生したタスクから呼び出したタスクのようには扱われませんでしたが、これは正しい扱いではありませんでした。

Ver9.30JSP5では、このような場合には、親タスクのイベントハンドラにより呼び出されたタスクは、イベントを発生した子タスクがコールコマンドを使って呼び出す場合と同様の扱いをするようになりました。

この変更により、呼び出されるタスクのフォームの「子ウィンドウ」が「Yes」になっている場合には、表示される位置が変わることがありますので、このような構造のプログラムになっている場合には、表示位置を確認してください。

この変更点に関するサンプルアプリケーションは、020_child_windows.exe からダウンロードすることができます。

フローティングウィンドウの初期位置

以前のバージョンでは、「フローティングウィンドウ」が「Yes」のGUI形式フォームは、「左辺位置」「上辺位置」の設定にかかわらず、つねにディスプレイの中央に表示されていました。フローティングウィンドウを中央に表示するのではなく、「左辺位置」「上辺位置」の設定を有効にするには、MAGIC.INI ファイルに以下の設定を行う必要がありました。

[MAGIC_SPECIALS]
SpecialCenteredFloatingWindow = N

Ver9.30JSP5では、このフラグのデフォルト値が N に変更されました。すなわち、MAGIC.INI で設定しなかった場合のデフォルトの動作は、フローティングウィンドウは「左辺位置」「上辺位置」の設定に従って表示され、画面中央には表示されません。 もし、以前のバージョンと同様に、常にフローティングウィンドウを画面中央に表示させたい場合には、上記フラグを Y に設定します。

[MAGIC_SPECIALS]
SpecialCenteredFloatingWindow = Y

ウィンドウの「モーダル」と「フローティング」パラメータ

以前のバージョンでは、フォーム特性で「モーダルウィンドウ」=「Ｙes」にすると、「フローティングウィンドウ」が「No」に設定してあっても、「Yes」の時と同じ動作になってしまいました。

Ver 9.30 SP5 では、「モーダルウィンドウ」=「Yes」であっても、「フローティング」にはならず、モーダル=Nと同じ位置に表示されるようにしました。（68026)

この機能を無効にして、SP3a以前と互換性を保つためは、MAGIC.INIに以下のパラメータを設定します。(1000627)

[dbMAGIC_ENV]
ModalIsFloating = Y

このフラグのデフォルト値は「N」(モーダルウィンドウをフローティングウィンドウとして扱わない)です。

アプリケーションサーバでの常駐テーブルの共有

以前のバージョンでは、バックグラウンドモードのアプリケーション サーバ エンジンはエンジンのコンテキストを作成するたびに、常駐テーブルをロードしていました。

Ver9.30JSP5では、ひとつのアプリケーション サーバ のインスタンス内では、常駐テーブルは一度だけ読込専用でオープンし、読み込みされ、すべてのコンテキストで共有されるようになりました。これにより、新しい コンテキストを作成する場合のオーバヘッドが減少し、必要なメモリ資源量も減りました。

Active-X コントロールのロードと利用

以前のバージョンでは、Active-X クラスを表示するように設定された OLE コントロールは、Magic はOLE コントロールとして扱い、Active-X としては扱っていませんでした。このため、次のような問題がありました：

  1. Active-X コントロールは、自動的にはロードされず、いつも「オブジェクトの挿入」メニューからロードするか、あるいはActive-Xのパーシステント データを格納しているBLOBデータを更新する必要がありました。
  2. Magicの実行エンジンがActive-Xクラスを OLE コントロールとして扱うことにより、異常終了が発生することがありました。
  3. エンドユーザが Active-X コントロールのインターフェースをアクティベートすることができませんでした。

これらの問題は、Ver9.30JSP5 で解決されています。

注意： Active-X のパーシステントデータを含むBLOBデータにより初期化されていた Active-X コントロールは、Ver9.30J SP5では使うことができません。「項目更新」コマンドを削除する、BLOB変数を更新するファイルを削除する、などの方法により、初期化処理を削除してください。

新規作成のバッチタスクのデフォルト設定

以前のバージョンでは、「メニュー使用」および「ウィンドウ表示」オプションのデフォルト値は共に Yes でしたが、実際には、ほとんどのバッチタスクでこのオプションを No に設定変更する必要がありました。

Ver9.30J SP5 では、新規に作成されるバッチタスクにおいて、これらのオプションのデフォルト値が No になっています。

注意： この変更により、テーブルリポジトリのAPGによって、出力／入力／印刷を実行した場合、実行確認ウィンドウ、および実行中の画面が表示されなくなりましたのでご注意ください。

ISAM DBMS に対する外部結合リンクのサポート

リンクコマンドの「O=外部(外部結合)」オプションは、本来、RDBMS に対してだけ意味のあるオプションなので、以前のバージョンでは、ISAMテーブルに対してこのオプションを許していませんでした。

Ver9.30J SP5 では、ISAM テーブルに対しても、「O=外部」オプションを指定できるようになりました。この場合、実行時には「Q=照会」オプションのリンクコマンドと同様の動作をするようになります。

ISAMテーブルに対しても「O=外部」オプションを許すことにより、アプリケーションの移植性が高まりました。

タスクを閉じるときのフォームの表示

「登録」モードのタスクが終了した後もウィンドウを開いたまま残しておきたい場合には、各項目の値をデフォルト値あるいは「代入」式で指定した式により評価する ことができるようになりました。 これは、MAGIC.INI の中で、次のフラグを設定することにより制御できます。

[MAGIC_SPECIALS]
SpecialPaintFormInCreate= Y/N

このフラグが Y の場合には、全ての変数項目の代入式とデフォルト値は計算され、また、コントロールの値として式が指定されている場合には、その式が計算されます。 このフラグが N の場合には、これらのデフォルト値や式は評価されません。 このフラグのデフォルト値は、N です。

ブラウザクライアントタスク用のアプレットの統合

Ver9.30J SP3a で、ファイアウォール環境でアクセス拒否エラーが出る問題に対応するために、以下のような特別なアプレットおよびJavaScriptファイルが提供されていました。

JavaApplet | MGBC930_03AJ_FW01.CAB または MGBC930_03AJS_FW01.CAB
JavaScript | MGBC930_03AJ_FW01.JS

Ver9.30JSP5では、これらのアプレットは共通なひとつのアプレットに統合されました。


Ver9.30J SP3a の新機能

アプリケーションインストールユーティリティ

今まで、Magic アプリケーションのエンドユーザーは、Magic アプリケーションをインストールする前にMagic の実行環境をインストールする必要がありました。アプリケーションインストールユーティリティによって、Magic アプリケーションのインストール処理をカスタマイズしてエンドユーザに提供することができるようになりました。 詳細は、CD-ROMのApplication Installation Utilityフォルダを参照してください。

注意： アップデートモジュールには、添付されていません。

日本語版で未サポートの機能

  • リモートフローモニター
  • インターナショナル版で拡張された、以下の関数はサポートされていません。
    VARCURRN、VARINDEX
    EVALSTR
    HANDLEDCTRL
    RQRTCTXS、RQRTCTX、RQCTXTRM、RQCTXINF
    HTTPGET、HTTPPOST
    CLIPADD、CLIPWRITE、CLIPREAD
    XMLCNT、XMLEXIST、XMLFIND、XMLGET

ベータ機能

以下の機能は、今回のリリースではベータ機能として扱われます。ベータ機能に対するサポートは、マジックソフトウェア・ジャパン株式会社及びMagic Software Enterprises Ltd. が提供するサポートサービスには含まれません。
ベータ機能に関する、評価レポート、ご意見、ご感想は、e-mail にて、 japan_v9beta@magicsoftware.com までお送りください。

メール関数

メール機能をサポートする関数が追加されます。メールの送信には SMTP をサポートし、受信には POP3 と IMAP をサポートします。各関数の詳細は、リファレンスマニュアル（９章関数）をご覧下さい。

関数名 | 機能
MAILCONNECT | メールサーバへの接続
MAILDISCONNECT | メールサーバとの接続を切断
MAILERR | メール関数のエラーメッセージを取得
MAILFILESAVE | 添付ファイルの保存
MAILMSGBCC | BCC アドレスの取得
MAILMSGCC | CC アドレスの取得
MAILMSGDATE | 日付／時刻の取得
MAILMSGDEL | メッセージの削除
MAILMSGFILE | 添付ファイル名の取得
MAILMSGFILES | 添付ファイル数の取得
MAILMSGFROM | FROM アドレスの取得
MAILMSGHEADER | ヘッダ情報の取得
MAILMSGID | メッセージID の取得
MAILMSGREPLYTO | REPLAY TO アドレスの取得
MAILMSGSUBJ | 件名の取得
MAILMSGTEXT | メッセージ内容の取得
MAILMSGTO | TO アドレスの取得
MAILSEND | メールの送信

メール接続タイムアウト、メール処理タイムアウト

メール機能のタイムアウトに関するパラメータ（動作環境／メール接続タイムアウト、メール処理タイムアウト）が追加されます。詳細はリファレンスマニュアル（２章設定）をご覧下さい。

Ｗｅｂサービス サポート

Ｗｅｂサービス コンシューマ（クライアント）

拡張されたコール処理コマンドにより、Webサービスを呼び出すことができます。詳細は、リファレンスマニュアル（８章処理コマンド）を参照してください。

Ｗｅｂサービス プロバイダ（サーバ）

Ｗｅｂサービス記述言語（WSDL）を使用してアプリケーションを公開することによるＷｅｂサービスプロバイダになることができます。WSDLは、コンポーネントビルダにより生成します。

環境

  • HTTP サーバおよびMagicのインターネットリクエスタが動作する環境が必要です。
  • mgrqsoap.dll ファイルをロードするために、Mgreq.ini ファイルのMGSRVR06 行からセミコロンを取り除いてください。
  • 自動的にサーバ名”DEFAULT SOAP SERVER”、サーバタイプ”SOAP”が追加されます。

開発

  • 公開したいプログラムをバッチタスクで作成し、公開プログラム名を設定します。
  • コンポーネントビルダを起動し、クラス　"Web Service"を選択し、公開したいプログラム、パラメータ、戻り値を定義します。
  • CTRL+Iにより、WSDLを生成します。コンポーネント特性で指定されたパス上にWSDLファイルが作成されます。

制限事項

  • Webサービスで使用する文字コードは、UTF-8を使用しています。プログラム名やパラメータ名には、現在全角文字や半角カタカナは使用できません。パラメータは、文字型、数値型、論理型のパラメータ項目のみ使用できます。データは、シフトJISコードに存在する文字（シフトJISへ変換可能な文字）のみ使用できます。

Ｉｎｔｅｒｓｔａｇｅ（Ｊ２ＥＥ） サポート

Ｉｎｔｅｒｓｔａｇｅ Ａｐｐｌｉｃａｔｉｏｎ Ｓｅｒｖｅｒ（J2EE環境）でMagicのアプリケーションをEJB（ステートレスのセッションBean）として呼び出すことが可能になります。

Magic のコンポーネントビルダを使用して、JARファイル、ＤＤファイル、テストアプリケーションを生成します。詳細はリファレンスマニュアル（23章 J2EEとの連携）、開発者ガイド（20章 J2EEとの連携）をご覧下さい。

「Interstage」は、富士通株式会社のアプリケーション・サーバソフトウェアです。


Ver9.30J SP3a の改善内容

設定

  • [DBMS／NULL]をYesに設定しても、文字型以外のカラムに対して、[カラム特性／NULL値可]のデフォルトがYesに設定されない件に対応しました。（307624）

モデル

  • ソーステーブルに設定されたテーブルを移動して、チェックを実行すると異常終了することがある件に対応しました。（165126）

テーブル

  • インデックスをプライマリキーに変更すると、外部キーの参照テーブルが0になる件に対応しました。（745429）
  • テーブルリポジトリで、追加、削除、テーブルのリネーム操作等を行った後、テーブルチェックを実行すると、異常終了する場合がある件に対応しました。（767820）

コンポーネント

  • コンポーネントの複数のエントリに、同じアプリケーションを設定した場合、Ctrl+Tで実行モードに切り替えると異常終了することがある件に対応しました。（1000578）
  • コンポーネントプログラムの数が多い場合、コールコマンドのプログラムの選択時にレスポンスが遅くなる件に対応しました。(1000588)

プログラム一般

  • リモートコールダイアログのプログラムの式欄でズームし、保存せずに終了すると異常終了する件に対応しました。（309179）
  • メインテーブルを変更すると、リンクテーブルに対するキャッシュ設定がすべてYesになる件に対応しました。（746543）
  • 検証ハンドラを定義したコントロールにカーソルをおき、テーブルの先頭行アクションや行末アクションを実行しても、ハンドラテーブルのコマンドが実行されない件に対応しました。（748394）
  • オンラインプログラムの実行時に、テーブルに配置されたデータコントロールでカラムソートを行うと異常終了する件に対応しました。（862223）
  • 実行モードで関連ヘルプ(F1キー)が無効になる件に対応しました。（975771）

SQL共通

  • NULL が入っている項目に、データを入力しようとしても、最初の1文字しか入力できない件に対応しました。（280765）
  • リンク条件がNoの結合(外部結合)リンクが設定され、かつメインテーブルのセレクトコマンドに範囲、または位置付けが設定されていると、実行時に異常終了する件に対応しました。（286108）
  • SQLコマンドの結果の変数を子タスクで表示すると、データが「エディット」と表示される件に対応しました。（766506）

ユーティリティ

  • ファイルリテラルが複数指定されている定義式（例. DBRECS('1'file,IF（A,DBNAME('1'file),'')) ）を設定したとき、テーブルリポジトリでそのリテラル値のテーブルで「検索と置換」を実行すると、異常終了する件に対応しました。（1000579）

リポジトリ入出力

  • コンポーネントアプリケーションがないか、リネームされている状態で、コンテナアプリケーションをリポジトリ入力すると、Magicが異常終了する場合がある件に対応しました。(1836/774873)
  • Ver8で作成されたテキスト印刷プログラムをVer9にリポジトリ入力すると、スタティックコントロールの線幅の値が、正しく引き継がれない件に対応しました。(1000585)

フォーム

  • モーダルウィンドウのタスクからオープンされた内部ヘルプが、常にタスク画面の後ろに表示される件に対応しました。（761055）
  • 数値型項目のチョイスコントロールのラベルについて、以下の問題に対応しました。(1000591)
    • 1番目の項目に文字のみの項目が設定できる。
    • 2番目以降の項目に0が設定できない。

HTMLフォーム

  • WindowsNTクライアントで、マージフォームの[フォーム特性/タグテーブル]を開き、「新しいタグを検索」ボタンをクリックすると異常終了する件に対応しました。（586200）

ブラウザクライアント

  • メインプログラムで定義されたイベントをタスク前処理で２回実行すると、parsing error が発生する件に対応しました。（1986）
  • ROLLBACK関数を実行後、最初と最後のレコードの表示が元に戻らない件に対応しました。（245040）
  • トランザクション開始がタスク前の場合、サブタスクでROLLBACK関数を実行して終了すると、異常終了する件に対応しました。（287114）
  • 登録モードでCtrlキーと組み合わせたショートカットキーを押した後、何も入力せずに下矢印キーを押すと１行作成される件に対応しました。（294012）
  • イベント実行コマンドで、強制終了=レコード/コントロールのユーザイベントを起動しても、実行されない件に対応しました。（298210）
  • 登録モードから修正モードに切り替えると、空白行が作成されることがある件に対応しました。（298835）
  • モーダルウィンドウに設定されたサブタスクが、メインウィンドウの上に表示されている時にXボタンで終了すると、IEのページエラーが発生することがある件に対応しました。(371539)
  • 親子のタスクが起動されている時にROLLBACK関数を実行すると、サブタスクでエラーが発生する件に対応しました。（755510）
  • あるブラウザタスクから、同じウィンドウの別フレームを指定してブラウザタスクをコールし、[設定／動作環境／コンテキスト非稼動タイムアウト]の値を超えるまで放置すると、IEがハングアップする件に対応しました。（745738）


Ver9.30J SP3a の動作変更

ライセンスマネージャの変更

複数のネットワークカードを持つＰＣの場合に、ライセンスサーバで使用するホストＩＤを選択できるようになりました。ホストＩＤの表示、ライセンスの追加で使用するネットワークカードを確認・選択します。


Ver9.30J SP3 の新機能

サーバ機能

MRBのロードバランシングメカニズム強化

MRBが、利用可能なプロセス間で、効率的なロードバランシングを提供できるように、メカニズムが改善されました。これによって、各リクエストは、最もパフォーマンスのよいアプリケーションエンジンに配分され、二つ以上のエンジンが存在する環境でブラウザクライアントを実行する場合は、コンテキスト数が最小になるようにリクエストを配分します。
更に、動作環境／ロードバランシングの優先度のパラメータによって、各アプリケーションサーバに配分の優先度を制御することができます。

ブラウザクライアント

メインウィンドウの置換

メインプログラムのコールコマンドによって、現在のタスクを終了して、同じウィンドウに新しいプログラムを表示することが可能になりました。
メインプログラムにユーザイベントハンドラでコールコマンドを設定し、かつコール特性／出力フレームに _top を設定します。親のプログラムでは、メインプログラムで定義されたユーザイベントを、イベント実行コマンドで実行します。
サンプル（英語）： Overriding_A_Top_Browser_Task.exe

キーボードでのサブフォームへのアクセス

ブラウザクライアントのサブフォームは、キーボード（Tab／Shift+tabキー）を使ってアクセスすることが可能になりました。この機能を有効にするには、新しく追加された、ブラウザフォーム／HTMLコントロールテーブル／コントロール特性／タブで移動パラメータを「Yes」に設定します。「No」の場合は、マウスクリックのみでの移動になります。
デフォルト値は、新規の場合は「Yes」、以前のバージョンから移行した場合は「No」です。
詳細は、リファレンスの１１章「表示フォーム」を参照してください。
サンプル（英語）： Keyboard_Access_Subforms.exe

CSSのサポート

ブラウザクライアントタスクで、HTMLコントロールに対して、ダイナミックにクラス名とスタイル名を設定することができます。詳細は、リファレンスの１１章「表示フォーム」の「ブラウザコントロール特性」の説明を参照してください。

サンプル（英語）：Styles_and_Classes.exe

XML 暗号化

ブラウザクライアントのXMLのソース部分は、暗号化されるようになります。これにより、タスクロジックと最初のデータは、ブラウザのソース表示等で閲覧することができなくなります。
この機能を有効にするには、MAGIC.INIに次のパラメータを設定します。

[MAGIC_SPECIALS]
SecureBrowserClient = Y

XMLデータの圧縮

ブラウザクライアントによって処理されるHTMLの中のXMLフォーマット部分を圧縮することが可能になりました。ただし、クライアント（ブラウザ）でデータを展開する必要があるため、タスクをブラウザでロードした後に実行される初期化処理が長くなることがあります。

MAGIC.INIに次のパラメータを設定することで機能を制御することができます。

[MAGIC_SPECIALS]
CompressBrowserXML = Y/N

パラメータが「Y」の時には圧縮を行い、「N」の時には圧縮を行いません。

注意： この機能を有効にするには、XML暗号化の設定を行う必要があります。

暗号化を行わずに圧縮のみ行う場合は、次のパラメータを設定します。

[MAGIC_SPECIALS]
CompressWithoutScrambleXML = Y

デフォルトはNoです。「Y」に指定した場合、SecureBrowserClient と CompressBrowserXML の設定は無効になります。

ヘルプアクションのサポート

ブラウザでF1/Ctrl+F1などのブラウザのヘルプアクションを発行すると、ヘルプイベントを起動することが可能になりました。

ヘルプアクションが起動されると、ヘルプ画面欄で定義されたURLが開かれ、ブラウザ自身のヘルプは開きません。もし、ヘルプ画面欄が指定されていない場合は、ウィンドウズのブラウザヘルプが開かれます。

ヘルプウィンドウの特徴には、以下のようなものがあります。

  • ヘルプウィンドウは、ヘルプページとして指定されたブラウザウィンドウです。
  • タイトルは常に「HTML ヘルプ」です。
  • ヘルプページは常に最終位置で開かれます。
  • タスク画面をクリックして戻った場合でも、ヘルプウィンドウは閉じません。
  • すべてのヘルプページは同じウィンドウに表示されます。つまり、二番目に開いたヘルプウィンドウは、既に開かれていたヘルプウィンドウに置き換わります。

サンプル（英語）：Browser_Client_Help_Activation.exe

ブラウザタスクからバッチタスクのコール

ブラウザクタスクから、インターネットリクエスタに出力するバッチタスクをコールして、出力先フレームで指定したブラウザへの出力が可能になりました。

後に続くバッチタスクの中で指定された出力先フレームは無視されます。ブラウザタスクで指定されたバッチタスクへのコールコマンドの出力先フレームだけが使用されます。

詳細は、リファレンスの２２章「分散アプリケーションのアーキテクチャ」の「ブラウザ形式のインターネットアプリケーション」の説明を参照してください。

サンプル（英語）：Browser_Client_Calling_Batch.exe.

ホイールマウスのサポート

テーブルコントロールで、ホイールマウス機能によりレコードスクロールが可能になりました。IE6.0でのみ可能です。

サーバ処理中の表示

ブラウザタスク実行時に、サーバ側で処理している間は、マウスカーソルは待ち状態の形状になります。サーバ側の処理が終了すると、通常の形状に戻ります。

サブフォームでのビュー再表示、位置付け

9.3SP2までは、サブフォームのパラメータが再計算されたとき、サブフォームは新しい範囲値に従って、そのビューをリフレッシュするだけでした。

9.30J SP3では、パラメータが再計算されたとき、新しい位置付値に従って再位置付けされるようになりました。

ブラウザクライアント－トランザクションモード－なし

新しいトランザクションモード「なし」がトランザクション定義に追加されました。例えば、トランザクション処理を必要としないメニュー処理等で使用します。
詳細は、リファレンスの１１章「プログラム」の「タスク」の説明を参照してください。

開発機能

子ウィンドウパラメータの式サポート

フォーム特性／子ウィンドウパラメータに式が設定できるようになりました。このパラメータは論理型で、タスク前処理の前に画面オープンする時点で評価されます。

ハイパーリンクパラメータの式サポート

ハイパーリンクダイアログでMagicプログラムを指定した場合、システム、プログラム、出力先フレームのパラメータに式が設定可能になりました。

開発パレットの改善

ナビゲータシート、特性シート、コメントシートを表示する開発パレット画面に関して、動作環境／動作設定に、以下の４つのパラメータが追加されました。
また、各オブジェクトで登録したコメントの内容が、コメントシートに表示されるようになりました。

  • フロートパレットを常に前面表示
    フロートパレットにフォーカスがあるときに、Enterまたは、Escキーを押下すると、自動的にパレットが閉じることが可能です。パレットがメインウィンドウと結合されている場合は無効です。

  • パレットの結合
    「Yes」の場合、パレットをドラッグして、Magicのメインウィンドウの境界に移動すると、結合されて常にウィンドウの中に納めることができます。「No」の場合、常に別のウィンドウで表示されます。

  • 単一拡張パレット
    特性シートのデフォルトの表示を、ツリーのタイトルだけ表示するか、全てのパラメータを表示するかを制御します。「Yes」の場合、タイトルのみ表示します。「No」の場合、すべてのパラメータを表示します。

  • 特性シートの自動操作
    特性シートが関連する項目にフォーカスが移ったとき、特性シートのオープンクローズを自動で制御できます。

パラメータ | 動作
N | 無効
C（デフォルト） | ナビゲータが有効な画面をクローズした時に、自動的にナビゲータウィンドウがクローズされます。
O | ナビゲータが有効な画面をオープンした時に、自動的にナビゲータウィンドウをオープンされます。
F | ナビゲータが有効な画面をオープン／クローズした時に、自動的にナビゲータウィンドウをオープン／クローズされます。

フォームエディタで「全て選択」アクションのサポート

フォームエディタで「全て選択」のショートカット(Ctrl+A)が有効になります。
ただし、スタティックコントロールの編集モードの場合、フォーム上のコントロールでなく、編集中の全ての文字が選択されます。

フォームエディタでチョイスコントロールのレイヤごとの選択

フォームエディタでチョイスコントロールの選択時、Altキーを併用すると、それぞれのレイヤにリンクされたコントロールだけが選択できます。

エディットコントロールのスクロールバー表示の制御

スクロールバー表示パラメータがGUIフォームのエディットコントロールに追加されます。このパラメータによって、垂直スクロールパラメータと水平スクロールパラメータが「Yes」の場合、スクロールバーを表示するかどうかを制御できます。

共通機能

F11 / F12 キーのサポート

システムイベントハンドラに、以下のショートカットキーがサポートされました。

  • F11/F12
  • Shift+F11/F12
  • Ctrl+F11/F12
  • Alt+F11/F12

注意： ブラウザクライアントの場合、IEの制御によって、Alt+F11 のイベントハンドラが実行された後、常にブラウザ最大化のイベントが発生します。

新関数

関数名 | 機能
MMCLEAR | マルチマークされた行をクリアします。
MNUNAME | 指定したメニュー名を変更する。
VARDBNAME | 指定した項目のDB カラム名を取得する。
CTRLGOTO | 指定したコントロールにパークする。

各関数の詳細は、リファレンスマニュアル（９章関数）をご覧下さい。

DB2 UDB サポート

DB2 UDB V7.2 データベースゲートウェイがサポートされました。


Ver9.30J SP3 での改善内容

モデル

  • CTL特性の外部参照ファイルでHTMLスタイルファイルを設定しているにもかかわらず、モデルリポジトリでHTML形式クラスのフォーム型のオブジェクトの特性で、HTML内部属性のリスト開くと設定の動作環境で定義したHTMLスタイルファイルの内容を表示してしまう件に対応しました。(0735571)

テーブル

  • ソーステーブルをあるフォルダに移動してから、そのデータコントロールを持つテーブルもフォルダに移動すると異常終了する件に対応しました。(0745364)
  • テーブルリポジトリで日付型、数値型のモデルを使用している場合、モデルを再度継承すると、カラム特性/サイズが0になる件に対応しました。(1000524)

コンポーネント

  • コンポーネントのイベントを、コンテナのプログラムで、ウェイト=Noでイベント実行すると異常終了する件に対応しました。(0009144)
  • コンポーネントのメインプログラムで、コールプログラムにヘルプを設定していると、コンテナのアプリケーションを開発モードから実行モードにしたときに、異常終了する件に対応しました。(0297327)
  • 辞書入力されたコンテナアプリケーションの、コンポーネントのMCFが存在しない場合に、コンポーネントのオブジェクトを使用しているオブジェクトをチェックすると、異常終了する件に対応しました。(0975314)
  • アプリケーションの環境を移行すると、ＣＴＬオープン時に「MAGICインターフェースファイルをオープンできませんでした。」のメッセージが表示され、コンポーネントが利用できなくなる件に対応しました。(1000356)
  • テーブルリポジトリの外部キーにコンポーネントテーブルを設定している場合、APGで照会プログラムの作成画面で項目テーブルを開くと、項目名欄が「？？」と表示される件に対応しました。(1000509)
  • コンポーネントのテーブルをコンボボックスのソーステーブルに指定してその範囲指定を行うと、異常終了することがある件に対応しました。(1000527)

プログラム一般

  • 強制終了をR=レコードに設定したユーザイベントを使ってハンドラを起動した後、テーブルのすべてのレコードが複写登録されてしまう件に対応しました。(0231504)
  • テーブルコントロールの高さがフォームより長い場合、実行時に最終レコードの最右端のカラムをクリックすると、異常終了する件に対応しました。(0293321)
  • ソートキーを定義しているオンラインプログラムを実行して、ビュー再表示アクションを発行した後、編集／ソートで登録されたキーを削除すると、異常終了する件に対応しました。(295119)
  • コールプログラムでBLOB型のデータをパラメータとして渡すと異常終了する件に対応しました。(0377536)
  • インクリメンタルサーチを行なった後、ビュー再表示し、再度インクリメンタルサーチを行なうと異常終了する件に対応しました。(0420220)
  • BLOB型で、GUI表示がOLE/リッチエディットのコントロールを持つオンラインプログラムを実行すると異常終了する件に対応しました。(0737764)
  • メモとBLOB型の変数を定義したハンドラをウェイト=Noでイベント実行すると、異常終了する件に対応しました。(0743297)
  • 設定／動作環境／動作設定の「修正後の再位置付」を「YES」に設定しているとき、一番最初のレコードだけが、範囲指定外にあるのに表示されてしまう件に対応しました。(0751991)
  • オンラインタスクのハンドラで、コントロールに対してズームイベントを設定した場合、実行時にそのコントロールにカーソルがパークしても、ステータスバーに「ズーム」と表示されない件に対応しました。(0752908)
  • 更新形式を「差分更新」に設定した項目を持つテーブルを、項目更新の「加算」で更新すると、修正や削除を行なった際に不正な計算結果となってしまう件に対応しました。(0756053)
  • コンボボックスの表示項目が別のコンボボックスの範囲として使用されている場合に、コンボボックスを開いた状態でF2キーを押すと、異常終了する件に対応しました。(0782303)
  • 同じ遅延トランザクション内で、複数のタスクが同じテーブルの異なる項目をセレクトしている場合、いくつかのタスクで更新した項目が別のタスクで正しく表示されなくなる件に対応しました。(0786324)
  • 権利設定の利用可能権利一覧で、[全て／同一コントロール／ロードされたコンポーネント]のコンボボックスが、使用できない>件に対応しました。 (0973775)
  • ハンドラでマウスオーバーとマウスアウトのイベントが使用されているとき、サブタスクの実行中に異常終了する件に対応しました。(0984970)
  • 設定／動作環境／バッチイベント間隔　および　タスク制御／オプション／レコードイベント間隔　を設定しても、常にバッチプログラムの表示のリフレッシュは１レコードごとに行われる件に対応しました。(1000462)
  • Windows2000でMS-IME2000を使用したクライアントで、オンラインタスクの実行時、垂直スクロールバーをマウスで下方向に移動し、最下行までスクロースし続けると、キー操作が不能になる件に対応しました。(1000467)

SQL共通

  • SQLコマンドを定義したサブタスクのタスク常駐を「Yes」に設定すると、2回目にコールしたとき異常終了する件に対応しました。(0763808)
  • リンク結合が使用されているタスクで、ビュー再表示してもSQL Where句の再計算が行なわれない件に対応しました。(0988965)
  • 結合／外部結合リンクを26個以上定義して実行すると、エラーが発生する件に対応しました。(1000547)
  • SQLコマンドを使用しているタスクのプログラムをリポジトリ出入力すると、そのタスクで定義されているモデルを使った数値項目の格納形式（Signed Integer）のサイズが0になってしまう件に対応しました。(1000563)

関数

  • レコード後処理で値が変更された変数を、CALLPROG関数のパラメータとして使用すると、異常終了する件に対応しました。(0981691)
  • MNUNAME関数を実行して変更したメニューに対して、MENU関数を実行しても、変更前の結果が返る件に対応しました。(1000540)

ユーティリティ

  • コンテナアプリケーションで、テーブルの外部キーの参照テーブルとして使用されているコンポーネントのテーブルが、クロスリファレンスで結果が出力されない件に対応しました。(0305618)
  • ハンドラで定義されている複数のコールプログラムで使われているプログラムを、「検索と置換」を使って置換したとき、一つしか置換されず、他のものはすべてプログラム番号が0になってしまう件に対応しました。(0595732)
  • タスクツリーにおいて、コンポーネントを使用しているタスクに対するコピー、貼り付け等を行うと、異常終了する件に対応しました。(0752575)
  • HTMLコントロールにヘルプが定義されている場合、「検索と置換」を使って置換しようとすると、確認画面が表示されずに「置換が終了しました」と表示され、置換自体は実行されない件に対応しました。(0920234)
  • 「検索と置換」において、項目の書式が異なるものに置換した場合、置換処理中にテーブル変換処理が実行されると、異常終了する件に対応しました。(1000407)
  • 権利を持たないユーザが、「テキスト検索」コマンドを使用して権利名を閲覧することができる件に対応しました。(1000420)
  • テーブルのインデックスの任意の番号でクロスリファレンスを実行すると、タスク特性のインデックスの式欄に指定したキー番号が同じ番号であれば、そのテーブルと無関係でも抽出される件に対応しました。(1000450)
  • プログラムリポジトリで「検索と置換」を実行すると、公開プログラム名で記述してある個所 （コールリモート、ハイパーリンクなど）も検出され、置換処理を行うと、公開プログラム名でなく、 そのプログラム番号が設定される件に対応しました。(1000455)
  • 「検索と置換」を実行して、置換する箇所が２ヶ所以上あるとき「全て置換」を選ぶと、異常終了する件に対応しました。(1000456)
  • フローモニター上に、以下のコマンドが実行されない場合に[Not Executed]が出力されない件に対応しました。
    エラー、ブロック、コール、アクション、エディット、OSコマンド、イベント実行
    (1000460)
  • テーブルで「検索と置換」を実行すると、プログラムのDBテーブルのモードが、初期値に変更されることがある件に対応しました。(1000504)
  • １つのテーブルに複数のデータコントロールを設定したカラムがあり、それぞれコントロール特性の範囲を定義した場合、それらの式でクロスリファレンスを実行しても結果が出力されない件に対応しました。(1000508)
  • 下記の条件が組み合わさった時、プログラムチェックで、エラーでないのに「結合リンクによる位置付けは、項目か定数で指定してください」のエラーになる件に対応しました。(1000519)
    • J=結合、またはO=外部結合のリンクが使用されている。
    • レコード前処理に２行以上コメント行がある。
  • フローモニターに出力される情報が、一部日本語対応されました。(1000562)

リポジトリ入出力

  • コンポーネントで定義したイベントを、コンテナのプルダウンメニューに割り当て、コンポーネントに新しいイベントを追加した後でコンテナをリポジトリ出力／入力すると、プルダウンメニューに割り当てていたイベントが空白になってしまう件に対応しました。(0309660)
  • フォルダを含むアプリケーションをリポジトリ入力している途中でキャンセルを行うと、 空のフォルダが作成される件に対応しました。(0623236)
  • コンテナのテーブルに設定したコンポーネントのイベントが、リポジトリ出力／入力後、空白になる件に対応しました。(0752367)
  • BLOB項目が定義されているプログラムをリポジトリ出力し、そのファイルを9.20J SP1aでリポジトリ入力して実行すると、異常終了する件に対応しました。(1000533)

フォーム

  • テーブルコントロールに、項目やコントロールを親子リンクとして配置した後で、 テーブルの大きさを何度か調整すると、表示が乱れる件に対応しました。(0237922)
  • 開発モードで、子タスクから親タスクのマージフォームを選択して複写登録し、選択タグテーブルをズームすると、異常終了する件に対応しました。(284151, 295462)
  • テーブルコントロールのカラムの特性の可視がFALSEになっていると、レコードがテーブルコントロールの外側に表示される件に対応しました。(0287702)
  • フォームに項目パレットから変数を貼り付けた後、その変数をレコードメインから削除し、再度フォームエディタを開いて、編集しようとすると、異常終了する件に対応しました。(0558909)
  • 時刻型の変数の書式に'HH:MM PM' を使用すると、12:00から13:00までの時間がAMと表示されてしまう件に対応しました。(0571045)
  • [テーブル／コントロール／特性／ウィンドウ内テーブル]を「Yes」に設定した場合、フォームのサイズをテーブルより小さくすると、テーブルに配置された個々のコントロールの選択が正常にできない件に対応しました。(0915190)
  • フォーム編集時に、表示の領域外に配置されているコンボボックスを移動すると、表示が消える件に対応しました。(1000315)
  • Windows98で、テーブル上でホイールマウスのスクロールが可能になりました。(1000452)
  • テーブルコントロールのウィンドウ内テーブルが「Yes」に設定されていると、実行時にコンボボックスがテーブルコントロールの外側に表示される件に対応しました。(1000483)
  • 新しいコントロールを追加したり、Zオーダを2回クリックすると、データコントロールに設定した範囲の式がクリアされる場合がある件に対応しました。(1000489)
  • 以下の条件が重なるとオンラインタスクのテーブル表示が乱れる件に対応しました。(1000506)
    • テーブルコントロール－表示－最終区切線を「No」に設定
    • 位置とサイズ－位置－幅割合が 0
    • 右端のカラムの特性／表示／可視を定義式に設定
  • 子タスクからフォームを開いて、親タスクのフォームの項目を選択し、その書式にカーソルを置くと、子タスクの項目の書式が表示される件に対応しました。(1000529)

HTMLフォーム

  • HTMLフォームエディタを開き、コマンドパレットにあるHTMLファイルの作成を行って、出力されたファイルを確認すると、ハイパーリンクのパラメータがコントロールの名前ではなく「U」と設定される件に対応しました。(1000454)

プレビュー機能

  • [入出力ファイル]の[ダイアログ]を「Yes」に設定し、印刷プレビューを実行した場合、ページ印刷ができない件に対応しました。（754446）

ブラウザクライアント

  • FrontPage 2002 (FrontPage XP)をWebオーサリングツールとして使用したとき、Magicの項目パレットからドラッグ＆ドロップでHTMLオブジェクトを生成できるようになりました。(0426865)
  • タスク特性のチャンクサイズが、フォーム特性の繰り返し行数より小さいとき、レコードを順次移動していくと、次のチャンクの最初のレコードのフォーカスのあるカラムが空白になる件に対応しました。(0430134)
  • インデックス重複のエラー発生時に、レコード前処理を通過してしまう件に対応しました。(0770874)
  • タスク後処理で、「エラーコマンド」のあとに設定した「イベント実行コマンド」が処理されない件に対応しました。(0924875)
  • テンプレートファイルにJavaScriptがある場合、そのプログラムが別のブラウザクライアントのプログラムからコールされると、JavaScriptのエラーが出る件に対応しました。(0996995)
  • リンク登録でデータを追加した後、下の行に移動してから元の行に戻ってもデータがリフレッシュされない件に対応しました。(0999024)
  • ブラウザ形式プログラムのフォーム作成時に、項目パレットからFrontPageの［標準］タブにて編集中のページへ、2バイトコードを使用した項目をドラッグ＆ドロップで貼り付けるた場合、文字化けする件に対応しました。 ただし、項目名には2バイトコードは使用しないことを推奨いたします。(1000104)
  • レコード前処理の項目更新と代入式の評価順序が、オンラインプログラムと同じになりました。代入式、レコード前処理の順で評価されるようになります。(1000365)
  • 項目を割り当てないボタンの実行イベントが、実行時に無効になる件に対応しました。(1000366)
  • テーブルのコントロールに対するコントロール前処理、後処理を定義し、更にタスク制御／循環入力を「No」に設定した場合、実行時にレコードの最後（最右）の項目から次レコードの先頭（最左）の項目にTABキーで移動すると、レコードの最後の項目のコントロール前後処理が実行される件に対応しました。(1000426)
  • タスクモードを修正から照会、または照会から修正に変更したとき、STAT関数を代入式で設定した変数が、再計算されない件に対応しました。（1000435）
  • データベースにOracleを使用し、リンクデータを上方向に向かって連続して更新を行うと、「インデックスが重複しています」のエラーが出る件に対応しました。(1000447)
  • ハイパーテキストのタイプがMagicの場合、出力先フレームに\が入っていると、フレームに出力されず、別ウィンドウが起動される件に対応しました。(1000472)
  • VARMODE関数を使用してデータビューレコードが取り出されてから項目の内容を変更し、再度元の値を入力すると、'FALSE'が返るようになりました。(1000476)
  • [タスク特性／トランザクションのエラー時]を「A=アボート」に設定し、タスク後処理でアクションコマンドでROLLBACK関数を定義している場合、実行時に、E:終了イベントを発行しても、タスクが終了しない件に対応しました。(1000478)
  • 行作成したり、最下行から下矢印を押したとき、レコード後処理でSTAT(0,'M'Mode)がTRUEを返してしまう件に対応しました。(1000486)
  • テーブルコントロールのコンボボックスを設定し、ソートテーブルの範囲抽出されるデータがない場合、数件新規にデータ登録後、上にカーソルを移動すると登録データの表示が消える件に対応しました。（1000488）
  • MRBが高負荷時に、画面を切り替えるとContext not Foundになる場合がある件に対応しました。（1000492）
  • 出力先にインラインフレームに指定した子タスクを何度かコールしてから終了すると、エンジンが異常終了する件に対応しました。(1000526)
  • インラインフレームを含むブラウザタスクがサブタスクとして実行された場合、出力先にインラインフレームに指定した子タスクが、新しいウィンドウでオープンされる件に対応しました。(1000534)
  • コンボボックスのラベル欄に式を設定しても、式で使われている項目がサブフォームへのパラメータに設定されている場合、実行時にその式が評価されない件に対応しました。(1000525)
  • リンクコマンドの戻り値に変数が設定され、かつ「タスク制御／強制レコード後処理」が「Yes」の場合、実行時に既存レコードを修正すると、そのレコードが修正されずに新しいレコードが作成される件に対応しました。(1000552)

ワークグループ開発機能

  • コントロール特性を表示させたままアンチェックを行なうと、異常終了する件に対応しました。(0167488)
  • 他のユーザがテーブルに設定されたヘルプを削除した後、そのヘルプが設定されていたテーブルでAPGを行なうと異常終了する件に対応しました。(0311847)
  • 読み込み専用モードでプログラムのフォームを表示し、データに式が入っているコントール特性を開き、データの式でズームをして戻ると、異常終了する件に対応しました。(1000515)

ＭＲＢ

  • スレッド数が、設定／動作環境／最大並行リクエスト数で設定された数を越える件に対応しました。(0135716)
  • MRBモニタの統計タブの「処理中のリクエスト数」が42949になる件に対応しました。(1000485)

インターネットリクエスタ

  • ISAPIリクエスタ使用時、IISが高負荷状態の場合にリクエスタが異常終了することがある件に対応しました。（0429572）


Ver9.30J SP3 の動作変更

サーバ機能

ログオンユーザによるサーバアプリケーションの実行

サーバにリクエストを実行する際、ログオンユーザでの実行が可能になりました。リクエスタのパラメータにユーザとパスワードの指定か、MGREQ.INIファイルのusername / password パラメータの指定により有効になります。両方に指定がない場合は、ログオンを行わずにプログラムを実行します。
チーム開発でチェックアウトされたプログラムを実行する場合、チェックアウトしたユーザ自身でのみ実行が可能ですので、この設定を行う必要があります。

ブラウザクライアント

ブラウザクライアントモジュールのクライアント配置の改善

設定／動作環境／ブラウザクライアントモジュールのクライアント配置を「Yes」にした場合のセキュリティの仕組みが改善されました。これによって、アプレットをロードする時の確認ダイアログは、アプレットが更新されない限り、最初に一度だけ行います。
また、今までのLauncher.cabは使用されず、ロードされたアプレットは、\Widows\java\PackagesフォルダにランダムなZIPファイル名で保存されます。9.20J SP1ａで対応されました。

日本語関数のクライアント側での実行

以下の関数がブラウザクライアントで使用された場合、クライアント側で実行されるようになりました。

  • JCDOW
  • JMONTH
  • JNDOW
  • JYEAR
  • JGENGO
  • HAN
  • ZEN
  • ZENS
  • ZKANA

チャンクサイズ

チャンクサイズ(式)が定義されていない場合、以下の値がチャンクサイズのデフォルト値となります。

メインテーブルが定義されていない場合 | １
メインテーブルが定義されている場合 | ３０

子ウィンドウのデフォルトの表示位置

フォーム特性の左辺位置および上辺位置を設定していない場合、コールコマンドなどで新たに表示される子ウィンドウは、親ウィンドウより内側に表示されるようになりました。Ver9.2までは、デフォルトの表示位置はブラウザに依存しているため、親ウィンドウの外側に表示されることがありました。この変更により、JavaScriptによってHTMLファイルのロード時にウィンドウの位置を指定していても、Magicのデフォルト位置が有効になります。

クライアント実行機能

登録モードでテーブルコントロールの高さの配置パラメータの有効化

オンライン画面のテーブルコントロールで、登録モードの場合、高さの配置パラメータが有効になりました。

レコードがない場合のエラーメッセージを抑止

ビュー再表示アクションの後、現在カーソルがあるレコードにパーキングできなくなった場合、今まで表示されていた「ビューにレコードがありません」のエラーメッセージは表示されなくなりました。

モーダルウィンドウの制御

GUIフォームでのモーダルウィンドウの制御が、以下のように変更されました。

  • モーダルウィンドウのタスクからコールされたタスク
    モーダルウィンドウを「Yes」に設定したタスクからコールされた子タスクは、パラメータの設定によらず、必ずモーダルウィンドウになります。
  • タスク制御／ウィンドウクローズパラメータ
    モーダルウィンドウタスクはタスクが終了した後、ウィンドウを開いたままにしておくことはできません。この場合、常にタスク制御／ウィンドウクローズパラメータは「Yes」として動作します。
  • フォーム特性／子ウィンドウパラメータ
    子ウィンドウパラメータを「Yes」に設定した場合、そのタスクのモーダルウィンドウ、または親タスクのモーダルウィンドウパラメータは無視され、モーダレスウィンドウとして機能します。

開発機能

クロスリファレンスの結果

最新のクロスリファレンスの結果は、常にクロスリファレンスの結果リストの最初に表示され、クロスリファレンスの最大数に達している場合、エラーメッセージを出さないで、出力されているもっとも日付の古い結果が削除されるようになりました。

項目モデルの選択テーブルの改善

項目モデルの選択テーブルで、型と書式が表示されるようになりました。

開発版での実行モードでメインプログラムのクローズ処理

開発版を実行モードで動作した場合、メインプログラムの終了条件がTrueの場合、Ver9.30から、アプリケーションがクローズする代わりに、開発モードに変更されるようになりました。

イベント実行コマンドのウェイトパラメータのデフォルト値

イベント実行コマンドを設定したときに、そのタイプが内部イベントの場合、ウェイトパラメータのデフォルトは「No」に設定されます。

リンク結合の特性

リンク結合のリンク特性で[確認]の特性を設定できるようになりました。

イベント選択ダイアログの改善

イベント選択ダイアログの操作性が改善されました。

  • イベントタイプのデフォルトの変更
    最初に開いた時のイベント設定ダイアログのイベントタイプは「ユーザ」です。
    二度目以降に開いたイベント設定ダイアログのイベントタイプは、直前に指定したイベントタイプが設定されます。

  • 自動ズーム機能
    [イベントタイプ]から設定されていない[イベント]にカーソルを移動すると、自動的にズームが実行されます。イベントタイプによって、開かれる画面が変わります。

イベントタイプ | 開かれる画面
システム | キー定義ダイアログ
内部 | アクションダイアログ
ユーザ | イベント一覧
タイマー | なし
式 | 式定義ダイアログ
エラー | エラー一覧

その他

SQLデータベースの一時テーブルのテーブル名の変更

常駐テーブル、埋め込みＳＱＬの結果データベース、ソート一時テーブルで作成される、SQLのテーブル名の接頭文字が、T_ からTEMP_ に変更されます。

セキュリティファイルに管理されたユーザID/パスワード のサイズの拡張

実行時に使用できるユーザIDは10桁から30桁、パスワードは8桁から20桁に拡張されました。この変更により、今まで使用されたセキュリティファイルは、コンバートツールで変換する必要があります。コンバートツール（usrupd.exe）は、Utilフォルダに格納されています。

また、チーム開発を行う場合に有効なユーザIDは、従来どおり10桁です。

動作環境/システムログオンのオプションの変更

動作環境/システムログオン］の「F=フルログオン」オプションが削除されました。Ver9.2 SP1　以前からアップデートした場合、「F=フルログオン」に設定されていると「N=なし」になります。同じ動作をさせる場合は、「D=ディレクトリ」に変更するようにしてください。

ハイパーリンクの設定の改善

ハイパーテキストのタイプがURLの場合、URLの名前の最初の文字が / の時、インターネット開発ファイルルートが付加されないようになりました。

MRBサービス起動の遅延

MRBがサービスで起動された場合に、MRB起動の遅延を設定できるようになりました。 OS起動時のライセンスサーバとの時間調整等に使用することができます。mgrb.iniに 以下の記述を行います。

[MRB_ENV]
DelayServiceStart = n　（秒単位）

ブラウザクライアントアプリケーション開発手法

ブラウザクライアントの機能を使用して、効果的なインタラクティブWebアプリケーションの設計・開発する方法を記述したドキュメント、及びサンプルアプリケーションが提供されました。
CD-ROMの \BONUS\demoapl\Methodology フォルダに格納されています。

注意： アップデートモジュールには、添付されていません。


Ver9.20J SP1a での改善内容

モデル

  • 書式が小数点を含むモデル項目を設定した数値型の変数項目に対して、実行時に計算処理を行った場合、四捨五入された値を返してしまう件に対応しました。[9.20J SP1](1000453)

プログラム一般

  • メインプログラムのフォーム表示をYesにして、画面上にメインプログラムで定義した項目を表示しても、値が正しく表示されない件に対応しました。[9.20J SP1](1000468)

関数

  • オンラインプログラムにおいて、テーブル上にあるコントロールの値を修正した後、CTRLNAME関数を実行しても、そのコントロール名を取得できない件に対応しました。[9.20J SP1](1000469)

リポジトリ入出力

  • フォルダーを指定したプログラムにズームし、親タスクを作成して変更し、リポジトリ出入力すると、フォルダーの指定がなくなる件に対応しました。(1000449)

フォーム

  • GUI形式のフォーム特性の垂直精度パラメータの値を変更すると、フォームに定義されている全てのコントロールの高さが変更される件に対応しました。[9.20J SP1](0115405)
  • テーブルコントロールのスタイルを平面にして、Up/Downキーでレコード移動すると、縦横の境界線の交わる部分で太さが変わってしまう件に対応しました。(1000259)
  • エディットコントロールのあるHTMLフォームを開き、HTMLファイル書き込み、またはブラウザ表示を行うと、異常終了することがある件に対応しました。(1000459)

プレビュー機能

  • 印刷プレビューのページ印刷ダイアログの中で、範囲の設定が行えなかった件に対応しました。(1000458)

ブラウザクライアント

  • Microsoft Windows Update セキュリティ問題の修正プログラム(*1)を適用したPCにて、ブラウザクライアントモジュールのクライアント配置をYesで使用すると、ブラウザクライアントのアプレットがロード出来ない件に対応しました。
    (*1) 2002年3月28日 (Internet Explorer 5.5 SP2) 、Microsoft Security Bulletin MS02-015(1000443)
  • サブフォームにおいて、サブタスクのデータを編集した場合、その行を移動せずにタスクを終了すると、そのレコードが更新されない件に対応しました。(1000451)
  • IEのプロパティの中で、全般／インターネット一時ファイル／設定ダイアログにおいて、「ページを表示するごとに確認する」をチェックした場合、IEのキャツシュメカニズムの問題によりサブタスクのコール時に画面オープンが遅くなる件に対応しました。(1000464)


Ver9.20J SP1 の新機能

項目パレットのサイズ調整

フォームエディタの項目パレットのサイズを自由に調整できます。フォント番号は、#37 を使用します。

テキストの検索と置換

アプリケーション内で使用されるテキスト（文字列）を検索することができます。また、検索した文字を別の文字に置換することができます。これらのオプションは、[編集]メニューで使用できます。

フォルダ名とコメント以外の全てのオブジェクトが対象となります。

正規表現は以下のメタキャラクタ（半角文字)が使用できます。

  • . ：任意の文字 (例）あい..えお 任意の文字がDBCSの場合は、2文字にします。
  • ^ ：行の先頭 (例）^あい
  • $ ：行の末尾 (例）えお$

Magicオブジェクトの検索と置換

開発モードでの新しいオプションとして、Magicのオブジェクトをクロスリファレンス機能で検索して別のオブジェクトに置換する機能が追加されました。任意のオブジェクトにカーソルを置き、[オプション／検索と置換]を実行するとこの処理を実行するためのダイアログが表示されます。

デフォルト値とデフォルトのNULL表示文字列

アプリケーションのデフォルト値とデフォルトのNULL表示文字列を設定できます。これらの値は、MAGIC.INI の [MAGIC_DEFAULTS] セクションで定義します。

MAGIC.INI 内で指定できるキーワードは以下の通りです。

[MAGIC_DEFAULTS]
DefaultDate = [datevalue]
NullAlphaDisplay = [string value]
NullNumericDisplay = [string value]
NullLogicalDisplay = [string value]
NullDateDisplay = [string value]
NullTimeDisplay = [string value]
NullMemoDisplay = [string value]
NullBlobDisplay = [string value]

注意：

  • 設定は、MAGIC.INI ファイルの変更のみで行います。動作環境ダイアログではできません。
  • この設定がない場合は、Magic内のデフォルト値を使用します。
  • DefaultDate の書式は、日付モードに依存します。
  • 実行中にこの値を変更した場合、次に起動したときに有効になります。

ブラウザクライアントの言語サポート

動作環境（設定／動作環境／外部参照ファイル）に新しいパラメータが追加され、HTMLページに、表示／入力する文字セットを定義することが出来るようになりました。

"ブラウザタスクで使用するエンコード"

この設定を使用することで、ブラウザタスクのHTMLページによって使用されるエンコードテーブルの名前を指定できます。

ここに値を設定すると、ブラウザタスクによって作成される各HTMLページは、META タグを埋め込む事により定義された文字セットを使用するページになります。

<META HTTP-EQUIV="Content-Type" content="text/html; charset=XXX">

XXX は、動作環境で設定した文字列

この情報は、ブラウザクライアントモジュールが、定義したエンコードテーブルを使用して入力されたデータを Magic サーバエンジンに渡すために使用されます。

注意：

  • すでにHTMLページに METAタグがある場合は、その内容を変更しませんが、ブラウザクライアントモジュールは 動作環境の設定によって定義されたエンコードテーブルを使用するようにします。
  • 日本語環境では常に "Shift_JIS"をセットしてください。

変更の適用：直後から有効

MAGIC.INIとコマンドラインでの名前：Unicode2Ansi

RUNMODE 関数の拡張

アプリケーションサーバで最初に実行する アプリケーションの場合、動作状態に依存するようになりました。 バックグラウンドモードで最初にオープンされたアプリケーションの場合、メインプログラムでは、-1 を返します。 以下の場合、0 を返します。

  • コールされたプログラムで実行された場合や、メインプログラムのサブタスクで実行された場合
  • バックグラウンドモードのメインプログラムで２回目に実行されるか、追加スレッド上で実行された場合
  • 注意：アプリケーションがクローズされ、他のアプリケーションがオープンされた場合、最初のコンテキストでは、-1 が返ります。

チーム開発の変更

(1) プログラムリポジトリの修正

プログラムリポジトリはアプリケーションのプログラム一覧情報を管理しています。プログラム一覧情報の変更を行う場合、プログラムリポジトリを変更する必要があります。
従来は、プログラム一覧情報の変更に対して自動的にチェックアウト、チェックインが行われていましたが、本バージョンより行われないように変更されました。開発者は、プログラムリポジトリに対して、手動でチェックアウト、チェックインを行う必要があります。
プログラムリポジトリをチェックアウトする場合のみ、プログラム一覧情報が更新されます。以下の操作によってプログラム一覧情報が更新されます。（つまり、プログラムリポジトリのチェックアウトを行わないと、以下の操作ができません。）

  • プログラムの新規作成
  • プログラムの削除
  • プログラムの順番の変更
  • 別のフォルダへのプログラムの移動
  • プログラムフォルダ名の変更
  • プログラムの上書き
  • プログラムのコピー
  • プログラムリポジトリへの権利設定
  • プログラムのリポジトリ入力
  • テーブルリポジトリからのAPG( 作成モード) の実行

(2) プログラムリポジトリでのチェックアウト、チェックイン

［バージョン管理］メニューに表示される［チェックアウトPrg.Rep］または［チェックインPrg.Rep］をクリックするか、ツールバーのアイコンをクリックすることでプログラムリポジトリのチェックアウトやチェックインができます。プログラムリポジトリではアンチェックはできません。

(3) プログラムのリポジトリ入力

プログラムを含んだアプリケーションをリポジトリ入力する時、プログラムリポジトリをチェックアウトするように要求されます。Magic Ver9.2 のリポジトリ出力ファイルを入力している時、プログラムリポジトリをチェックアウトするように要求されます。プログラムリポジトリがチェックアウトされなかったり、他の開発者によってチェックアウト済みの場合、Magic はリポジトリ入力処理が実行されなかったことを示す警告メッセージを表示します。

旧バージョンのMagic のアプリケーションをリポジトリ入力する場合、入力処理時にプログラムが含まれているかどうかを判断できません。このため、無条件にプログラムリポジトリのチェックアウト要求を出します。プログラムリポジトリがチェックアウトされなかったり、他の開発者によってチェックアウト済みの場合、Magic はリポジトリ入力処理が実行されなかったことを示す警告メッセージを表示します。この場合、リポジトリ入力処理は失敗し、アプリケーションは入力前の状態にロールバックされます。

(3) パラメータ一覧

チーム開発の変更に伴い、コール処理コマンドのパラメータ数は、最大255までとなります。

ハンドラ・スコープ

ハンドラが使用可能なリソースのスコープが、dbMAGIC Ver8のイベントが使用可能なリソースのスコープと一致するように変更されました。

(1) タスクツリーへの照会

以前のMagic Ver9では、ハンドラが定義されたタスクにおいて参照可能なタスクツリーに対してのみ、ハンドラがアクセスすることが可能でした。Ver9.20J SP1からはハンドラは上位のタスクツリー全ての対してアクセスが可能となりました。これにより、上位タスクの世代指定方法が変更になりました。

例えば、プログラムAからプログラムBをコールし、プログラムBからプログラムCをコールします。プログラムBには”ABC”イベントに対するハンドラが定義されているとします。プログラムCからイベント”ABC”が実行され、プログラムB内のハンドラが起動しました。

以前のMagic Ver9では、バンドラは（自身が定義されている）プログラムB（世代 = 0）とプログラムA（世代 = 1）にのみアクセスすることが可能でした。

Ver9.20J SP1からはハンドラはタスクツリーの全てにアクセスできるようになりました。この場合、ハンドラが定義されているタスクではなく、イベントが実行されたタスクの世代＝０となります。したがって、プログラムC（世代＝０）、プログラムB(世代＝１）、プログラムA（世代=２）となります。この変更はクライアント／サーバーアプリケーションおよびブラウザアプリケーションの両方に対して適用されます。

(2) 例外－ブラウザクライアント

ブラウザタスク内のハンドラから、他のブラウザタスクをコールした場合、ハンドラが定義されているタスクが参照できるタスクツリー内のリソースのみアクセスすることが可能です。
この場合、ハンドラが定義されているタスクの世代＝１となります。
この指定方法は以前のMagic Ver9の指定方法と同じで、オンラインやバッチタスクの指定方法とは異なりますので、注意してください。

(3) 入出力ファイル

タスク内実行されたイベントにより上位タスクで起動したハンドラは、入出力特性の「使用する入出力名」を使用することにより、タスクツリー内の全ての入出力ファイルを使用することができます。

Ver8アプリケーションからの移行の強化

ISAM （Pervasive SQL）データベースを使用した、dbMAGIC Ver8 のアプリケーションの移行を容易に出来るように拡張されました。MAGIC.INI に以下のオプションを指定してインポートすることによりエラーハンドラを自動的に追加させることができます。

[MAGIC_SPECIALS]
ImportCreateErrHandler = Y または TRNS

ここで、ImportCreateErrHandler の値とその意味は以下の通りです。

ImportCreateErrHandler の値 | 意味
Y | レコードアクセス失敗時の設定を優先
TRNS | トランザクションの設定を優先

(1) レコードアクセス失敗時の設定優先時(Y設定時)の動作

トランザクションエラー時 (V8) | エラー発生時 (V9)
アボート | アボート
リトライ | アボート
スキップ | アボート

レコードロック時 (V8) | エラーハンドラ (V9)
リトライ | 無し
アボート | [エラーハンドラ:レコードロック 対応: アボート]
スキップ | [エラーハンドラ:レコードロック 対応: 無視する]

アクセス失敗時(V8) | エラーハンドラ(V9)
スキップ [エラーハンドラ: 挿入/更新/削除に失敗　対応: 無視する]
[エラーハンドラ: 重複インデックス　対応: 無視する]
リトライ | 無し
アボート | 無し

(2) トランザクションの設定を優先時 (TRNS設定時)の動作

トランザクションエラー時 (V8) | エラー発生時 (V9)
アボート | アボート
リトライ | 復旧
スキップ | アボート

レコードロック時(V8) | エラーハンドラ(V9)
リトライ | 無し
アボート | [エラーハンドラ: レコードロック 対応: アボート]
スキップ | [エラーハンドラ: レコードロック 対応: 無視する]

トランザクションエラー時 (V8) | エラーハンドラ (V9)
アボート | 無し
リトライ | 無し
スキップ [エラーハンドラ: 挿入/更新/削除に失敗　対応: 無視する]
[エラーハンドラ: 重複インデックス　対応: 無視する]

開発者ガイド

Magic を使用してプログラムを開発するヒント集として「開発者ガイド」が添付されました。Magicインストール時に選択する事により、Magicのスタートメニュー／オンラインマニュアルより確認できます。CD-ROMのOnlineフォルダにも格納されています。

ブラウザクライアント Ver9.01J SPxからの移行に関して

Ver9.20J SP1では、Ver9.01J SPxに比べて、ブラウザークライアントのパフォーマンス向上、内部チェックの強化改善が図られています。それに伴い、ブラウザークライアントのアプリケーションをVer9.01J SPxからVer9.20J SP1に移行した場合、一部動作が異なる場合があります。

以下に、MSJにて確認された移行時の障害と対応について記述いたします。

現 象 | 原 因 | 対 応
動作が不安定になる。 | オンラインタスクのみで有効な関数／アクションを使用していた。（例）KBPUT()、画面再表示アクション等 | 使用しないようにプログラムを修正する。
一部のプログラムが極端に遅くなる。 | ① ビュー再表示アクションをタスク前処理など不要と思われる箇所で多用している。 | ①不要なアクションを減らす。
 | ② 非常に大きな変数を多用している。 | ②変数サイズの見直しを行う。又は、データコントロールが使用できる場合は、使用するようにする。
テーブルの一部の行が表示されない。 | チャンクサイズ ≧ 繰返行数となっていない。 | 適切なチャンクサイズを設定する。
項目の値が読み込まれない。 | タスク前処理で子タスクをコールし親タスク上のレコードレベルのデータ項目を見ていた。 | レコードメインへ移動等のプログラム修正を行う。
リストボックス、コンボボックスでラベルを変数で定義し、選択肢を子タスクのバッチで登録している場合、実行時にコントロールの幅が広がる。 (1000431) |  | 空白削除の関数（RTRIM、TRIM）を使用する。
コンボボックスまたはリストボックスのラベルを項目で設定するとき、ラベルの先頭が「,」の場合、ラベルが正しく表示されないことがある。 |  | ラベルの先頭に「,」が付加されないようにプログラムを修正する。
実行画面の見栄え（フォントの種類）が異なる。 | 子タスクは、親タスクと同一のエンコードを使用するように変更された為。 | 必要に応じてHTMLファイルの調整を行う。


Ver9.20J SP1 での改善内容

設定

  • [設定／動作環境]の[アプリケーションサーバとして動作]欄が「Yes」の場合、オンラインプログラムでIMEの入力が遅くなる件に対応しました。(1000084)
  • キー割り付けテーブルの次項目アクションにEnterキーを割り当てると、パスワード設定ウィンドウでパスワードが入力できなくなる件に対応しました。(1000267)

テーブル

  • 数値項目の書式で、0値表示の文字にアスタリスクが設定されていると、テーブルチェックで「デフォルト値が列の長さより長くなっています。」というエラーメッセージが表示される件に対応しました。（772721）

メニュー

  • メインプログラムのタスク前処理においてオンラインタスクを起動している状態で、メニューからプログラムを実行するとMagicが異常終了する件に対応しました。(776920)

コンポーネント

  • コンポーネントイベントのコメントを開くと、Magicが異常終了する件に対応しました。（748202）
  • チーム開発時に、コンポーネントリポジトリのテーブルからAPGでプログラムを作成するとき、フォルダ名を選択して行うとフォルダ名にゴミが表示され、Magicが異常終了する件に対応しました。（10427）
  • 式テーブルでCALLPROGのパラメータにコンポーネントプログラムを設定した場合、コンポーネントアプリケーションでプログラムの番号の変更は反映されない件に対応しました。（295192）
  • コンポーネントアプリケーションのメインプログラムのハンドラでメッセージパラメータに CALLPRG関数を定義した場合、呼出し元のプログラム側でエラーを発生させても実行されない件に対応しました。(281694)
  • ドキュメントテンプレートファイルにDoc_ext.jpn を設定して、コンポーネントの仕様書出力を行うと、Magicが異常終了する件に対応しました。（297583）
  • 即時有効=Noに設定したコンポーネントにあるイベント／ハンドラを、プッシュボタンに設定しても、動作しない件に対応しました。(302354)
  • コンボボックスのソーステーブルに、常駐パラメータをD:利用時に設定したコンポーネントテーブルが指定されている場合、実行時にMagicが異常終了する件に対応しました。(306069)
  • コンポーネントプログラムがメインプログラムの式イベントに設定されている場合、実行時に異常終了する件に対応しました。(758921)
  • コンポーネントプログラムにコンテキストメニューが定義されている場合、実行時にそのメニューは表示されない件に対応しました。(943322)
  • MAGIC.INI、またはショートカットにApplicationstartup=R またはB と設定して起動し、即時有効チェックを外したコンポーネントのあるアプリケーションをオープンすると、Magicが異常終了する件に対応しました。（1000355）
  • コンポーネントプログラムをコールする場合、フォームパラメータを指定すると、実行時にMagicが異常終了件に対応しました。（297587）
  • コンポーネントの権利が有効にならない件に対応しました。(1000007)
  • リンク項目をパラメータとしてコンポーネントのプログラムに渡し、コンポーネントのプログラム側でVARATTR関数を使用している場合、Magicが異常終了する件に対応しました。（780390）
  • コンポーネントアプリケーションのＣＴＬアクセスキーを持たないユーザでログオンして、コンポーネントプログラムを実行すると、Magicが異常終了する件に対応しました。(1000346)

プログラム一般

  • パラメータ項目を定義した孫タスクを親タスクにドラッグ＆ドロップすると異常終了するする件に対応しました。(0569028)
  • フォーム特性でモーダルウィンドウ、またはフローティングウィンドウをYesに設定すると、左辺位置および上辺位置の設定が無効化され、実行時には画面中央に表示される件に対応しました。（1000290）
    MAGIC.INIに以下の設定を行うことにより有効になります。
    [MAGIC_SPECIALS]
SpecialCenteredFloatingWindow = N
  • バックグラウンドモードで、次のようなプログラムが実行されると、Magicが異常終了する件に対応しました。(581160)
    (1) ハンドラが定義されており、３階層のネストで実行されている。
    (2) 実行された最後のタスクがメインプログラムで定義されたイベントハンドラから起動されている。
  • テーブル特性の[ウィンドウ内テーブル]を「Yes」に設定したテーブルにプッシュボタンを配置し、コントロールヒットイベントのハンドラでコールコマンドを定義した場合、コールタスクが起動しない件に対応しました。(1000257)
  • 範囲位置付/ポジションに設定されたBLOB項目に、CURRPOSITION関数の戻り値を更新し、パラメータの受け渡しを行うと、Magic が異常終了する件に対応しました。（1000245）
  • プログラムチェック中に、「式が使用されていません」という警告ダイアログが表示されているときに、ナビゲータのタスク名とタスクアイコンをクリックすると、異常終了する件に対応しました。（744240）
  • セレクトコマンドの変数定義を実項目に変更後、項目名の変更／削除を行うとMagic が異常終了する件に対応しました。（592627）
  • モーダルウィンドウ、フローティングウィンドウに指定した画面にあるテーブルでは、ホイールマウスが機能しない件に対応しました。(1000266)
  • 検証モードのコントロールレベルのコマンドが実行されたあと、同じコントロールに対するイベントハンドラが実行できない件に対応しました。(1000342)
  • 子タスクがあるプログラムを、別のプログラムにサブツリーとして貼り付けると、子タスクの定義式が正しく設定されない件に対応しました。(1000404)

データアクセス

  • データコントロールを設定したカラムを持つテーブルに対して、[オプション]が「Inet」のAPGを行うと、Magicが異常終了する件に対応しました。(1000244)
  • メインプログラムが実行されたときに、トランザクション外でデータベースによるエラーが発生した場合、Magicが異常終了する件に対応しました。(541872)
  • データコントロールのソーステーブルが、複数のNULLデータを持つと、NULL表示文字列が表示されず、NULL計算値の最初の文字だけが表示される件に対応しました。（651843）
  • 親タスクでデータコントロールとして定義された変数項目を、サブタスクのフォームに配置しようとすると、Magicが異常終了する件に対応しました、（760611）
  • NULL値可とNULL値デフォルトをYesに設定したテーブルを、MS-SQLからOracleにデータコンバートすると、NULL値可とNULL値デフォルトがNoになってしまう件に対応しました。（137462）

SQL共通

  • SQL Where句/MagicSQLの式に「ソ、表、噂」など、２バイト目が0x5Cの文字をセットして実行すると、正しく処理されない問題に対応しました。(1000436)

関数

  • メインプログラムでSTAT(1,..)を実行しても、正しく機能しない件に対応しました。(428805)
  • ハンドラからCURROW(THIS())を実行しても、正しく機能しない件に対応しました。(754798)

ユーティリティ

  • メインプログラムでサブタスクが定義されているとき、コンポーネントイベントのクロスリファレンスを行うと、Magicが異常終了する件に対応しました。（302449）

リポジトリ入出力

  • データコントロールのソーステーブルにコンポーネントが設定されている場合、リポジトリ出力／入力を行うと、この設定がクリアされる件に対応しました。(297334)
  • プッシュボタンの実行イベントに、メインプログラムのユーザ定義イベントを割り当てたモデル項目がある場合、このアプリケーションをリポジトリ出入力すると、プッシュボタンの実行イベントの定義がクリアされる件に対応しました。(759170)
  • アプリケーションをリポジトリ入力した直後にフラットファイルを作成した場合、そのファイルを実行版でオープンすると、Magicが異常終了する件に対応しました(993932)
  • コンポーネント情報が含まれている出力ファイルをリポジトリ入力するときに、参照するコンポーネントアプリケーションのファイルが存在していない場合、Magicが異常終了する件に対応しました。(766145)
  • リポジトリ出力／入力すると、メニューに設定した権利が変更されてしまう件に対応しました。（977118）
  • キー番号を変更していたテーブルをメインテーブルにしたプログラムで、キー設定にKEYリテラルを使った式を設定した場合、このプログラムをリポジトリ出入力すると、KEYリテラルの番号が0になってしまう件に対応しました。(1000381)
  • リポジトリ入出力を行うと、データコントロールの範囲に指定された項目が変更されてしまう件に対応しました。(1000382,1000392)

フォーム

  • 「元に戻す」操作を行うと、データコントロールの範囲パラメータの値がクリアされる件に対応しました。(1000311)
  • スタイルがWindows立体の時に、テーブルの右側の境界線が表示されない件に対応しました。（756399）
  • 寸法単位がセンチで垂直精度が100の場合、フォームの高さと幅の値が、フォーム編集後に変更されてしまう件に対応しました。(1000377)
  • 子タスクのフォームテーブルからフォームを開き、親タスクのフォームのテキストコントロールを削除すると、同じフォーム上にあるコントロールの特性が、すべて子タスクのコントロールの特性に変更される件に対応しました。(1000394)

印刷機能

  • バックグラウンドモード（マルチスレッド）で、印刷処理が機能しない件に対応しました。
    以下の制限があります。(1000141)
    (1) 寸法単位をダイアログに設定したGUI形式フォームは正常に印刷できないことがあります。
    (2) テキスト形式プリント用のプリンタドライバはマルチスレッドに対応していません。

インターネット機能

  • レコードメインテーブルで移動登録操作を行い、セレクトコマンドの順序を変更した場合、以下のテーブルに設定されている項目が連動しない件に対応しました。(1000218)
    1. ハイパーリンク/パラメータ（フォーム特性、終了時URLなど）
    2. フォーム/HTMLコントロール/サブフォーム/コントロール特性/パラメータ
    3. HTMLフォーム特性／コンテキスト変数／パラメータ
    4. HTMLフォーム／Javaコントロール特性／パラメータ
    5. HTMLフォーム／ActiveXコントロール特性／パラメータ

ブラウザクライアント

  • ヘルプ番号を変更すると、自動ヘルプがずれてしまう件に対応しました(0472946)
  • 登録モードでレコードメインで実項目が代入された変数に対して、データ入力を行って次のレコードに移動すると、値がクリアされる件に対応しました。(960170)
  • ブラウザ起動時に、サブフォームのコントロールすべてのパーキング条件がNoになっている場合、ブラウザにエラーが表示される件に対応しました。(1000243)
  • サブフォームのパラメータに「スキップ」の項目を定義した場合、実行時に異常終了する件に対応しました。（1000252）
  • 修正モードでデータコントロールのコンボボックスの範囲式に項目を設定している場合、項目の値の変更に対して、ラベルが連動しない件に対応しました。(1000313)
  • 以下のようなプログラムにおいて、データ入力せずに次行アクションを発行すると、空のレコードが作成される件に対応しました。(1000317)
    1. レコードメインにリンクコマンドがある。
    2. レコード後処理にコールコマンドがある。
    3. コール先のプログラムで、パラメータで渡した変数を項目更新する。
  • サブタスクのフォーム上でコンボボックスの選択肢が表示されない件に対応しました。（1000289）
  • メインテーブルとリンクコマンドを定義したブラウザタスクで、実行時にリンクが成功しかつ重複エラーが発生した後に重複しないデータを入力しても、「重複エラー」が発生する件に対応しました。（1000341）
  • ブラウザクライアントでデータベースがOracleの場合、メインテーブルとリンクテーブルが定義されているプログラムで、途中行にレコードを挿入し、かつ重複エラーが出るとMagicが異常終了する件に対応しました。(984258)
  • マスク文字に「\」を使用する場合、「\\\\」と設定しなければならなかったのを、「\\」で設定できるようになりました。(1000209)
  • ビュー再表示アクションまたはモード変更を行った場合、カーソルがテーブル先頭に戻る件に対応しました。(1000214)
  • [タスク制御]ダイアログの[キャンセル確認]欄の設定が有効になりました。(1000207)
  • [タスク制御]ダイアログの[強制レコード後処理]欄が「True」の状態において、レコードの削除を行うと、Magicが異常終了する件に対応しました。(1000319)
  • [タスク制御]ダイアログの[レコード削除]欄を設定しても、データベース上からはレコードが削除されない件に対応しました。(1000208)
  • エディットコントロールにカーソルを置いた状態で取消アクションを実行しても、修正中の値はクリアされない件に対応しました。(1000291)
  • コンボボックスとリストボックスにおいて、マスク文字「,」は使用できない件に対応しました。(1000320)
  • ブラウザクライアントの実行時にリンクに成功し、かつ重複エラーが発生した後で、キャンセルアクションを発行すると、ブラウザにContext not Found のエラーが表示される件に対応しました。(1000340)
  • IE6.0 を使用した場合、フレームまたはハイパーテキストコントロールが正しく認識されず、エラーが発生する件に対応しました。 (1000337)
  • 論理型項目のラジオボタンコントロールにおいて、範囲欄がデフォルトの「True,False」以外に設定されている場合、正しく値を表示または、設定することができない件に対応しました。(1000408)
  • 論理型項目のチョイスコントロールにおいて、範囲欄にエスケープ文字が使用されている場合、正しく値を表示または、設定することができない件に対応しました。(1000409)
  • 文字型項目のエディットコントロールにおいて、範囲欄に「下限値-上限値」の設定がされている場合、上限値の値が入力できない件に対応しました。(1000410)
  • 数値型項目のエディットコントロールにおいて、範囲欄に個別の値として負数値が設定されている場合、その値を入力できない件に対応しました。(1000411)
  • ラインモードのブラウザクライアントで、テーブル末尾で登録してから更に行作成を行うと、その行のレコードが登録されない件に対応しました。(1000418)

サーバ機能

  • バックグランドモードで、次のようなプログラムに複数の実行リクエストを送るとMagicが異常終了する件に対応しました。（583082）
    • データベースがOracleまたはMSSQL Serverである
    • ハンドラに式、またはタイマイベントが設定されている
    • メインプログラムのDBテーブルに、プログラムで使うテーブルと同じテーブルが定義されている
    • 注意： データベースがPervasive.SQL 2000の場合には問題は起きません。
  • タスクキャッシュを設定している状態で高負荷を掛けると、Magicが異常終了する件に対応しました。（616179）
  • バックグラウンドモードにおいて、OSコマンドのウェイトパラメータが機能しない件に対応しました。(1000376)
  • MGREQ.INI、MAGIC.INI の RequesterTimeout の単位が、ミリ秒から秒に変更されました。(0876714)
  • バックグランドモードで、HTMLフォームに数値型のコンボボックス、リストボックスを定義したプログラムを実行すると、エラーが発生する件に対応しました。(1000370)

インターネットリクエスタ

  • ログ出力を行うと異常終了する件に対応しました。(1000438)
  • エンジンから返されるリクエスト結果が256文字より少ない場合に異常終了し、「Message out of Sequence」になる件に対応しました。(1000444)

その他

  • OSの例外処理が発生してMagicが終了する過程において、エラーのメッセージボックスを表示させないように対応しました。この場合、エラー情報はmgexcep.logに出力されます。この処理を有効にするには、次のパラメータをMAGIC.INIに設定します。
    [MAGIC_SPECIALS]
ExceptionMessageBoxDisplay = N


Ver9.01J SP3a での改善内容

モデル

  • V8から移行したアプリケーションで、変数項目等のモデル欄を0にすると、Magicが異常終了する件に対応しました。（1000262）

テーブル

  • 同じフォーマットで、DBテーブル名が異なる２つのテーブルに対してデータ入力を行うと、２番目のテーブルには正しく入力できるが、最初のテーブルには入力できない件に対応しました。（426583）

コンポーネント

  • 公開名の末尾が ￥(半角）、または2バイト目が0x5Cの全角文字（表、移など）で終わっている場合、「Item Not Available」 と表示され、ロードされない件に対応しました。(1000178)

プログラム一般

  • メインプログラムに変数が定義されている場合、コンポーネントのテーブルを設定したコンボボックスの範囲パラメータの「開始」または「終了」をズームすると、Magicが異常終了する件に対応しました。（921981）
  • Magicのインストールフォルダのパスにスペースが含まれる場合、OSコマンドが実行できないことがある件に対応しました。（1000321）
  • フォーム特性でモーダルウィンドウ、またはフローティングウィンドウをYesに設定すると、左辺位置および上辺位置の設定が無効化され、実行時には画面中央に表示される件に対応しました。（586970）
    MAGIC.INIに以下の設定を行うことにより有効になります。
    [MAGIC_SPECIALS]
SpecialCenteredFloatingWindow = Y
  • フォームテーブルとタスク定義ウィンドウを繰り返し開いていると、不定期にタスク定義ウィンドウが表示されなくなる件に対応しました。(1000333)
  • 式テーブルからアクション一覧を表示して、右側の画面から１番上の項目を選択すると、式欄には違うアクション名が選択される件に対応しました。(1000357)
  • 式テーブルから参照できる一覧テーブルのサイズを拡張しました。(1000361)

データアクセス

  • 埋め込みSQLタスク内でリンクコマンドを使用時、プログラムを修正した後で埋め込みSQLを実行すると、テーブル、またはプログラムを開いたときに、Magicが異常終了する件に対応しました。（1000326）
  • 埋め込みSQLタスク内でリンクコマンドを使用時、リンクテーブルがクローズしない件に対応しました。（1000325）

リポジトリ入出力

  • アプリケーションのリポジトリ出力／入力を行うとデータコントロールに設定したソーステーブルが外れる件に対応しました。（993118）
  • コンポーネントテーブルを使用したアプリケーションのリポジトリ出力／入力を行うと FILEリテラル指定したテーブル番号が消える件に対応しました。（763417）
  • コンポーネントテーブルを参照テーブルにしている外部キーのリポジトリ出力／入力を行うと参照テーブル欄が削除される件に対応しました。（425002）
  • 以下のいずれかの条件が当てはまる場合、コンポーネントのモデルを使用したテーブルのリポジトリ出力／入力を行うと、チェックユーティリティでエラーが表示される場合がある件に対応しました。(1000255)
    (1) モデルリポジトリに、公開名のない行が含まれる。
    (2) コンポーネント上のモデルの順序とモデルリポジトリテーブル上の順序が異なる。
  • 変数にコンポーネントモデルを使用し、かつ参照しているモデルリポジトリの中に、項目クラス以外で公開名が設定されていないモデルが含まれている場合、プログラムをリポジトリ出力／入力すると、以下の現象が発生する件に対応しました。（1000323）
    (1) プログラムチェックを行うと、「データ長を0より大きくしてください」のエラーになる。
    (2) その項目に対するVARSET関数のパラメータが空白になってしまう。

HTMLフォーム

  • HTMLフォームからエディットコントロールの書式でズームし、IF関数を使用した式を定義してフォームに戻ると、Magicが異常終了する件に対応しました。（1000344）

インターネット機能

  • HTMLフォームにてテーブルの色を指定できるようになりました。テーブルコントロールのスタイルを「2D」にしてカラムの色を設定します。（1000364）

ブラウザクライアント

  • ブラウザクライアントで、登録モード時にリンク項目の更新が機能しない件に対応しました。（955677）
  • サブタスクで定義されたタイマーイベントが無効になる件に対応しました。（1000328）
  • リロードを行うと、Magic Browser Client Error:Main Window not found のエラーが出る件に対応しました。（1000338）

サーバ機能

  • サーバマシン上でpcAnywhereを起動した時などに伴い、システムカラーの設定が変更された場合、バックグラウンドモードで起動されているMagicが、異常終了する件に対応しました。(1000368)


Ver9.01J SP3 の新機能

実項目をセレクトコマンドで定義した場合の項目名の設定

  • 実項目をセレクトした場合の項目名を、テーブルで定義した名前とは異なる名前に指定できます。
    • 実項目に対するセレクトコマンドの名前欄を編集することで変更できます。
    • 変更された名前は、変更したプログラムとそのサブタスクでのみ有効です。
    • 空白は入力できません。空白を入力すると、テーブルで定義された名前になります。

新しい関数一覧とアクション一覧

  • 関数とアクションの一覧が、グループ毎に分かれて表示されるようになりました。

ブラウザクライアントのエラーメッセージウィンドウ

  • ブラウザクライアントに HTMLページの妥当性をチェックするためのパラメータを渡すことができます。この設定で実行すると、エラーメッセージが独立したウィンドウで表示され、ユーザはエラーの情報を確認することができます。
    • 方法は、URLに DEBUG_CLIENT=1 というパラメータを付加します。このパラメータに1以外の値を指定すると、HTMLページのチェックを行いません。
    • プログラムリポジトリから [F7] キー でブラウザタスクを実行した場合は、常に DEBUG_CLIENT=1 が付加されて実行されます。つまり、開発モードで実行すると、常にチェック処理が有効になります。
    • エラーウィンドウを表示させるためのURLの例：
      http://servername/Magic9Scripts/mgrqispi9.dll?APPNAME=MYAPP&PRGNAME=MYPROG&DEBUG_CLIENT=1

ナビゲータと特性シートの統合

  • ナビゲータと特性シートが１つのウィンドウ内に表示されるようになりました。
    • ２つの表示を１つのウィンドウ内にまとめたい場合は、どちらかをドラッグして他方にドロップしてください。
    • ２つのオプションタブはウィンドウの下に表示されます。このタブで、ナビゲータと特性シートを切り替えられます。
    • これらを分けたい場合は、タイトルをドラッグしてから Ctrlキーを押しながらクリックしてください。
    • 統合されたウィンドウは、Magic のウィンドウの端に表示されるか、フローティングウィンドウ表示されます。

動作環境の設定：システムログイン

  • [設定／動作環境／システム]に[システムログイン]のパラメータが追加されました。
    この設定は、Magic のユーザアカウントをOSに合わせるかどうかを指定します。
    この設定の選択した以下の通りです：

設定 | 意味
N=なし | ユーザ名としてのデフォルト値を使用しないで、[パスワード入力]の設定に従って、自動的／明示的にログオンダイアログをオープンします。
U=ユーザ名 | OS にログオンしたユーザ名を元に、[パスワード入力]の設定に従って、自動的／明示的にログオンダイアログをオープンします。
F=フルログオン | ログオンダイアログは無効です。[パスワード入力]の設定は無視されます。 OSにログオンしたユーザ名を元に自動的にログオンされます。

注意：

  • Magic のユーザ定義ファイルのパスワードは、OSのパスワードと整合性があるわけではありません。
  • F=フルログオンを設定した場合、Magicは、Magicのユーザパスワードをチェックしません。これは、ユーザ名が既にOS側で認証済みだからです。フルログオンで指定していても、Magicのユーザパスワードは、ユーザ毎にユニークに指定しておくようにしてください。
  • OS のユーザ名がMagicのユーザ定義ファイルに無くて、ログオン処理に失敗しても、[パスワード入力]の設定は無視されます。
  • [パスワード入力]が [Yes] に設定されていると、OSにログインしたユーザ名でログオンダイアログが表示されます。

動作環境の設定：入出力デバイスのオープンタイミング

  • [設定／動作環境／動作設定]に[入出力デバイスのオープンタイミング]のパラメータが追加されました。
    入出力デバイスのオープンタイミングは２つの方法で制御できます。

設定 | 意味
I=即時 | 入出力を定義したタスクがオープンされた時点で実行されます。（デフォルト値）
O=利用時 | 利用時 データ出力／入力コマンドを実行したり、入出力デバイスを制御する関数(EOF、EOP、LINE、PAGE 等)が実行された時点で実行さ れます。

カラムタイトルに改行指定が可能

  • テーブルコントロールのカラムタイトルのテキストに改行を挿入して、複数行表示ができるようになりました。
    カラム特性のカラム名欄で広域表示ウインドウ(F6)を表示して、複数行編集を行います。


Ver9.01J SP2aの新機能

RQRTINF 関数の戻り値の変更

RQRTINF関数の戻り値が以下のように変更されました。(太文字が追加された値)

  • ホスト名
  • ポート番号
  • IPアドレス
  • プロセスID
  • ステータス
  • アプリケーション名
  • 実行スレッド数
  • ピークスレッド数
  • 最大使用可能スレッド数

イベントの追加／変更

以下のイベントが追加されました。

  • チェックアウト
  • チェックイン (Ctrl + 1)
  • 再同期
  • アンチェック (Ctrl + 2)
  • 水平均等揃え (Ctrl + 2)
  • 垂直均等揃え (Ctrl + 3)
  • 前面移動 (Ctrl + 4)
  • 背面移動 (Ctrl + 5)
  • 最背面移動 (Ctrl + 6)
  • 最前面移動 (Ctrl + 7)
  • Zオーダ表示 (Ctrl + 8)
  • サイズ調整 (Ctrl + 9)
  • フォルダへ移動 (Ctrl + F)

定義式ウィンドウ内でのショートカットが変更されました。

  • 関数一覧 (Ctrl + 1)
  • アクション一覧 (Ctrl + 2)
  • キーボード一覧 (Ctrl + 3)
  • 権利一覧 (Ctrl + 4)
  • コントロール一覧 (Ctrl + 5)
  • テーブル一覧 (Ctrl + 6)
  • プログラム一覧 (Ctrl + 7)
  • エラー一覧 (Ctrl + 8)

ＭＡＧＩＣクライアントで以下のイベントが有効になりました。

  • ダブルクリック
  • クリック
  • マウスアウト
  • マウスオーバー

注意： 同一のコントロールに対して「クリック」イベントと「ダブルクリック」イベントの両方をハンドラに指定すると、ダブルクリックの場合、「クリック」イベントが２回ハンドリングされ、「ダブルクリック」イベントは無効になります。

開発機能の改善

  1. 開発時にリポジトリに戻るとき、最後にリポジトリがオープンしていた時のカーソルがあるフォルダに、自動的にパークするようになりました。
  2. リポジトリの中で、オプション・メニューのフォルダオプションをクリックするか、CTRL+Fを押下し、ジャンプしたいフォルダを選択することによって、簡単に異なるフォルダへジャンプすることができます。
  3. プロパティシートに格子線が表示されるようになりました。また、文字列を入力する特性で 広域表示(F6)が可能になりました。


Magic eBusiness Platform Ver9.30J SP5 History

Ver9.01J SP2a での改善内容

モデル

  • 項目モデルに設定されたコントロールモデルが、モデルの追加／削除等によりリンクが切れる件に対応しました。

ワークグループ開発機能

  • テーブルリポジトリでのAPGとチェックアウト／チェックインが重なった場合に異常終了する件に対応しました。この対応によって、テーブルリポジトリをオープンしているユーザがいる場合、テーブルリポジトリがロックされチェックインできなくなります。

フォームエディタ

  • コントロールパレットのコンボボックス上で右クリックした時のメニューから、ソーステーブルを指定したコンボボックスのモデルを選択して、GUIフォーム画面にレイアウトした場合、プログラムのチェック時、または実行時にMagic が異常終了する件に対応しました。

インターネット機能

  • NSAPIのリクエスタがロードできない件に対応しました。
  • サウンドコントロールのサウンドファイル名パラメータが機能しない件に対応しました。

ブラウザクライアント

  • 終了時URLの有効桁数を256バイトから1024バイトに拡張しました。
  • イベント起動を255回実行するとMagicエンジンが異常終了する件に対応しました。
  • 取消アクションの後でデータを修正するとMagicエンジンが異常終了する件に対応しました。
  • 書式のマスク文字に全角文字が含まれる場合、末尾のデータがカットされる件に対応しました。
  • 00年と29日以降の組み合わせの日付を入力した場合、レスポンスが遅くなり、日付の正当性チェックが行われない件に対応しました。
  • ブラウザクライアントの技術資料を添付しました。

パーティショニング機能

  • MRBから起動したMagicをALT+F4で終了させるとMagicが異常終了する件に対応しました。

リポジトリ入出力

  • Ver8プログラムをVer9 SP2に移行する時、マージを使用して複数のデータ出力コマンドを使用している場合、フォーム番号がずれる件に対応しました。
  • リポジトリ出入力を行なうと、データコントロール／ソーステーブル／範囲の設定が変更される件に対応しました。

その他

  • 処理テーブルでコールのパラメータにスキップが入っている行をコピーしてペーストすると、スキップのチェックが外れる件に対応しました。
  • [コールリモート]コマンドの行をコピー/ペーストすると、[パラメータ]の[名前]欄がコピーされず、空白になる件に対応しました。
  • バックグラウンドモードでDELAY関数実行中に、CPU使用率が100%になる件に対応しました。


Ver9.01J SP2の新機能

ブラウザクライアントモジュールの環境設定

(1) ブラウザクライアントモジュールのクライアント配置

動作環境／アプリケーションサーバに追加されました。

有効値: 「Yes 」または「No」

ブラウザベースのプログラムにおいて使用するモジュール（JavaApplet）をクライアントに配置するかどうかを指定できるようになります。クライアントに配置することにより、モジュールのロード時間を短縮できます。

Yes | モジュールをクライアントに配置します。使用されるモジュールはLauncher.CABおよびMGBC9##_##S.CABになります。##_##の部分にはバージョンとサブバージョンを表す数値が入ります。
No | モジュールをクライアントに配置しません。使用されるモジュールはMGBC9##_##.CABになります。##_##の部分にはバージョンとサブバージョンを表す数値が入ります。

変更の反映: 即時

MAGIC.INI およびコマンド行名: UseSignedBrowserClient

アプレットが最初のロード時にクライアント・マシン上に格納されます。ブラウザ・タスクがこのモジュールを必要とする時は、アプレットは直接クライアントに配置されたモジュールを使用し、ダウンロードする必要がありません。

モジュールがクライアントローカルに格納する前にブラウザ・ビルトイン確認ダイアログにてユーザが承認を行なう必要があります。

注意：動作環境ダイアログで設定する場合、「ブラウザクライアントのサブバージョン」と同時に設定してください。

(2) ブラウザクライアントのサブバージョン

ブラウザベースのプログラムにおいて使用するJavaAppletおよびJavaScriptのMagicが管理するサブバージョンを指定します。
この設定は文字列で「01」のように指定します。「01」と指定した場合、Magicバージョン9.01JSP2aにおいて使用されるファイルは以下のようになります。

JavaApplet | MGBC901_04_01.CAB または MGBC901_04_01S.CAB
JavaScript | MGBC901_04_01.JS

この指定がない場合、Magicに標準添付されているファイルが使用されます。

変更の反映: 即時
MAGIC.INI およびコマンド行名: BrowserClientSubVersion

注意： 動作環境ダイアログで設定する場合、「ブラウザクライアントモジュールのクライアント配置」と同時に設定してください。

(3) 署名されたブラウザ・クライアント・モジュール

ブラウザ・クライアントJavaアプレット・モジュールは、VeriSignのデジタル署名により証明されました。これは、エンド・ユーザにこのモジュールの内容が改ざんされなかったことをVeriSign承認証明書によって確認することを意味します。

署名されたアプレット・ファイルは、標準的なアプレット・ファイルと異なります。署名されたアプレット・ファイルと署名されていないアプレット・ファイル名の違いは最後の文字'S'によって識別することができます。

例えば、MGBC901_03S.cab

アプレットの最初のロード時にブラウザ・ビルトイン確認（セキュリティ警告）ダイアログが表示されます。実行するには、はい(Y)を選択します。

ブラウザクライアント・ツールバー

VCRメニュー用のイメージファイルを使用して、Magicの実行モード時のVCRメニューと同等の操作をブラウザクライアントにて行えます。

同様に編集メニュー用のイメージファイルを使用して、「行作成」「行削除」「取消」の操作をブラウザクライアントにて行えます。

これらのイメージファイルはそれぞれ「mgvcr.jpg」、「mgedit.jpg」というファイル名でブラウザクライアント用のJavaAppletとJavaScriptと同一のフォルダにインストールされます。

これらの機能を使用する場合、[フォーム特性]の[HTMLファイル]欄に指定されたファイル中に、それぞれ以下のような内容を追加します。

VCRメニュー： <IMG src="/Magic9Java/mgvcr.jpg" name="MG_VCR">

編集メニュー： <IMG src="/Magic9Java/mgedit.jpg" name="MG_EDIT">

[src] のパスはそれぞれの環境に合わせて変更してください。ただし、[name] の内容は変更しないでください。

イベント実行コマンドの改善

イベント実行コマンドが非同期（Wait=No）のときもパラメータを渡すことができるようになりました。パラメータは参照のみ可能です。従ってイベントプログラムでパラメータを変更しても、値は戻すことはできません。

MVCSナビゲーション

チーム開発を有効にすると、[ナビゲータ]ペインで ［MVCS］が選択できるようになります。

オブジェクトをチェックアウトすると、オブジェクトが[ナビゲータ]ペインに表示されます。このツリーで表示されたオブジェクトをクリックすることで、自分がチェックアウトしたオブジェクトに、ジャンプすることができます。

タスク定義内でのカット＆ペースト処理の拡張

タスク定義内のハンドラテーブルと処理テーブルで行のカット&ペーストが出来るようになりました。

タスク定義の場合は、レベルがグループ、コントロール、ハンドラの時だけ有効になります。

番号カラムをクリックして行をハイライトさせ、右クリックでコンテキストメニューを開き、コピー、切り取り を選択します。

タスク定義をコピーすると対応する処理テーブルの内容もコピーすることができます。

カラム境界特性

GUIフォームのカラム特性に、2つの特性が追加されました：

上境界線 | カラムの上の境界線を表示するかどうかを指定します。
右境界線 | カラムの右側の境界線を表示するかどうかを指定します。

Yes/No または、式で定義できます。

選択テーブルでの位置付け機能

Magic が開発機能として提供している選択一覧（モデル一覧、テーブル一覧 など）で、選択項目を位置付けする機能が拡張されました。

インクリメンタルサーチの様に先頭の文字を入力することで該当する項目に位置付けを行ないます。(全角文字での検索は正常に機能しない場合があります。)

VARPIC関数

この関数は、指定した項目の書式を取得するものです。

構文 | VARPIC（シンボル名、モード）
シンボル名 | セレクト項目のシンボル名（VAR リテラルをつけないとエラーになる場合があります）
モード（数値） | 機能モード | モード= 0 | カラム特性、変数特性で定義された書式が返ります。Blobは、空白が返ります。
 |  | モード= 1 | コントロール特性上で定義された書式が返ります。クラス=0 のみ有効です。

フォームに定義されていない 項目は モード=0 と同じ結果になります。

EDITGET関数

項目の内容を取得する関数ですが、通常のフローでは動作せず、ハンドラやコントロール前後処理時にのみ有効になります。

構文 | パラメータはありません。
戻り値 | ハンドラ実行時に最後に編集された値が返ります。型は、対象となる項目の書式に依存します。

（例）

ハンドラの場合 | トリガが発生したときにパーキングしている項目の現在の値が返ります。このときハンドラが、強制終了：レコード になっている場合は、無効です。
コントロール前 | 指定したコントロールに入ろうとした時点でそのコントロール（項目）の内容が返ります。
コントロール後 | 指定したコントロールを出ようとした時点でそのコントロール（項目）の内容が返ります。

EDITSET関数

この関数は、ハンドラーが起動された時点でのカレントのコントロールの内容に値を設定します。

構文 | EDITSET(値)
値 | 設定する値 型は、設定先の型に合わせる必要があります。
戻り値 | 論理値 | True | 処理が成功した場合
 |  | False | 処理が失敗した場合

（例）

ハンドラの場合 | トリガが発生したときにパーキングしている項目に指定した値が設定されます。このときハンドラが、強制終了：レコード になっている場合は、無効です。
コントロール前 | 指定したコントロールに入ろうとした時点でそのコントロール（項目）の内容が更新されます。
コントロール後 | 指定したコントロールを出ようとした時点でそのコントロール（項目）の内容が更新されます。

クロスリファレンスの範囲

クロスリファレンスの対象となるリポジトリの行番号の範囲を指定できるようになりました。

クロスリファレンス実行時のダイアログに対象となる番号の範囲を指定することで項目が追加され、ＣＴＬ特性を除く全てのオブジェクトで範囲を指定することが可能です。


Ver 9.01J SP2 での改善内容

コンポーネント

  • メインプログラムにあるスコープ=グローバルに設定されたハンドラが、即座に実行されない件に対応しました。
  • 不正な、MCIファイルをロードしようとすると異常終了する件に対応しました。

モデル

  • データコントロールを定義したモデルを、移動登録で下方向に移動すると、Magicが異常終了する件に対応しました。

マルチスレッド

  • リンク項目でソートすると異常終了する件に対応しました。
  • DBDEL関数でテーブルの削除を行った後、そのテーブルをアクセスすると "テーブルの定義があっていません" というエラーになる件に対応しました。

ワークグループ開発機能

  • チーム開発時、クロスリファレンスの直前に再同期が行われない件に対応しました。

フォームエディタ

  • クラス１以上の同一クラスのフォームが複数ある場合は、フォームエディタからの終了時に異常終了する件に対応しました。
  • ブラウザクライアントでHTMLコントロールを変更すると異常終了する件に対応しました。
  • ハイパーリンクダイアログでプログラム一覧を閉じるときに異常終了する件に対応しました。

印刷機能

  • タスクバーのアイコンをクリックしてもプレビューウィンドウにフォーカスが移動しない件に対応しました。

インターネット機能

  • HTMLマージ処理で、INIGETを使ったタグを使うと異常終了する件に対応しました。

ブラウザクライアント

  • リンクの再計算が行われると、リンクレコードを登録しようとする件に対応しました。
  • 後付マイナス符号の書式を定義した数値項目(N5.2-;-;) が表示できない件に対応しました。
  • リンクコマンドの「確認」パラメータがYesの場合、リンク失敗時のエラーチェックが行われない件に対応しました。
  • リンクに失敗しても、戻り値がTrueが返る件に対応しました。
  • THIS()関数を使ったVARATTR()関数が機能しない件に対応しました。
  • 式で設定されたプッシュボタンのイベント実行が、機能しない件に対応しました。
  • SETCRSR()関数を設定したプログラムをコールすると、親のプログラムで関数が実行される件に対応しました。
  • テーブルコントロール上の無効なコントロールにパークする不具合に対応しました。パークするコントロールが存在しない場合は、ブラウザクライアントの内部エラー（Internal Error）になります。
  • 時刻型項目に不正な時刻データを入力した場合にエラーにならない件に対応しました。
  • [設定/動作環境]の[アプリケーションサーバ] タブの[コンテキスト非稼動タイムアウト] 欄および[コンテキストのアンロードタイムアウト] 欄の設定は無効になる件に対応しました。
  • [タスク特性]ダイアログの[チェック時期]欄に「即時」と設定してもレコード更新後にのみチェックを行なわれる件に対応しました。
  • コンボボックスをクリックしたときにリストがすぐに閉じてしまう場合がある件に対応しました。
  • [タスク制御]ダイアログの[更新確認]欄の設定が無効になる件に対応しました。
  • APGでHTMLファイル作成時に、論理名が反映しない件に対応しました。
  • 日付項目に'0000/00/00'Dateを設定できない件に対応しました。

テーブルリポジトリ

  • コメントを設定したテーブルを新しいテーブルに上書き登録を行った後、Magicが異常終了する件に対応しました。

リポジトリ入出力

  • 書式がN14.3とCN10.6のカラムを持つテーブルをリポジトリ入力すると、チェック時に「サイズが不正です」のエラーが出る件に対応しました。
  • ドキュメント出力時にモデルの書式、型などの特性パラメータが出力できない件に対応しました。
  • リポジトリ入力時にCTL特性に設定された権利が反映されない件に対応しました。

データアクセス

  • セレクトコマンドの移動登録を行うと、GUIコントロールのパラメータ設定が消える件に対応しました。（例えば、プッシュボタンの実行イベント等）
  • レコード後処理にエラーコマンドがあると、強制終了=レコードに設定したハンドラの実行時にプログラムが終了できなくなる件に対応しました。
  • 照会モード位置付けの後、上方向のマルチマーキング機能が正しく動作しない件に対応しました。

その他

  • ハンドラの式を定義、または修正を行った後でESCを押すと、異常終了する件に対応しました。
  • ヘルプ項目のエントリの順序を変更した後で、正しく自動ヘルプを設定されているプログラムでプログラムチェックを行うとエラーになる件に対応しました。
  • メインプログラムの終了条件が "Yes" で、アプリケーション開始モードが "R=実行" の時、アプリケーションをオープンすると異常終了する件に対応しました。
  • エラーコマンドのウィンドウタイトルが英語表記になる件に対応しました。
  • 項目に代入するデータにスプリットが発生した場合、正しく処理されない件に対応しました。例えば、10バイトの領域に11バイトのデータを代入し、10バイト目と11バイト目で２バイトコードを構成している場合、2バイトコードのスプリットが発生する為、データが正しく認識できませんでした。


データベース固有の追加情報

各データベースに固有な追加情報は、以下にあります。

DBMS名 | 追加情報
Pervasive.SQL 2000ｉ | readme_psql.htm
Memory | readme_mem.htm
Oracle8／Oracle8i | readme_ora8.htm
MSSQL7 | readme_ms7.htm
DB2 UDB | readme_db2.htm
ODBC | readme_odbc.htm

Windows 98上でマイクロソフト社の MSDE 1.0 をインストールすると、インストール途中でハングアップすることがあることが知られています。この問題の詳細と対応方法については、「Windows98上でのMSDEインストール時の障害について」を参照してください。


readme_psql

２００３年３月
マジックソフトウェア・ジャパン 株式会社

Pervasive データベースゲートウェイ

Ver9.3-4 追加情報
Magic eBusiness Platform Ver9.30

本文書には、Magic eBusiness Platform（以下 Magic と表記）Pervasive データベースゲートウェイとして提供されるプログラム（MGPV2K.DLL）に関する情報が含まれています。文書中に記述されている"本プログラム"とは、"MGPV2K.DLL"を示します。

本プログラムのバージョンは、Magic の[ヘルプ／MAGIC情報]の[ロードモジュール]欄にて確認できます。

本文書中において特にことわりのない場合、Pervasive.SQL は Pervasive.SQL 2000i Workgroup を指します。以下 Pervasive.SQL は P.SQL と表記します。

なお、P.SQL を使用する場合、P.SQL に添付されるドキュメントも参照してください。

使用条件

動作環境

仕様および制限事項

技術情報

使用条件 (Top)

  • 本プログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。

  • 本プログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。

  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。

動作環境 (Top)

  • Magic Ver9.30JSP5で動作確認しています。

  • 本ゲートウェイと P.SQL 2000i Workgroup を組合わせて使用する場合、Magic Ver9.30 に添付されている P.SQL 2000i Workgroup SP3 を使用してください。

  • サーバベースの P.SQL との接続テストは以下の環境で確認しました。
    P.SQL 2000i for Windows NT（Server Edition）：Serverが1CPUの場合のみ

  • 基本構成
    P.SQL 2000i Workgroup はデータサーバとなるマシンにインストールし、そのマシンの P.SQL のエンジンからのみデータをアクセスすることをお勧めします。
    詳細は本ドキュメントの「Windows の簡易 LAN について」を参照してください。

  • 本ゲートウェイの使用する P.SQL の機能
    P.SQL ではトランザクショナルアクセス及びリレーショナルアクセスがサポートされています。本ゲートウェイではトランザクショナルアクセスを使用していますので、リレーショナルアクセスは使用できません。
    アクセス方法等の詳細については P.SQL に添付されるオンラインマニュアル（Getting Started with Pervasive.SQL）を参照してください。

仕様および制限事項 (Top)

以前のバージョンとの共存について

  • Magic Ver9 では「Ver4.3 ロック互換機能」はサポートされていません。

  • P.SQL を使用する場合、dbMAGIC Ver8 以降にバージョンアップしてください。

  • P.SQL の仕様により、トランザクショナルエンジンのバージョンが異なる場合（例 P.SQL 2000i と Btrieve Ver6.15）、同時に同一ファイルに正常にアクセスできません。
    そのため、dbMAGIC Ver8 以前のバージョンとの間で同一ファイルにアクセスする場合、必ずエンジンのバージョンを揃えてください。

本ゲートウェイ使用時（並行開発時、並行運用時共に）の最適な環境設定を以下に示します。

[DBMS]テーブル | パラメータ |  | /EXTENDED=Y
[データベース]テーブルの[データベース特性]ダイアログ | Magic ロック |  | テーブル（物理トランザクション使用時）
 |  |  | 両方 （遅延トランザクション使用時）※1
 | ロックパス |  | スペース（何も設定しない）
[動作環境]テーブル | ロックファイル |  | mglock.dat
[タスク特性]ダイアログ | オンラインタスク、ブラウザタスク | トランザクション開始 | レコード前処理の前（遅延トランザクション使用時）※2
 |  | ロック方式 | 入力時
 | バッチタスク | トランザクションモード | 物理
 |  | ロック方式 | 即時

※1 遅延トランザクション使用時、ロック制御はロックファイルで行われるため
※2 遅延トランザクション使用時、更新レコードの識別は行われないため

P.SQL の環境設定について

環境設定は P.SQL に添付の Pervasive Control Center にて行います。
以下の設定値を確認してください。

  • [サーバ／通信バッファサイズ]カテゴリの[通信バッファサイズ]設定を「65153」にしてください。

  • [サーバ／通信バッファサイズ]カテゴリの[MKDE 通信バッファサイズ]設定を「65153」にしてください。

  • [サーバ／データインテグリティ]カテゴリの[トランザクション一貫性保守]設定を「On」にしてください。

サーバベースの P.SQL の使用について

  • 中規模以上のシステムでは、P.SQL 2000i for Windows NT（Server Edition）または P.SQL 2000i for NetWare（Server Edition）の使用を強くお勧めします。
    このどちらも Magic にはバンドルされていません。これらの P.SQL（Server Edition）を使用する場合、レコードの選択はサーバで行われます。範囲で指定されたレコードだけがクライアントに送られます。

  • Magic から P.SQL（Server Edition）を使用する場合、[クライアント／アクセス]カテゴリの[リクエスタ]設定を「On」にしてください。

  • P.SQLに対して、下位バージョンのリクエスタからのアクセスはサポートされていませんので、P.SQL 2000i へのリクエストは P.SQL 2000i のリクエスタを使用してください。

Windows の簡易 LAN について

Windows の Microsoft ネットワーク共有サービス、またはワークステーションを利用して、任意の Windows マシンを Magic のサーバとして使用し、更にこのマシン上で Magic を実行することができます。

この場合、全てのマシンがサーバとして動作する可能性があります。そのため、P.SQL に添付の Gateway Locator を使用、または[クライアント／アクセス]カテゴリの[ローカル]設定および[リクエスタ]設定を設定する等、サーバとなるマシンが明確になるように設定することをお勧めします。

サーバとなるマシンでは[サーバ／アクセス]カテゴリの[リモートリクエストの受付]設定を「On」にしてください。

以下の設定により、システムトランザクションの実行が頻繁に行われるようになるため、ロックの解除は速くなりますが、ディスクアクセスは増加することがあります。

  • [サーバ／データインテグリティ]カテゴリの[起動時間制限]設定を「1」にしてください。

  • [サーバ／データインテグリティ]カテゴリの[オペレーションバンドル制限]設定を「1」にしてください。

その他

  • 可変レコード長と固定レコード長との合計サイズは 32767 バイトまでです。これは Magic の仕様制限によるものです。

  • １個のファイルにつき、BLOB 型項目を１項目のみ定義することができます。また、メモ型項目と BLOB 型項目は１個のファイルに同時に定義できません。

  • P.SQL を使用する場合、トランザクションの範囲外ですべてのファイルをオープンしてください。

  • レコードレベルのトランザクション機能を使用する場合、[トランザクション開始]欄を「レコードロック時」としてください。これは P.SQL ではトランザクション開始前に読込んだレコードに対して更新および削除ができず、トランザクション終了時にレコードロックを解除するためです。

    [トランザクション開始]欄を「レコード前処理の前」とした場合、トランザクション開始前にレコードが読込まれる場合があります。

  • レコードを確定する場合、処理対象となるレコードの前または後のレコードを一時的に取得することがあります。そのため、それらのレコードに既にロックがかけられている場合、レコードロックが発生することがあります。

  • 親子タスクにおいて同一のテーブルを使用した場合、子タスクでレコード登録に失敗すると、親タスクのレコードに対するロック情報が残る場合があります。

  • 存在するファイルに対してテーブル特性のアクセスキーおよび暗号化キーを変更することはできません。ただし、新規に設定する事は可能ですので、変更する場合、一度これらの設定を解除してから再設定してください。

  • [データベース特性]ダイアログの[照合順序ファイル]は無効となります。

  • ログファイル名には、セッションごとに設定されるユーザ名とプロセスＩＤが付加されます。そのため、ログファイルを長いファイル名をサポートしないディスク上に作成しないでください。

データテーブルアクセス規制

下表は、物理トランザクション使用時に、処理A から先にアクセスされたテーブルに対して、処理B が後からアクセスした場合、どういうアクセス規制が働くかを示しています。

  • Magic のロックファイル（mglock.dat）を共用した場合 かつ[Magic ロック]が「両方」または「テーブル」の場合

    処理A: [タスクタイプ]=オンライン、[ロック方式]=入力時
    処理B: [タスクタイプ]=オンライン、[ロック方式]=入力時 または
    [タスクタイプ]=バッチ、 [ロック方式]=即時

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) | T+R+ | T+R+ | T- | T- | T- | T-
 |  | 書出(W) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-
 | 書出(W) | 読込(R) | T- | T+R+ | T- | T- | T- | T-
 |  | 書出(W) | T- | T+R+ | T- | T- | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-

  • Magic のロックファイル（mglock.dat）を非共用にした場合 または[Magic ロック]が「なし」または「レコード」の場合

    処理A: [タスクタイプ]=オンライン、[ロック方式]=入力時
    処理B: [タスクタイプ]=オンライン、[ロック方式]=入力時 または
    [タスクタイプ]=バッチ、 [ロック方式]=即時

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | 書出(W) | T+R+ | T+R+ | T- | T+R+ | T+R+ | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-
 | 書出(W) | 読込(R) | T- | T+R+ | T- | T+R+ | *1 | T-
 |  | 書出(W) | T- | T+R+ | T- | T+R+ | T+R- | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-

TT- :テーブルアクセスに制限があります（テーブルがオープンできません）。
T+R-:テーブルアクセスには制限はありませんが、
レコードアクセスに制限があります（レコードロックがかかります）。
T+R+:テーブルアクセスにも、レコードアクセスにも制限がありません。

*1:入力時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ちとなります。即時レコードロックはかかりませんが、レコードを更新しようとした場合、レコードロック解除待ち、もしくはレコードがロックされていますとなります。

これらの表からわかりますように、[データベース特性]ダイアログの[Magic ロック]を「両方」または「テーブル」に設定し、Magic のロックファイル（mglock.dat）を共用してください。

レコードの挿入、更新、削除を行うタスクがアボートする問題の対応

  • 暗黙のページロックの説明
    P.SQL では並行トランザクションをサポートしています。つまり、複数のアプリケーションが同じファイル（Ver6.x 以降のファイル形式）に同時に複数のトランザクションを実行できます。
    並行トランザクション中にファイルが変更されると、変更されたレコードを含むページ（レコードが可変長のときには複数ページ）とそれに関連するインデックスのページが、P.SQL により自動的にロックされます。これを暗黙のページロックと言います。
    暗黙のページロックによりロックされたページ上にある明示的にロックされていないレコードを更新、削除する場合、ロックとなります。
    暗黙のページロックとレコードロックは互いにブロックしません。

  • Magic におけるマルチユーザ制御
    レコードロック発生時の Magic の動作はイベントハンドラの[行ロック]イベントおよび[タスク特性]ダイアログの[エラー発生時]欄の設定により決定されます。

    レコードの挿入、更新、削除に失敗した時の Magic の動作はイベントハンドラの[挿入／更新／削除に失敗]イベントおよび[タスク特性]ダイアログの[エラー発生時]欄の設定により決定されます。

  • 問題点
    [挿入／更新／削除に失敗]イベント発生時に「アボート」する設定となっているタスクでは、レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、タスクはアボートします。
    この動作は、Ver7 以前の dbMAGIC と 標準添付の Btrieve の組み合わせの動作と異なります。

  • 問題の対応
    レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生した場合、そのオペレーションをリトライします。リトライが失敗した場合、イベントハンドラの設定に基づいた動作を行います。リトライ回数およびリトライ間隔を設定するには、[DBMS]テーブル[Pervasive]行の[パラメータ]欄に以下のように設定してください。

    /RTRY=リトライ回数:リトライ間隔（ミリ秒単位）

    この設定がない場合、リトライは行われません。リトライ回数の上限は 10 回となります。また、リトライ間隔の設定がない場合、リトライ間隔は 500 ミリ秒となります。

  • 問題の対応の副作用
    並行トランザクションがコミット、または、アボートされるか、リトライ回数が上限を越えるまで Magic に制御が戻りません。必要に応じてリトライ回数とリトライ間隔を調節してください。

P.SQL の仕様（暗黙のページロック）により、次のような手順で操作を行うと、デッドロック状態になる場合があります。

  1. ユーザＡとユーザＢが Magic のロックファイル（mglock.dat）を共用します。

  2. ユーザＡがオンラインタスクにより、あるファイルのあるレコードをロックします。
    （このタスクの[タスク特性]ダイアログの[ロック方式]欄は「入力時」に設定）

  3. ユーザＢがバッチタスクにより、上記ファイルのあるレコードを更新した後、ユーザＡがロック中のレコードにきたところで、レコードロック解除待ちになります。（このタスクの[タスク特性]ダイアログの[ロック方式]欄は「即時」、[トランザクションモード]欄は「物理」、[トランザクション開始]欄は「タスク前処理の前」に設定）

  4. ユーザＡがレコードの更新を行います。
    ステップ３で、このレコードを含むページに対して暗黙のページロックがかかっているため、ユーザＡの方もレコードロック解除待ちになります。

    なお、Esc キーを押せば、レコードロックは解除できます。

Magic が異常終了した場合、ファイルがロック状態になる場合があります。

これはP.SQL がまだ動作しているため、P.SQL で管理しているロック情報が残るためです。必要に応じて以下の処理を行ってください。

  • P.SQL に添付の Monitor を使用して異常終了したユーザを削除してください。

  • タスクトレイ上の P.SQL のアイコンを右クリックし、P.SQL を停止してください。

    P.SQL はスタートアッププログラムに登録されています。このようにしておきますと、Magic の起動がより速くなります。P.SQL を終了した場合、Magic 起動前にP.SQL を起動しておくことをお勧めします。

ファイルフォーマットについて

  • 以前のファイルフォーマットで新規ファイルを作成したい場合、[サーバ／ファイル互換性]カテゴリの[作成ファイルのバージョン]設定を使用したいファイルフォーマットに合わせて変更してください。

    注意事項：Magic においてファイル定義を変更（例えば、項目の定義順の入替え等）した時にも、ファイルフォーマットは設定されているファイルフォーマットに変更されます。

  • ファイルフォーマットは 6.x 以上にすることをお勧めします。Btrieve 5 で作成されたファイルと Btrieve 6 以降で作成された 5.x フォーマットには差異がある為です。また、パフォーマンスの面からも 6.x 以上にすることをお勧めします。

  • 6.x 以前のフォーマットのファイルは BLOB 型項目を扱えません。
    これは P.SQL の仕様制限によるものです。

  • 6.x 以前のフォーマットのファイルに対する並行トランザクションは排他トランザクションとして扱われるため、ファイル全体がロックされます。
    これは P.SQL の仕様制限によるものです。

  • 6.x 以前のフォーマットのファイルに対する Extended 命令は発行されません。

ファイル名について

  • 長いファイル名を使用できます。ただし、ファイル名の最大長に関しては P.SQL が動作しているオペレーティングシステムの仕様の制限、Pervasive ゲートウェイが 動作しているオペレーティングシステムの仕様の制限、および P.SQL がサポートしている仕様の制限を受けます。
    ファイル名の最大長の詳細については、各々の製品に添付されているマニュアルおよび注意事項を参照してください。

  • ファイル名に空白文字を使用する場合、クライアント側のマシンの[クライアント／アクセス]カテゴリの[スペースを含むファイル／ディレクトリ名]設定を「On」にしてください。
    この設定が「Off」の場合、空白文字の１つ手前の文字までをファイル名とします。
    これは P.SQL の仕様制限によるものです。

P.SQL 7 以降の新機能の使用について

Magic に添付されている Pervasive ゲートウェイでは P.SQL 7 以降の新機能は考慮されていません。P.SQL 7 以降の新機能に対するテストは行っていませんが、現時点で注意が必要と思われる内容を以下に示します。

  • 7.x 以降のフォーマットを使用する場合、ページあたりレコード数が256に制限されます。設定／データベース／特性／データベース情報欄に「/PAGESIZE=####」を設定し、より適切なページサイズとなるように設定することをお勧めします。ページサイズは、512の倍数、かつ、4096を超えない値を設定してください。
    ただし、ファイルが分割された場合、Magic の持つファイル管理関数、入出力機能関数およびファイル変換ユーティリティなどは、分割されたファイルの一つにしか有効にならず、処理が正常に終了しない場合がありますのでご注意ください。

  • P.SQL のオンラインマニュアルに”ファイルに対してキーを定義していない場合でも、トランザクションの一貫性保守機能を有効にすると自動的にキーが追加されます”と書かれています。そのため、ファイルには明示的にユニークキーを設定することをお勧めします。

  • Magic では ACS（オルタネートコレーティングシーケンス）及び ISR（インターナショナルソート規約）はサポートしていません。これらの機能を使用するとファイルの内容が予期した通りに表示されない可能性があります。

  • ステータスコードの変更点については P.SQL に添付されるオンラインマニュアル（Status Codes and Message）を参照してください。P.SQL 7 以降に追加されたステータスコードが返された場合、ファイルマネージャの異常としてダイアログに表示されます。

技術情報 (Top)

記憶型式と有効キー長

これらのカラムの[データベース定義]欄は「標準」に設定されます。

項目型 | 記憶型式 | 有効キー長
文字 | String | 1-255
 | LString | 1-255
 | ZString | 1-255
数値 | Signed Integer | 2、4
 | Unsigned Integer | 2、4
 | Float | 4、8
 | Float MS-Basic | 4、8
 | Packed Decimal | 1-10
 | Numeric | 1-18
 | Magic Number | 2-10
 | C-ISAM Decimal | 2-17
論理 | Integer Logical | 1、2
 | String Logical | 1
日付 | Integer Date | 4
 | Integer Date - 1901 | 4
 | String Date | 6、8
 | YYMD Date | 4
 | Magic Date | 4
 | Magic Date - 1901 | 4
時刻 | Integer Time | 4
 | String Time | 6
 | HMSH Time | 4
 | Magic Time | 4

制限値

項 目 | 制限値
インデックスの最大数 | 119
インデックスセグメントの最大数 | 119
インデックスあたりの最大セグメント数 | 119
最大インデックス長 | 255
最大固定レコード長 | 4,088
最小固定レコード長 | 5
最大可変レコード長 | 32,765
最大文字型長 | 4,088
最大メモ項目長 | 32,765
メモ項目数 | 最大可変レコード長により制限
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | dat

データベースに対するパラメータ

  • Extended オペレーション（/EXTENDED=Y、N）
    [DBMS]テーブル[Pervasive]行の[パラメータ]欄に設定します。
    P.SQL の Extended オペレーションを使用するか否かを設定します。
    Extended オペレーションを使用する場合、セレクトコマンドの範囲／位置付の条
    件によるレコード絞込みが P.SQL エンジンにより実行されます。この機能は、ク
    ライアント／サーバシステムにおいてパフォーマンスを向上させます。
    デフォルトでは「Y」となります。

  • リトライ回数（/RTRY=リトライ回数:リトライ間隔（ミリ秒単位））
    [DBMS]テーブル[Pervasive]行の[パラメータ]欄に設定します。
    レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生
    した時にオペレーションをリトライする回数を設定します。
    デフォルトではリトライを行いません。

  • 自動ページサイズ（/PAGESIZE=nnnn）
    [データベース]テーブルの[データベース情報]欄に設定します。
    新規に作成するファイルのページサイズを設定します。
    nnnn には、512バイトの倍数、かつ4096バイトを超えない数を設定してください。
    なお、この値は、P.SQL の仕様に合致したものである必要があります。
    デフォルトでは、ファイル定義にしたがって最適なページサイズを計算します。

以上


readme_mem

２００３年３月
マジックソフトウェア・ジャパン 株式会社

Memory データベースゲートウェイ

Ver9.3-4 追加情報
Magic eBusiness Platform Ver9.30

本文書には、Magic eBusiness Platform（以下 Magic と表記）Memory データベースゲートウェイとして提供されるプログラム（MGMEMORY.DLL）に関する情報が含まれています。文書中に記述されている"本プログラム"とは、"MGMEMORY.DLL"を示します。

本プログラムのバージョンは、Magic の[ヘルプ／MAGIC情報]の[ロードモジュール]欄にて確認できます。

使用条件

動作環境

仕様および制限事項

技術情報

使用条件 (Top)

  • 本プログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。

  • 本プログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。

  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。

動作環境 (Top)

  • Magic Ver9.30JSP5 の動作する機種および環境が必要です。

  • Magic Ver9.30JSP5 で動作確認しています。

仕様および制限事項 (Top)

使用目的

Memory データベースゲートウェイ（以降「Memory ゲートウェイ」と表記）は、データをメモリ上に格納しながらオペレーションを実行します。用途としては、常駐テーブルを使用する時に標準的に使用されることがあげられます。その他の用途として、ソートファイルおよびワークファイルとして使用することがあげられます。
Memory ゲートウェイにより作成されるファイルは Magic 終了時には削除される一時ファイルですので、保存が必要なアプリケーションやデータに対しては使用しないでください。

起動方法

  1. 常駐テーブルを使用する場合、動作環境の［常駐テーブル読込］欄を「Yes」に設定します。その上でテーブル特性の「常駐」欄を設定します。
    注意：全てのテーブルが常駐できるわけではありません。カラム及びインデックスの制限は元になるデータベースではなく、Memory テーブルの制限に依存するためです。

  2. 動作環境の［ソート／一時用データベース］欄に Memory テーブルを使用する場合、ソートファイルや一時ファイルは、一時ファイル名で作成されます。ソートファイルや一時ファイルが置かれる位置は、［一時ファイルパス］欄の設定に依存しません。

  3. データテーブルを Memory テーブルファイルとして宣言するには、テーブルリポジトリの［データベース］欄を Memory テーブルベースのデータベースに設定します。

  4. テーブルリポジトリの［DB テーブル］欄を設定した場合、Magic が設定するデフォルトの Memory テーブルの DB テーブル名を変更することができます。

  5. Memory テーブルファイルにカラムを作成する場合、各カラムに適する記憶型式が使用されます。記憶型式を変更したいときは、テーブルリポジトリの各カラムで［カラム特性］ダイアログを表示し、［記憶型式］欄に希望する記憶型式を設定します。

その他

ログファイル名には、セッションごとに設定されるユーザ名とプロセスＩＤが付加されます。そのため、ログファイルを長いファイル名をサポートしないディスク上に作成しないでください。

技術情報 (Top)

記憶型式と有効キー長

これらのカラムの[データベース定義]欄は「標準」に設定されます。

項目型 | 記憶型式 | 有効キー長
文字 | String | 1-255
 | LString | 1-255
 | ZString | 1-255
数値 | Signed Integer | 2、4
 | Unsigned Integer | 2、4
 | Float | 4、8
 | C-ISAM Decimal | 2-17
論理 | Integer Logical | 1、2
 | String Logical | 1
日付 | Integer Date | 4
 | Integer Date - 1901 | 4
 | String Date | 6、8
 | YYMD Date | 4
 | Magic Date | 4
 | Magic Date - 1901 | 4
時刻 | Integer Time | 4
 | String Time | 6
 | HMSH Time | 4
 | Magic Time | 4

制限値

項 目 | 制限値
インデックスの最大数 | 65,535
インデックスセグメントの最大数 | 65,535
インデックスあたりの最大セグメント数 | 65,535
最大インデックス長 | 32,768
最大固定レコード長 | 32,768
最小固定レコード長 | 1
最大可変レコード長 | 32,768
最大文字型長 | 32,768
最大メモ項目長 | 32,768
メモ項目数 | 最大可変レコード長により制限
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | mem

以上


readme_ora8

２００３年５月
マジックソフトウェア・ジャパン 株式会社

Oracle8／Oracle8i データベースゲートウェイ

Ver9.3-9.4a 追加情報

Magic eBusiness Platform Ver9.30

本文書には､Magic eBusiness Platform（以下 Magic と表記）Oracle8／Oracle8i データベースゲートウェイ Ver9.3-9.3 として提供されたプログラム（MGORA8.DLL）に関して、マニュアルの記載事項以外の追加情報が記述されています。
なお、文書中に記述されている"本プログラム"とは、"MGORA8.DLL"を示します。

使用条件

動作環境及び注意事項

制限事項及び留意事項

Oracleのロック機構のみを使用するときの注意事項

データベース情報での有効なパラメータ一覧

Oracle9iについて

Ver9.01-9.1の変更点

Ver9.01-9.2の変更点

Ver9.2-9.1の変更点

Ver9.3-9.3の変更点

Ver9.3-9.4aの変更点

使用条件 (Top)

  • 本プログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。

  • 本プログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。

  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。

動作環境及び注意事項 (Top)

  • Magic Ver9.30JSP5a の動作する機種および環境が必要です。

  • Magic Ver9.30JSP5a で動作確認しています。

  • Oracle 製品は、日本語版を使用してください。

    以下の環境で動作確認を行っています。
    その他の環境については、下記のものと互換性のある場合のみ使用可能です。

サーバOS | Microsoft Windows NT Server Ver4.0 SP6a Microsoft Windows 2000 Server SP1以上
クライアントOS | Microsoft Windows 2000 Professional SP1以上
DBMS | Oracle8 WorkGroupServer for Windows NT 8.1.6.1.2 Oracle8 WorkGroupServer for Windows NT 8.0.5.0.0 Oracle 9i Database（9.0.1）for Windows NT/2000 Enterprise

制限事項及び留意事項 (Top)

  • Oracleは、Btrieve 等の ISAM 系のファイルマネージャと、排他制御、トランザクション等に関する仕様が異なるため、Btrieve 等の ISAM 系のファイルマネージャを使用する場合と Oracle 等の SQL RDBMSを使用する場合では、プログラムの作成方法が異なる部分があります。

  • Oracle8の以下に挙げる機能は、動作保証されておりません。

    ・LOBデータ型
    ・National Character Setのデータ型

  • 以下のデータベース特性のパラメータは、機能しておりません。

    ・ヒント
    ・XAトランザクション

  • MAGIC SQL パラメータの式では、以下の関数をサポートしておりません。(1000225)

    DVAL, TVAL, ADDTIME

  • ストアドプロシジャーのINパラメータにスペースを渡す場合は、1バイトの文字型変数項目をセットして下さい。

  • 以下のタスクでは、レコード削除時にエラーが発生します。

    (1) トランザクションモードを「遅延」または、「ネスト遅延」に設定。
    (2) ＤＢテーブルの「更新レコードの識別」パラメータを、「位置と更新項目」または「位置と選択項目」に設定。
    (3) レコードメインのセレクト項目として、メインテーブルのカラムを100個以上設定。

  • Ver8以前のバージョンのOLDDATEパラメータ、OLDRAWパラメータは無効になりました。

  • OSがWindows98の場合、画像表示用のイメージドライバーをすべてセットアップした環境で実行すると、Oracleサーバへのアクセス時に「OCI.DLL ダイナミックライブラリ初期化ルーチンのエラーです。」で接続できなくなることがあります。この場合、MagicのカレントフォルダーにあるLFxxx62N.DLL(xxx:イメージファイルの拡張子) で、使用しないイメージファイルのDLLを削除してください。(1000521)

Oracleのロック機構のみを使用するときの注意事項 (Top)

物理トランザクションモードのプログラムにおいて、Magicのロックファイル(mglock.dat)を非共用にし Oracleの並行処理制御機能のみを使用する場合、テーブルのアクセス規制はOracleの排他制御に依存します。

注意すべき点は、共有モードがR(=読込)の時に、MagicはOracleのSHAREモードのロックをかけますが、このモードでは、MagicのRモードと異なり、他の端末から処理(W=書出)モードでのアクセス（ファイルのオープン）を許可することです。

その際、後の端末がレコードへの書き出しを行い、レコードロックをかけようとする時に、先に共有Rモード、すなわちSHAREモードでロックをかけた端末が終了しない限り、後の端末は待ちの状態が発生します。また下表の特定の場合によっては、先のSHAREモードの端末側でデッドロックが発生することがあります。

以下にアクセス規制を挙げます。
なお、下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合のアクセス規制を示しています。
R/W はアクセスモード R (読込)、共有モード W (書出)を表しています。

トランザクション（タスクレベル）

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) |  |  | T- | 注2 | 注2 | T-
 |  | 書出(W) |  |  |  |  |  |
 |  | なし(N) | T- |  | T- | 注2 | 注2 | T-
 | 書出(W) | 読込(R) | 注3 |  | T- | 注2,3,4 | 注2,4 | T-
 |  | 書出(W) | 注3 |  |  | 注3 | 注1 | 注1
 |  | なし(N) | T- |  | T- | T- | 注2 | T-

注1: T+R- ですが、レコードロックが解除されるタイミングは処理ＡのPGを終了する時です。
注2: 処理A側でレコードに書込みを行うと、テーブルロックがかかります。
注3: レコードに書込みを行うと、処理Aがテーブルを閉じるまで黙り状態になることがあります。
注4: 処理Aでレコードの書込みを行う前に処理Bが実行された場合、いずれかでレコードの書込みのタイミングで「ORA-00060:デッドロック」のエラーが発生するか、フリーズすることがあります。

トランザクション（レコード前処理）

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) |  |  | T- |  |  | T-
 |  | 書出(W) |  |  |  |  |  |
 |  | なし(N) | T- |  | T- | T- |  | T-
 | 書出(W) | 読込(R) | 注1 |  | T- | 注1 |  | T-
 |  | 書出(W) | 注1 |  | R- | 注1 |  | R-
 |  | なし(N) | T- |  | T- | T- |  | T-

T-: テーブルアクセスに制限があります（テーブルがオープンできません）。
R-: レコードアクセスに制限があります（レコードロックがかかります）。

注1:処理Aで行移動したときに書き込みが行われます。

物理トランザクションモードで推奨する環境設定

  • 他のアプリケーションとのデータベースの共有を行う場合

[データベース]テーブルの[データベース特性] ／[MAGICロック] | 「テーブル｣
プログラムの[ロック方式] | オンラインタスクは｢入力時｣
 | バッチタスクは｢即時｣
ロックパス | 環境ごとに違うロケーション

  • Magicでのみデータベースを操作し、従来のアクセス規制をなるだけ引き継ぎたい場合

データベース]テーブルの[データベース特性] ／[MAGICロック] | ｢両方｣
プログラムの[ロック方式] | オンラインタスクは｢入力時｣
 | バッチタスクは｢即時｣
ロックパス | 全てのMagicで同じロケーション

  • 物理トランザクションモードでのDBテーブル/共有パラメータと Oracleに発行されるSQL文の関係

共有モードW | （ロックコマンドは発行されません）
共有モードR | lock table ... in share mode
共有モードN | lock table ... in exclusive mode
入力時（即時）ロック | select ... for update

※共有モードW/Rを有効にするには、トランザクション開始をタスク前の前に設定する必要があります。

データベース情報での有効なパラメータ一覧 (Top)

[設定]／[DBMS]

  • ALPHA_DATE=Y,N

    Oracle の DATE 型のカラムを定義取得する場合、ALPHA_DATE=Y を設定することで、長さ 19 文字で YYYY-MM-DD HH:MM:SS フォーマットの Magic 文字型（ZString）
    に自動的にコンバートします

[設定]／[データベース]／[データベース特性]

テーブル特性

  • CLUSTER="cluster-name"

    表がクラスタの一部となるように指定します。なお、クラスタ名の後に(列名)を入れないと「新規登録できません」のエラーになります。
    例．CLUSTER="TMP_USR(TMP_ID)"

  • INITRANS=n

    表に割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。仕様はOracleのマニュアルを参照してください。

  • MAXTRANS=n

    表に割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。仕様はOracleのマニュアルを参照してください。

  • PCTFREE=n

    表の行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。仕様はOracleのマニュアルを参照してください。

  • PCTUSED=n

    表の各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。仕様はOracleのマニュアルを参照してください。

  • STORAGE="strage-clause"

    表に対する記憶特性を指定します。仕様はOracleのマニュアルを参照してください。

  • TABLESPACE="tablespace-name"

    Oracleがテーブルを作る表領域を示します。

インデックス特性

  • TABLESPACE="tablespace-name"

    Oracleがインデックスを作る表領域を示します。

  • INITRANS=n

    インデックスに割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。仕様はOracleのマニュアルを参照してください。

  • MAXTRANS=n

    インデックスに割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。仕様はOracleのマニュアルを参照してください。

  • PCTFREE=n

    インデックスの行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。仕様はOracleのマニュアルを参照してください。

  • PCTUSED=n

    インデックスの各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。仕様はOracleのマニュアルを参照してください。

  • STORAGE="strage-clause"

    インデックスに対する記憶特性を指定します。仕様はOracleのマニュアルを参照してください。

Oracle9ｉについて (Top)

  • Oracle8の互換機能にて評価しました。Oracle9iからの新機能は、未確認です。

  • 表領域を作成する場合、テーブル特性/SQLデータベース情報欄に設定可能であるEXTENTパラメータ等が無効になることがあります。

    この場合、表領域に対して、EXTENT MANAGEMENT DICTIONARY パラメータを付加して作成することにより可能になります。このパラメータの仕様については、Oracle9iのマニュアルを御覧下さい。

Ver9.01-9.1の変更点 (Top)

  • MAGIC SQL パラメータの式では、以下の関数がサポートされました。

    MOD, LOG, CHR, ASC, TIME, HOUR, MINUTE, SECOND, DSTR, TSTR, ADDDATE

Ver9.01-9.2の変更点 (Top)

  • 遅延トランザクションモードの子タスクで、更新テーブルのカラムが項目モデルで関連付けられており、かつカラム特性の「DBカラム名」がモデルから継承されている場合、Magicがフリーズする件に対応しました。

Ver9.2-9.1の変更点 (Top)

  • 256項目以上のカラムが定義されたテーブルに対して、テーブルリポジトリのAPGで新規にテーブルをオープンすると、不定期にMagicが異常終了する件に対応しました。(0745883)

  • MagicSQLの式に「ソ、表、噂」など、２バイト目が0x5Cの文字をセットして実行すると、正しく処理されない問題に対応しました。(1000436)

Ver9.30-9.3の変更点 (Top)

  • リンク結合が使用されているタスクで、Magic SQL Where句を使用すると、「ORA-00918：列の定義が未確定です。」とエラーが表示される件に対応しました。(0753787)

Ver9.30-9.4aの変更点 (Top)

  • 日付データとしてCHAR(8)と定義されているテーブルを使うオンラインタスクで、SQL Whereの「Magic SQL」式内でその日付項目を参照していると、実行中にスクロール等したときに「ORA-01861: リテラルが書式文字列と一致しません。」とエラーが表示されることがある件に対応しました。(0114784)

以上


readme_ms7

２００３年３月
マジックソフトウェア・ジャパン 株式会社

MS-SQL Server7.0 データベースゲートウェイ

Ver9.3-9.4 追加情報
Magic eBusiness Platform Ver9.30

本文書には、Magic eBusiness Platform（以下 Magic と表記）MS-SQL Server7.0 データベースゲートウェイ Ver9.3-9.3 として提供されるプログラム(MGMS7.DLL)に関する情報が含まれています。
なお、文書中に記述されている"本プログラム"とは、"MGMS7.DLL" を示します。

使用条件

動作環境及び注意事項

制限事項及び留意事項

Ver8との相違点

Ver9.01-9.1の変更点

Ver9.01-9.3の変更点

Ver9.20-9.1の変更点

Ver9.30-9.3の変更点

Ver9.30-9.4の変更点

使用条件 (Top)

  • 本プログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。

  • 本プログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。

  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。

動作環境及び注意事項 (Top)

  • Magic Ver9.30JSP5 の動作する機種および環境が必要です。

  • Magic Ver9.30JSP5 で動作確認しています。

  • 以下の環境で動作確認を行っています。

サーバOS | Microsoft Windows 2000 Server SP1
クライアントOS | Microsoft Windows 2000 Professional SP1
DBMS | Microsoft SQL Server 7.0 SP3 Microsoft Data Engine V1.0 SP3 Microsoft SQL Server 2000 SP1

  • Microsoft SQL Server7.0/MSDE はSP3を使用していただくことを推奨いたします。

  • Microsoft SQL Server6.xに対するサポートは行っておりません。

  • Microsoft SQL Server 2000に対して、MS-SQL Server 7.0の互換機能については動作可能です。

制限事項及び留意事項 (Top)

  • tempdbに作成される一時テーブル（ローカル／グローバル）をサポートしています。
    一時テーブルを作成するには、[テーブルリポジトリ]／[DBテーブル]で、
    #table_name （ローカル一時テーブル）
    ##table_name（グローバル一時テーブル）
    と設定してください。

    例えば、「社員テーブル」を、ローカル一時テーブルとして作成するには、
    「#社員テーブル」、グローバル一時テーブルとして作成するには、
    「##社員テーブル」とします。

    注意： ローカル一時テーブルを作成する場合には、インデックステーブルの「プライマリキー」をチェックしないでください。通常の重複不可のキーは大丈夫です。
    これは、プライマリキーはDBMS上で制約条件として定義され、制約条件の名前はグローバルに一意でなければならないためで、プライマリキーをオンにすると、マルチユーザ環境で、「データベースにオブジェクト名'(キー名)'が既に存在します」というエラーが出ます。

  • 現在、以下に挙げるデータタイプはサポートされておりません。
    ・Unicode文字型
    ・Cursor型
    ・uniqueidentifier型

  • money型のデータタイプを扱う場合は、MAGIC.INIの[MAGIC_SPECIALS]に以下のパラメータを設定する必要があります。
    XXLNumeric = Y

  • 数字で始まるテーブル名を扱う場合は、ＤＢテーブルの名前を[ ]で囲んで指定してください。

  • 外部結合リンクは、左外部結合を使用しています。

  • MAGIC SQL パラメータの式では、以下の関数をサポートしておりません。(1000226)
    ADDTIME

  • プライマリキーでデータの重複エラーが発生した場合、MSSQLから返されるエラーコードは、ユニークインデックスで重複エラーが発生した場合と異なります。この場合、エラーハンドラのイベントは「制約違反」で捕捉されます。

  • 親タスクのトランザクションモードをタスクトランザクションに設定し、子タスクでオープンするテーブルが読込モードに設定した場合、実行時に子タスクのテーブルが新規作成が行われると、それ以降は処理が続行できなくなることがあります。(1000430)

  • 論理型の項目をキーセグメントに含めると、シンタックスチェック時に「項目番号が無効です」というエラーが出ます。これは、論理型項目はデフォルトでBIT型となりますが、MSSQLの仕様上、BIT データをインデックスに入れることができないためです。論理型データ項目をキーに入れる場合には、格納形式を「String Logical」にするか、あるいは「Integer Logical」で「サイズ」を2にしてください。

Ver8との相違点 (Top)

  • MS-SQL Server7.0によるレコードロックは、デフォルトの設定で機能いたします。
    ただし、MS-SQL Server7.0によるレコードロックを行わない場合には、[データベース特性]／[データベース情報]で以下の設定を行います。
    SQL_PHYSICAL_LOCKING=N

  • SQLコマンドダイアログで、固定文字列を指定する場合、"(ダブルクォーテーション)で囲まれた書式はサポートされません。'(シングルクォーテーション)に変更する必要があります。

Ver9.01-9.1の変更点 (Top)

  • MAGICKEY=Yパラメータの機能が有効になりました。

  • MAGIC SQL パラメータの式では、以下の関数がサポートされました。
    TIME, HOUR, MINUTE, SECOND, DSTR, DVAL, TSTR, TVAL, ADDDATE

Ver9.01-9.3の変更点 (Top)

  • 複数のSQL文が含まれるストアドプロシージャを、埋め込みSQLで実行すると、Magicが異常終了する件に対応しました。(1000256)

Ver9.20-9.1の変更点 (Top)

  • CHAR(8)に設定した日付型項目Aと、モデルと関連付けられた項目Bが定義されたテーブルに対して、項目Bのモデルの設定を変更してから、テーブルリポジトリで「テーブル変換」を行うと、日付項目Aの値がすべて7908/01/04に変換される件に対応しました。(1000314)

  • MS-SQL Serverのインストール時の設定において、並べ替え順序がバイナリ順以外の場合、セレクトコマンドの範囲パラメータにワイルドカードを設定した処理が正常に行われない件に対応しました。(1000423)

  • MagicSQLの式に「ソ、表、噂」など、２バイト目が0x5Cの文字をセットして実行すると、正しく処理されない問題に対応しました。(1000436)

Ver9.3-9.3の変更点 (Top)

  • 照会リンクテーブルの項目が多いオンラインタスクで、ページスクロールが遅くなる件に対応しました。(1000491)

Ver9.3-9.4の変更点 [image] (Top)

  • 登録モードのリンクコマンドに、実テーブルのカラムをすべて設定しない場合、実行時に異常終了する件に対応しました。(1000635)

以上


readme_db2

２００３年３月
マジックソフトウェア・ジャパン 株式会社

DB2 UDB V7.2 データベースゲートウェイ

Ver9.3-9.4 追加情報

Magic eBusiness Platform Ver9.30

本文書には､Magic eBusiness Platform（以下 Magic と表記）DB2 UDB V7.2 データベースゲートウェイ Ver9.3-9.3として提供されたプログラム（MGDB2.DLL）に関して、マニュアルの記載事項以外の追加情報が記述されています。
なお、文書中に記述されている"本プログラム"とは、"MGDB2.DLL"を示します。

使用条件

動作環境及び注意事項

制限事項及び留意事項

物理トランザクションモードでDB2 UDBのロック機構のみを使用するときの注意事項

データベース情報での有効なパラメータ一覧

Ver 9.3-9.4 での改善事項

使用条件 (Top)

  • 本プログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。

  • 本プログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。

  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。

動作環境及び注意事項 (Top)

  • Magic Ver9.30J SP5 の動作する機種および環境が必要です。

  • Magic Ver9.30J SP5 で動作確認しています。

  • 以下の環境で動作確認を行っています。
    その他の環境については、下記のものと互換性のある場合のみ使用可能です。

サーバOS | Microsoft Windows 2000 Server SP2
クライアントOS | Microsoft Windows 2000 Professional SP2 Microsoft Windows NT4.0 SP6a
DBMS | DB2 UDB Enterprise Edition V7.2 (7.2.4)

制限事項及び留意事項 (Top)

  • Magicのテーブルリポジトリでは、テーブルや索引を定義する際に、表スペースを指定することはできません。表スペースを指定する必要がある場合、DB2 UDBのCLP等で定義した後、Magicで定義取得して運用してください。

  • SQLコマンドでストアドプロシージャの呼び出しを行なう場合、パラメータの受け渡しを必要とするプロシージャを呼び出すことはできません。パラメータのないプロシージャを呼び出す場合、"CALL プロシージャ名"のようにプロシージャ名の後に"()"を付けずに記述してください。

  • DB2 UDBのLONGVARCHARタイプのカラムは、Magicの範囲、位置付けで使用することはできません。また、DB SQL Where句やMagic SQL Where句でも、IS NULLとLIKE以外の述部に使用することはできません。これは、DB2 UDBの仕様です。

  • 外部キーとして参照されているテーブルのDBインデックス名を変更し、上書き確認で「はい」を選択すると、参照元の外部キー定義が削除されます。

  • プライマリキーとして設定されたインデックスの、セグメント内のカラムは、降順と指定しても実際に作成される索引では昇順になります。

  • IDENTITY列を使用するには、DB2 UDB側であらかじめIDENTITY列を定義したテーブルを作成し、それをMagicで定義取得した後、IDENTITY列が定義されたカラムの、[カラム特性]のSQLの[タイプ]をINTEGER IDENTITYに修正します。

  • DB2コネクトによるホスト上のDB2に対するアクセスは、サポートしておりません。

物理トランザクションモードでDB2 UDBのロック機構のみを使用するときの注意事項 (Top)

  • DB2 UDBのデータベースのLOCKTIMEOUTパラメータは、デフォルトでは-1となっており、これは、ロックが解除されるまでずっと待つという設定です。この状態では、Magicのロック待ち状態のオンラインタスクに、ロック解除待ちのメッセージが表示されず、黙り状態になります。また、イベントハンドラによるロック状態の取得もできません。これを回避するには、データベースのLOCKTIMEOUTを、-1以外の適切な値に設定する必要があります。

  • レコード前処理でトランザクションを設定しているタスクで、テーブルロックの状態のとき、他のユーザーがロック待ち状態にあるとします。その場合、ロック側でレコードを移動すると、一時的にロックが解除されるため、ロック待ち状態のユーザーがロックを取得できてしまいます。これを回避するには、ロック側のトランザクションをタスクレベルにするか、データベースのLOCKTIMEOUTを0に設定してください。

  • Magicにおけるテーブルアクセス規制は以下のようになります。下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合のアクセス規制を示しています。

 | 処理A
処理B | アクセスモード |  | 読込(R) |  |  | 書出(W)
 |  | 共有 | 読込(R) | 書出(W) | なし(N) | 読込(R) | 書出(W) | なし(N)
 | 読込(R) | 読込(R) |  |  | T- 注1 |  |  | T-注1
 |  | 書出(W) |  |  | 注2 |  |  | 注2
 |  | なし(N) | T- | 注3 | T- 注1 | T- 注1 | 注3 | T-注1
 | 書出(W) | 読込(R) |  |  | T- 注1 |  |  | T-注1
 |  | 書出(W) |  |  | 注2 |  |  | 注2
 |  | なし(N) | T-注1 | 注3 | T-注1 | T-注1 | 注3 | T-注1

    T-： テーブルアクセスに制限があります（テーブルがオープンできません）。

    注1： 処理Ａが、レコードレベルのトランザクションで、データベースのLOCKTIMEOUTが0以外の場合、処理Aでレコードを移動すると処理Bがロックを取得します。

    注2： 分離レベルが1以上に設定されている場合、T-となります。

    注3： 分離レベルが2以上に設定されており、かつトランザクションがタスクレベルの場合、T-となります。

データベース情報での有効なパラメータ一覧 (Top)

[設定]／[データベース]／[データベース特性]

  • SQL_ISOLATION_LEVEL=UR | CS | RS | RR
    分離レベルを設定します。現在使用されている分離レベルを変更するには、DBDISCNT関数を使って、セッションを切断する必要があります。分離レベルの設定は、まず、ここでの設定値が検索され、次に[設定]／[DBMS]／[DBMS特性]での値が検索されます。有効な値が見つからない場合、DB2 UDBのデフォルトであるCSが設定されます。

Ver 9.3-9.4 での改善事項 (Top)

データアクセス

  • DB2側でVARCHARにマッピングされる文字型のカラム（NULL値不可）に対して、ブランク('')による範囲指定が無効であった問題に対応しました (301833)。

以上


readme_odbc

２００３年３月
マジックソフトウェア・ジャパン 株式会社

ODBC データベースゲートウェイ

Ver9.3-9.4 ベータ 追加情報
Magic eBusiness Platform Ver9.30

本文書には、Magic eBusiness Platform（以下 Magic と表記）ODBC(Open DataBase Connectivity) データベースゲートウェイ Ver9.3-9.3 として提供されるプログラム(mgodbc.dll)に関する情報が含まれています。
なお、文書中に記述されている"本プログラム"とは、"mgodbc.dll" を示します。

使用条件

動作環境

設定方法

仕様および制限事項

使用条件 (Top)

  • 本プログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。

  • 本プログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。

  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。

動作環境 (Top)

  • Magic Ver9.30JSP5 の動作する機種および環境が必要です。

  • Magic Ver9.30JSP5 で動作確認しています。

  • 本プログラムは ODBC 2.00 API に準拠しています。

  • 本プログラムは ベータ版です。

設定方法 (Top)

  1. コントロールパネル、または管理ツールの中のODBCデータソースを起動し、ユーザーDSNまたはシステムDSNで、利用するデータソースを作成します。データソースの構成の詳細な設定、およびODBCドライバのインストール等については、ODBC付属のドライバドキュメントやヘルプファイルを参照してください。

  2. Magic の起動前に、MAGIC.INIの中の [MAGIC_GATEWAYS] セクションに、MGDB19=(パス名)MGODBC.DLLを正しく記述し、かつMGODBC.DLLが存在することを確認します。
    MGODBC.DLLがディスク上（インストールフォルダーの下の\Gateways）に存在しない場合、追加オプションでODBC データベースゲートウェイをインストールしてください。

  3. Magic を起動し、[設定／データベース]を開きます。そこで、1.で登録したデータベースのエントリを作成します。DBMS欄にはODBCを選択し、DB名にはデータソース名を入力します。

  4. ユーザ名やパスワードを要求するデータベースの場合は、データベース特性ダイヤログの中のユーザ名／ユーザパスワードで設定します。このダイヤログは、[編集／特性]を選択するか、"Ctrl+P"のショートカットキーで開きます。

  5. アプリケーションを開き、[開発／テーブルリポジトリ]のデータベース欄に3.で作成したデータベースを選択し、テーブルの定義を行います。

  6. 既存のテーブルに対して、[オプション／定義取得]を起動することにより、テーブルリポジトリに定義内容を取り込むことが可能です。

  7. テーブル、カラム、インデックスの定義方法等に関する詳細は、リファレンス、またはSQLガイドをご覧ください。

仕様および制限事項 (Top)

  • 接続するODBCドライバの制限事項等により、Magic、およびODBC データベースゲートウェイが提供する機能をすべて利用できないことがあります。

  • Oracle、MS-SQLのデータベースを利用する場合、それぞれ固有の データベースゲートウェイを使用することを推奨します。

  • MS-ACCESSのデータベースを利用する場合、すべてのカラム特性のNULL値許可をYesに設定する必要があります。

  • ODBCドライバは論理ロックを使用するため、DBMSに対してロックを発行しません。複数台のマシンで実行する場合は、Magic のロックを使用してください。

  • データベース特性、テーブル特性、インデックス特性にあるヒントパラメータは有効
    にはなりません。

以上


Windows98上でのMSDEインストール時の障害について

問題

Windows 98にてMSDEをインストールする場合、以下の障害が発生する場合があります。

  • 「MSDEのインストール中」のウィンドウを表示したままフリーズする。
  • プロセスを強制終了させても、以後、アンインストールやアップグレード処理が正常に出来ない。

この問題は、以下の状況で起こります。

  • MagicのインストーラからMSDEをインストールした時、あるいは
  • Application Installation Utility （AIU)からMSDEをインストールするように設定した場合

原因については、Magicのインストーラ（InstallShield）から、さらにMSDEのインストーラを起動することが起因していると思われます。

対応方法

Windows98では、MSDEを単独でインストールすることをお奨めいたし ます。 MSDEを単独でインストールする方法には、cd コマンドでMagicのCD-ROM中の \MSDE フォルダをカレントフォルダにしてから、コマンドプロンプトより以下を起動してください。

MSDEx86.exe -a -f1 unattend.iss

※ MSDEx86.exe、unattend.iss は共に、CD-ROM中の \MSDE フォルダに添付されています。

注意：

  • サイレントモードでインストールされるため、ダイアログは表示されません 。終了を確認するには、タスクマネージャでプロセスのMSDEX86、 SetupSQLXXXXにて確認することができます。
  • MSDE Ver1.0 SP3の適用を推奨します。 サービスパック jp_sql70sp3i.exe も \MSDE フォルダに入れてあります。
  • AIU（Application Installation Utility）を使用してMSDEをインストールする場合も同様です。


ブラウザクライアント利用時の注意事項

ブラウザクライアント機能を使ったアプリケーション開発について

ブラウザクライアントタスクは、オンラインタスクと多くの点で似ていますが、Web をベースとした機能であるため、オンラインプログラムの開発とは違った開発方法論、留意事項があります。快適な速度で動作する安定したシステムを構築する上では、この違いを良く把握しておくことが非常に重要です。

特に注意すべきこととして、以下のようなことがあります。

  1. 画面デザインをできるだけ簡略化する。必要ならば、一度に全部を表示するのではなく、いくつかの画面に分割する。オンラインプログラムでは、一画面に百以上ものコントロールを配置するということは普通ですが、ブラウザクライアントタスクで同様のことを行うと、Web ブラウザ (Internet Explorer) の性質上、動作が非常に遅くなることがあります。また、データ通信量も多くなり、細い回線では通信速度が無視できない程になることもあります。特に、タブ、コンボボックス、リストボックス等はWebブラウザへの負荷が大きく、また、ラインモードで表示する場合には行数に比例してコントロール数が多くなり ますので、これらの使用は必要最小限にしてください。

  2. クライアント側のマシンの要求レベルに注意する。ブラウザクライアントは、クライアント側の Web ブラウザ上で Java アプレットを動作させながら処理を行うように設計されている関係で、クライアント側のマシンにもそれなりの仕様(CPU, メインメモリ)が必要となります。運用する環境でのクライアントマシンのスペックが低い場合には、実行速度が問題になる可能性があります。

  3. データ更新処理の場合のロックとトランザクションの扱いに注意が必要。オンラインタスクとは異なり、ブラウザクライアントでは、トランザクションは「遅延トランザクション」のみとなり、レコードロックも扱いに違いあります。データ更新が多い用途にブラウザクライアントを使う場合には、遅延トランザクションの考え方を良く理解してデータアクセス方法を設計する必要があります。

  4. 処理が長時間にわたるバッチタスクを同期で実行しない。ブラウザクライアントタスクから、バッチプログラムを呼び出すことは可能ですが、バッチプログラムが処理を終了するまで、画面の制御はクライアント側に返って来ません。ブラウザクライアントでは、クライアントとMagicサーバの間は、Web (HTTP)により接続されているので、あまり長時間にわたって待ちが生じると、タイムアウト等が発生し、トラブルのもとになります。長時間かかるバッチを実行する場合には、非同期のリクエストとして別途処理させ、Web ブラウザ側での待ち時間はできるだけ少なくするように設計するようにしてください。

その他、ブラウザクライアント機能を用いたアプリケーション開発の詳細については、テクニカルホワイトペーパーとして「インタラクティブWebアプリケーションの開発と実行」および「ブラウザクライアントアプリケーション開発手法」がありますので、ぜひご一読ください。また、弊社のプロフェッショナルサービスでも開発時のコンサルテーションを行っておりますので、ご利用ください。

ブラウザクライアント関係のモジュール

本バージョンで提供しているJavaApplet、JavaScript、ActiveＸコントロールは以下のとおりです。
モジュール | ファイル名
JavaApplet | MGBC930_05AJ.CAB、 MGBC930_05AJS.CAB、 MGBCL930_05AJPN.CAB、 MGBCL930_05AENG.CAB
JavaScript | MGBC930_05AJ.JS
ActiveＸコントロール | MGBCCOM9.CAB

Windows 95 でのブラウザクライアント実行

  • Windows95はActiveXコントロールとしてUnicodeをサポートしていないため、ブラウザクライアントで使用することができません。

Windows 98 でのブラウザクライアント実行

  • Windows98上でのブラウザクライアントにおいて、マイクロソフト社提供のATL.DLLがVer2.Xの場合、「in the parsing process」エラーになることがあります。その場合は、ATL.DLL（3.00.8449）を更新してください。
    DLLは、http://activex.microsoft.com/controls/vc/atl.cab　から ダウンロードし、解凍後、ATL.EXEを実行してください。
  • Magicエンジン、HTTPServer、ブラウザを、Windows98 同一PC上にて構成している環境の場合、ブラウザクライアントの中で別のブラウザクライアントプログラムを呼び出した時に、「The Applet not found」というメッセージが出てコントロールが出来なくなる場合があります。(1000065)

Java 仮想マシン(JVM)について

ブラウザクライアント機能は、クライアントマシンの Internet Explorer 上で Java アプレット(上記のモジュール)を実行することにより実装されています。そのため、Java 仮想マシンのバージョンにより、動作に影響がある場合があります。以下の点にご留意ください。

  • 各PCのブラウザで使用する Microsoft Java VM （Microsoft Virtual Machine for Internet Explorer）のビルド番号は、統一することをお奨めいたします。(1000026)

    MSJでは、以下のビルド番号で動作確認をしています。
    ビルド： 3805 および 3809
    Microsoft Java VM は、CD-ROMの \MSJVM\3805\MSJAVX86.EXE からインストールすることができます。Java 仮想マシンのビルド番号は、コマンドプロンプトよりjview.exeを実行して確認できます。

    C:\> jview
Microsoft (R) Command-line Loader for Java Version 5.00.3809
Copyright (C) Microsoft Corp 1996-2000. All rights reserved.
  • Java 仮想マシン (JVM) の変更による、以下のような問題が確認されています。
    • 現象： ブラウザクライアントによるMagicアプリケーションを実行しようとすると、プログラムが動作しない。このとき、「アプレット ClientManager notinited」、「アプレット MsgText notinited」などのエラーが Web ブラウザのステータス行に出ることがある。
    • 原因： Internet Explorer がアプレットの実行のために使う Java 仮想マシン(JVM)が、Java2 SDK のインストールなどにより変更されためです。デフォルトではMicrosoft社のJVMが使われ、ブラウザクライアント機能はマイクロソフト社のJVMにより動作可能ですが、Java2 SDK をインストールすると、Sun社の JVM がアプレットの実行のために使われるようになるため、ブラウザクライアントが動作しなくなります。
    • 確認方法： Internet Explorer の「ツール」→「インターネットオプション」メニューを選び、「詳細設定」タブを選びます。問題の起こる環境では、「Java （Sun)」というグループが追加されており、その下に 「<applet> に Java 2 xxx を使用 (再起動が必要)」という項目があり、それにチェックがついています。このような状態になっていたら、Java VM の変更により発生した問題であることが確認できます。
    • 対応方法： この問題は、Sun の JVM ではなく、Microsoft の JVM を使うようにすることにより、回避できます。具体的には、以下のようにします。
      1. 上記 「 <applet> に Java 2 xxx を使用 ・・・」のチェックボックスをはずす。
      2. Internet Explorer をいったん全部閉じ、再度起動する。(マシンのリブートは不要です)。

その他の留意事項

  • ブラウザタスクを4階層以上ネストしたアプリケーションをコンポーネントとして、別のアプリケーションから実行した場合、４階層以降のプログラムにパラメータが渡されないことがあります。(1000615)
  • ブラウザクライアントを使用する場合は、設定／動作環境／外部参照ファイルの「ブラウザタスクで使用するエンコード」 を「Shift_JIS」に設定しておく必要があります。インストール時のデフォルトで設定されていますので、変更しないでください。
  • ブラウザクライアントではNULL値を扱えません。(0267166)
  • 複数行編集項目の先頭行または末尾行にカーソルが存在する状態において、上下矢印キーを押下しても、 カーソルはその項目にとどまります。(0332692)
  • LEVEL関数は使用できません。(0808943)
  • リンク登録処理で、重複エラーが発生した場合、別データで登録処理を継続するには、キャンセルアクションを発行して下さい。(0862704)
  • レコードの情報はWebブラウザ側にキャッシュされる為、最新の情報が表示されるとは限りません。たとえば、レコード後処理を通過しない（レコードの内容がデータベースに反映されない）ときにも、Webブラウザ上では項目更新された情報が表示されます。必要に応じてビュー再表示アクションを発行してください。(0895513)
  • サブフォームを使用する場合、サブタスクから上位タスクの項目を参照する場合、パラメータを設定する必要があります。また、このパラメータはサブタスクで値を変更して、親のタスクに返すことはできません。(0963891)
  • Magic eDeveloper をフォアグラウンドにおいて使用する場合とバックグラウンドにおいて使用する場合では、内部的なコンテキストの管理方法が異なります。そのため、複数のコンテキストを切り替える必要がある場合などのテスト時においては、バックグラウンドにおいて使用するか、Magic Application Server を使用してください。(1000024)
  • 数値型、論理型のコンボボックス、リストボックス、ラジオボタンのラベルが選択できないことがあります。この場合、文字型のコントロールに変更するか、数値型ではデータコントロールの設定を行うことで対応してください。(1000092)
  • ブラウザ形式プログラムのフォームを作成するとき、項目名には2バイトコードは使用しないことを推奨いたします。(1000104)
  • MIDV関数、REPV関数は2分された全角文字によりデータを正しく認識できなくなることがありますので使用しないでください。(1000117)
  • 一つのフレームセット内に複数のブラウザプログラムを実行させる場合、何れかのプログラムを親として、他のプログラムをコールする必要があります。 (1000122)
  • テーブルコントロールおよびスタイルシートの「絶対位置」が指定されたコントロールがあると、実行時にIEが異常終了することがあります。(1000154)
  • ブラウザの「戻る」、「進む」、「更新（リロード）」ボタンを押下すると、動作が不安定になる場合があります。アプリケーション側での対応（リスタート、戻り、ビュー再表示ボタン等）を考慮してください。(1000198)
  • ブラウザタスクは、ユーザメニューおよびコールプログラムから実行することはできません。(1000201)
  • ROLLBACK関数の第一引数は無効となり、確認ダイアログは表示されません。(1000203)
  • [タスク特性／ロック方式]を「入力時」と設定してもロックはかかりません。(1000206)
  • サブフォームを使用する場合、[タスク特性／トランザクションモード]の「ネスト遅延」は使用できません。(1000210)
  • サブフォームを使用する場合、一つのフォームに複数のサブフォームを定義することはできません。(1000211)
  • ハイパーテキストコントロールのハイパーリンクパラメータは、コントロール特性から設定できます。(1000217)
  • サブタスクの初期モードを「親と同じ」にしても、親タスクのモードと動的に連動しません。その場合は、親のモードを変更したあとに、サブタスク側でビュー再表示やパラメータ変更に伴う再計算を行うことで、対応が可能です。(1000284)
  • ブラウザのイメージファイル名の指定には、論理名は使用できません。(1000352)
  • ブラウザタスクに重複エラーハンドラ（対応：ロールバックして再起動）を設定した場合、実行時に重複エラーが発生すると、ブラウザ上のデータが正しく表示されないことがあります。(1000414)
  • リストボックス、コンボボックスでラベルを変数で定義し、選択肢を子タスクのバッチで登録している場合、実行時にコンボボックスの幅が広がることがあります。この場合、TRIM関数、RTRIM関数を付加した式をラベルに設定してください。(1000431)
  • ブラウザ画面のクローズボタン（×ボタン）をクリックして終了すると、実行時に問題が発生することがありますので、終了アクションを実行するボタンを画面の中にレイアウトしてください。(1000481)
  • レコードをライン表示したサブフォームでデータ修正を行い、別レコードに移動しないで親タスクのコントロールに移動した場合、子タスクのレコード後処理を通過しません。(1000514)
  • 低速回線上で使用する場合、URLを指定しないハイパーリンク（“javascript：void(0)”）を使用していると、このハイパーリンクをクリックしてブラウザクライアントのページをロードする間、クライアントは長時間待たされることがあります。そのような場合、ハイパーテキストコントロールのハイパーリンク特性で“javascript：void(0)”を定義して回避する方法があります。(1000537)
  • フレームは<base target="XXX">タグをサポートしていません。(1000558)


ワークグループ開発機能利用時の注意事項

ワークグループ開発時の注意点

チーム開発機能は、複数の開発者が同時にプログラムリポジトリに対して読込み／書込み処理を行う為、障害発生の可能性があります。又、リポジトリ内のデータ構造はMagic独自のリンク構成になっているため、何らかの障害が発生した場合にはアプリケーションファイル（以下MCF）全体に影響する障害が発生する可能性があります。

運用上の工夫により、障害発生の可能性を低くすることが可能ですので、以下の点にご留意ください。

  • Pervasive.SQL/Btrieveエンジンは、サーバ版を使用してください。

  • Pervasive.SQL/Btrieveエンジンには、以下の設定を行って下さい。Pervasive Control Center で設定します。(1000018)

    設定

             値

    トランザクション一貫性保守

    On (パフォーマンスよりも、データの一貫性が優先されます)

    オペレーションバンドル制限

    1

    起動時間制限

    1

  • チーム開発を行なう場合、同一フォルダ内に、複数のアプリケーション（CTL)を混在させないことを推奨いたします。もし混在させる場合は、必ず各CTL毎に[アプリケーションテーブル／識別子]がユニークになるように指定してください。(1000016)

  • 開発版で開発中のCTLファイルを実行版で実行する場合、CTLの同期が取られません。実行版で運用しているCTLを直接開発版で変更しないようにしてください。(1000017)

  • モデル、またはテーブルの修正中は、他のリポジトリの修正作業を行わないようにしてください。(0505263)

  • プログラムリポジトリの順序が入れ替わるような作業は極力しないでください。例えば、フォルダ切替、プログラム移動／コピー、プログラム一覧の途中への新規作成などでは、プログラムリポジトリの順序や番号が変わることがありますので、チーム開発中には行わず、新規作成予定のプログラムは事前に空プログラムを生成しておいてください。

  • 複数の開発者が同一のプログラムを修正しないように、事前に担当プログラムの分担を決めておいてください。

  • 長時間、プログラムリポジトリ内に留まらず、こまめにチェックインしMCFを保存するようにします。

  • こまめにアプリケーションのバックアップを行ってください。

  • 破損したMCFを使用して継続してリポジトリ入出力を行わないでください。MCFが破損した場合、リポジトリ出力／入力でも復元できない場合があります。

  • 開発時にMagicが異常終了した場合は、再起動し修正中のプログラムが破損していないか確認し、可能であれば、１世代前のアプリケーションに復元してください。

  • 余裕のあるメモリー環境でお使いください。メインメモリとして、256M以上を推奨いたします。

注意: Ver 9.3 では、バージョン管理マネージャはサポートされていません。(1000183)

チーム開発機能を使わず、別々に開発したプログラムをマージする場合

チーム開発機能を使用しないで、MCFを分散して開発を行った場合、表面上は同じに見えても、テーブル定義での内部のカラム番号(ISN)がそれぞれのMCFで異なってしまうことがあります。この場合、それらを統合するためにリポジトリ出入力と上書登録を行うと、内部のカラム番号が異なってしまうことにより、そのテーブルを使用しているプログラム中のセレクトコマンドに設定された項目番号がずれてしまうことがあります。

この問題を防ぐためには、テーブル定義を変更する場合、先にプログラムを統合し、常に一人の開発者のみがテーブル定義変更を行うようにする必要があります。また、テーブルリポジトリをコンポーネント化することにより、複数の開発者によるテーブル定義変更を抑止することができ（MFFファイル使用）、事前にプログラムを統合する必要がなくなります。(1000421)

参考： すでにテーブル定義が異なって、統合する必要がある場合

アプリケーションＡに対して、テーブルを変更したアプリケーションＢのプログラムを統合すると仮定します。

  1. ＡとＢのテーブル定義が同じになるように、それぞれ修正する。
  2. Ｂのテーブルとプログラムを出力する。
  3. Ａは、テーブルをリポジトリ入力し、それに対応するＡのテーブルにカーソルを置いて、「オプション／検索と置換」を選択する。
  4. 「置換」欄でリポジトリ入力したＢのテーブルを選択し、実行する。
  5. 「置換」が終わった後、Ａのテーブルを削除し、その位置にＢのテーブルを移動する。テーブル定義の削除の際、物理テーブルの削除を行わない。
  6. Ｂのプログラムをリポジトリ入力する。

注意： テーブルのカラムに設定されたデータコントロールをプログラムのフォームに配置して範囲設定している場合は、範囲の項目がずれたり、０になる場合があります。


制限事項および留意事項

これは、9.30J SP5 の readme に記載されていた内容です。Ver 9.30J SP5a での制限事項、既知の問題については、「Ver9.30J SP5a の制限事項と既知の問題」を参照してください。

  • 設定
  • モデル
  • テーブル
  • メニュー
  • コンポーネント
  • プログラム一般
  • データアクセス
  • ロックとトランザクション
  • SQL共通
  • 関数
  • ユーティリティ
  • フォーム
  • HTMLフォーム
  • 印刷機能
  • プレビュー機能
  • インターネット機能
  • ブラウザクライアント
  • ワークグループ開発機能
  • サーバ機能
  • MRB
  • コマンドラインリクエスタ
  • HASP

設定

  • 以下のフォント／基本色定義は、開発、実行環境で異なります。
       実行環境 | 開発環境
    フォント定義 | (1)基本テーブル項目 | (23)開発基本テーブル項目
    (9)基本プッシュボタンフォント | (27)開発基本プッシュボタンフォント
    基本色定義 | (1)基本色 | (18)開発基本色
    (2)基本項目色（平面） | (19)開発基本項目色（平面）
    (5)基本項目色（立体）

    (20)開発基本項目色（立体）

モデル

  • モデルリポジトリの項目クラスで、書式等を変更しても、モデルを参照しているカラムのテーブルに対して、即時に物理テーブルの自動変更は行われません。物理テーブルのチェックを行い、変更を促すダイアログが表示されます。その場合、テーブルリポジトリ上で、[オプション/テーブル変換]又は、Ctrl+Oを実行して手動で変更処理を行う必要があります。(1000015)

  • モデルリポジトリでは、取消アクション(F2)が無効です。(1000131)

テーブル

  • DDF作成するテーブルの[名前]欄およびカラムの[名前]欄を空白にしないで下さい。空白にした場合、Pervasive.SQLのODBCドライバにおいて正しく認識されない場合があります。(1000222)

メニュー

  • メニューリポジトリではコメントが入力できません。(921187)

コンポーネント

  • コンポーネントプログラムでLOGON関数を実行した後、コンテナアプリケーションでRIGHTS関数でLOGONしたユーザが持っているキーをチェックしても、正しい結果が得られません。(1000587)

  • コンポーネントリポジトリに登録されたアプリケーションのメインプログラムのタスク前処理の内容は、アプリケーションの初期時に必ず実行されます。（1000350）
  • ロードするコンポーネントアプリケーションが、ロード元のアプリケーションをコンポーネントとして再帰的に利用することはできません。このような場合、以下のようなメッセージが表示されます。
    「再帰的にコンポーネントが使用されているため、アプリケーションはロードできません。：アプリケーションファイル名」
    （例）アプリケーションＡ→コンポーネントＡ→コンポーネントＢ→コンポーネントＡ
    (1000393)

プログラム一般

  • グループレベルでトランザクションを開始する印刷プログラムを実行した場合、出力先のプリンタが準備できていないと、ハングアップすることがあります。(1000622)
  • コールする側の変数とコールされる側のパラメータと同じモデルを使用した場合、モデルの型を変更して、プログラムチェックをかけると、「タイプがあっていません」というエラーが発生することがあります。
    この場合、リポジトリ出入力を行うか、受け側のパラメータの書式を再継承していただくようお願いいたします。(1000625)
  • テーブルロック時にリトライする時間は、動作環境／動作設定タブ／コマンド処理のリトライ間隔 (MAGIC.INIのRetryOperationTime) で制御されます。デフォルト値は600秒です。アプリケーションサーバの実行時など、ユーザーが強制終了できないプログラムでテーブルロックが発生した場合、常にこの値までリトライします。
  • イベント実行コマンドのウェイトパラメータが有効になりました。そのため、内部イベントのようにコントロール上に制御が戻ってから実行されるイベントの場合、ウェイトパラメータは「No」に設定する必要があります。(1000216)
  • プッシュボタンの書式に、G,J,S,T,X の文字を使用すると、実行時に指定して文字は表示されません。文字型書式「位置指示記号」が拡張されたためで、使用したい場合には、拡張機能を無効化してください。(1000230)
  • [コントロール特性／イベント実行]を設定しないプッシュボタンのクリックイベントによって、コールされたタスク、またはプログラムが起動時に即終了することがあります。この場合、プッシュボタンにユーザアクションを定義するようにして下さい。(1000260)
  • トランザクションモードが「物理」で、[テーブル特性/キャッシュ範囲]を「なし」に設定したテーブルをメインテーブルにしたオンラインプログラムでは、実行時にマルチマーキングは機能しません。(1000427)
  • 登録モードのタスクで、イベントテーブルから子タスクをコールして親タスクの項目を更新した後、親タスクに戻ると、STAT(0,'M'MODE)がTRUEに変更されます。(1000545)
  • メインテーブルのテーブル特性/キャッシュ範囲がNoの場合、物理トランザクションモードのオンラインタスクで、レコード登録を連続して実行すると、不定期に修正モードに変更されることがあります。この場合、キャッシュ範囲をNo以外、または遅延トランザクションモードに変更してください。(0976575)

データアクセス

  • Pervasive.SQL（Btrieve）使用時に、カラムテーブルで日付型項目を新規に定義すると、記憶型式がStringDateになります。Pervasive2000/Btrieveのデータベースで今までのバージョンと互換性を持たせる場合は、IntegerDateに変更する必要があります。(1000098)
  • 遅延トランザクションモードのプログラム、または物理トランザクションモードでキャッシュが有効になっているプログラムでは、[タスク制御／オプションタブ／ウィンドウ再表示]は機能しません。再表示が必要な場合、ビュー再表示のアクションを発行することで対応できます。(1000223)
  • 19桁～38桁までの数値項目を扱うことが可能になりました。この場合、MAGIC.INIに以下の設定が必要です。ただし、この設定を行うとパフォーマンスに影響がでる場合があります。(1000234)
    [MAGIC_SPECIALS]
XXLNumericSize = Y

ロックとトランザクション

  • [設定／データベース]テーブルの[Magic ロック]が「テーブル」「なし」の場合、リンクの再構築時にロックが解除される場合があります。(0154738)

SQL共通

  • 既存テーブルに外部キーを追加して自動再作成を行う際に、外部キーを構成しているカラムのデフォルト値、または既存の値が、対応している参照キーのデータに存在しない場合、DBMSによる整合性チェックにより、レコードが作成されません。(1000224)
  • 外部キーを削除しても、参照されていたテーブル定義の変更ができないことがあります。これは、外部キーがあるテーブルの定義変更を行った際に作成されたバックアップのテーブルが存在している可能性があります。(1000229)

関数

  • FLOW('C') は、タスクの終了条件かタスク後処理でしか認識できません。イベントハンドラで「取消し」を検知するには、イベントハンドラの条件式として「FLOW('C')」ではなく、「キャンセル」イベントや「KBGET(1) = 'キャンセル'ACT」 という式を使ってください。
  • OLEオートメーション関数を使用してOCXコンポーネントからVariant型データを受け取り、Magic文字型データに格納する場合は、あらかじめ書式の長さ分のダミー文字列を代入しておく必要があります。(0148138)
  • LIKE関数をSQL [Where句/Magic SQL]の式以外で使用する場合、日本語（DBCS)データでは正しく動作しません。(0563530)
  • LMCHKOUT関数、LMCHKIN関数は、サポートされていません。(1000231)
  • EXPCALC関数が参照する式の結果が小数になる場合、関数を含む計算式が期待する値と異なることがあります。この場合、式に対してROUND関数を使用してください。(1000310)
  • イベントハンドラテーブルで、セットされていない環境変数に対してGETPARAM関数を実行した場合、ハンドラテーブルに定義されている、それ以降のコマンドは実行されません。(1000517)

ユーティリティ

  • 外部結合リンクコマンドをセレクトコマンドより前に定義すると、プログラムチェック時に「結合リンクで参照する項目は、リンクコマンドより前に定義しなくてはなりません。」というエラーが表示されます。(0471474)
  • 旧バージョンでコンポーネントを使用した場合、アップグレードした後にコンポーネントビルダを起動すると以下のメッセージが出る場合があります。
    「テーブルの定義が合っていません ! テーブルを変更しますので、再起動してください!」
    これは、コンポーネントビルダ用のDBテーブルの構成が変わったためで、コンポーネントビルダ゛でテーブル構成を自動的に変換いたします。コンポーネントビルダを再度起動していただければ、今まで通り使用することができます。(1000014)
  • プログラムチェックをかけると、メモリリークが発生します。プログラムチェックを多用する場合は、定期的に再起動を行なってください。(1000032)
  • テーブルAに外部キーの参照テーブルとしてテーブルBを設定し、テーブルBに対して「検索と置換」を行って、すべて別のテーブルに置き換えた場合、テーブルAの外部キーの設定がクリアされます。(1000535)
  • Windows98では、Alt+F10によるコメントの画面にコメントの内容は表示されません。(1000594)

フォーム

  • フォーム特性の子ウィンがYesの場合、コントロールの親子リンクを設定することができません。一旦、子ウィンをNoに変更してからリンクを設定してください。(1000624)
  • 基本色テーブルにて、背景色を透過指定した場合、フォームエディタ上の色パレットでは黒の背景色で表示されます。(1000019)
  • APGで作成したコントロールと、手動で貼り付けたコントロールでは以下が異なります。
    ラジオボタン/チェックボックス → スタイル（APG=凸立体、 貼り付け=凹立体）
    リストボックス → 幅のサイズ(1000020)
  • 何も変更していない場合でも、終了時に「変更内容を保存しますか?」の確認画面メッセージが表示されることがあります。(1000172)
  • カラムの[コントロール特性／水平整列、垂直整列]の設定内容を同一テーブル内で混在させることができません。(1000184)
  • GIFデータを表示させるには、MAGIC.INIの［MAGIC_ENV］セクションに、以下の記述を追加します。
    UnlockGIFLZWCode = [License Number]
    ここで、License Number はUnisysから購入するライセンスコードを指定してください。(1000235)
  • GUIフォームに平面スタイルのテーブルコントロールを使用した場合、右端が二重線で作成されます。(1000316)

HTMLフォーム

  • HTMLフォームにおいてリッチエディットを貼り付けられますが、このコントロールは表示専用となります。(1000021)
  • フォーム上で矢印キーを押下した場合、マウスカーソルの形状が変化することがあります。(1000022)
  • 以下のような操作を行った場合、予期しない空白行がフォームに挿入されることがあります。(1000186) 1)コントロールパレットからダブルクリックしてコントロールを配置した場合 2)あるコントロールに別のコントロールを重ねようとした場合 3)[複数行編集]が「No」のコントロールの高さを変更した場合
  • HTML形式のフォームにおいて、入力フォーム欄が「No」のフォームに対して、入力フォーム欄が「Yes」のフォームにあるエディットコントロールを貼り付けられます。また、入力フォーム欄が「No」のフォームへラジオボタンなどの入力用のコントロールを配置できます。(1000187)
  • テーブルコントロールに[背景]を指定しても、フォームエディタ上では表示されません。(1000188)
  • Javaアプレット、ActiveXコントロールに渡すパラメータを定義式で指定する場合、文字型で定義してください。(1000189)
  • HTMLフォームエディタのスタティックテーブルの一つのセル内に複数のコントロールを配置する場合、縦にしか並べることができません。(1000190)

印刷機能

  • 印刷においてフォーム寸法単位をダイアログに設定した場合、Magic のバージョンにより出力結果が異なる場合があります。寸法単位は、センチかインチを指定してください。(1000023)
  • 入出力特性の[用紙サイズ]、[用紙の向き]および[部数]の指定より、MGPRN ユーティリティで指定された印刷の向きが優先されます。(1000191)

プレビュー機能

  • Windows98上で、プレビュー表示にて、多量の印刷、イメージを含む印刷時に、リソースまたは仮想メモリが不足すると警告メッセージが表示されます。(1000105)
  • プレビュー表示では、イメージスタイルが以下の場合、有効になりません。(1000192)
    T=タイル
    C=コピー
  • プレビュー表示では、プリンタ固有のマージンの設定を考慮しておりません。このため、左右上下の余白部分が実際の印刷結果と異なります。(1000193)
  • 表示倍率を変更するコンボボックスにカーソルがあると、キーボードによって改ページができません。(1000194)
  • ［フォーム特性］の［フォーム拡大］が［M=複数ページ］の場合、リッチエディットは拡大して出力できません。(1000195)

インターネット機能

  • 日付項目にパラメータとして不正な値を渡した場合、日付は「7908/01/04」となります。(0882613)
  • URLを表す文字列にASCIIコード以外の文字が設定されている場合、そのコードは%##（##は 16進コード）という形式に変換されます。このコードはシフトJISとなります。この機能を使用する場合、MAGIC.INI にて以下の設定を行ってください。(1000196)
    [dbMAGIC_ENV]
TripletNonAsciiUrl = Y

サーバ機能

  • コンテキスト関数は使用できません。(1000179)
  • メインプログラムは、コンテキスト作成時に実行されるため、タスク前処理／タスク後処理は、アプリケーションのオープン時でなく、コンテキスト作成時に実行されます。このためブラウザクライアント以外では、リクエスト毎に実行されます。(1000180)
  • メインプログラムは、コンテキスト作成時に実行されるため、メインプログラムのタイマーイベントは無効になります。(1000181)
  • ブラウザクライアント以外のリクエストでは、コンテキストが継続されないため、SETPARAM、GETPARAMはリクエストを超えて使用できません。HTTP環境変数は、リクエスト毎にセットされるため取得できます。(1000182)
  • コールリモートのパラメータにおいて、戻り値とエラーコードに同じ項目を設定した場合にプログラムチェックユーティリティでエラーになりません、同じ項目を指定しないように注意してください。(1000220)
  • 現バージョンでは、ミドルウェア（CORBA、MQSeries)は、サポートされていません。 (1000232)
  • Oracle,MSSQL Server, ODBCの各ゲートウェイで、データベースの接続を行う場合、[DBMS／DBMS特性／最大接続数]は、各インスタンスで使用する最大スレッド数の３倍程度を設定してください。最大接続数が使用スレッド数より小さい場合、Magicの動作が不安定になったり、パフォーマンスが低下します。（例）５スレッド　最大接続数：１５(1000378)

ＭＲＢ

  • MGRB.INI の AutoLoadで指定したエンジン数に達すると、それ以降はエンジンを終了してもAutoLoadされません。(1000219)
  • MGRB.INIのServerTimeoutを設定すると、非同期の実行時にI_AM_ALIVEメッセージがMRBに送られますが、メッセージが止まっても何もエラーが発生しません。(1000221)
  • 現バージョンでは、MRB SSL機能は、サポートされていません。(1000233)

コマンドラインリクエスタ

  • -ARGUMENTS及び-VARIABLESにおいて「,」をデータとしては使用できません。(1000027)
  • -TERMINATEにおいて右辺に何も指定しない場合、ALLとみなされます。(1000028)

HASP

HASPご利用の際には、以下の点にご注意ください。

  1. USB HASPは、USBハブ経由で接続することができます。USB－パラレル変換ケーブル経由でパラレルHASPを接続することはできません。
  2. WindowsNT4.0では、USB HASPはサポートされていません。
  3. WindowsXPでは、HASPデバイスドライバを Ver4.65に変更してください。Magicフォルダ内のUtil\4.65に格納されています。


dbMAGIC Ver8と混在環境での使用について

dbMAGIC Ver8 との混在環境での使用について

dbMAGIC Ver8との混在環境で使用できるようにセットアップ環境が以下のようになります。

  • MGRB.INIのBrokerPort、MGREQ.INIのMessagingServerのデフォルト値は 3200 です。

  • リクエスタ関連のモジュール名は、以下の通りです。

V8モジュール名 | V9モジュール名
mgrqispi.dll | mgrqispi93.dll
mgrqns20.dll，mgrqns35.dll | (サポートされなくなりました）
mgrqcgi.exe | mgrqcgi93.exe
mgrqgnrc.dll | mgrqgnrc93.dll
mgrqhttp.dll | mgrqhttp93.dll

上記の変更に伴い、MAGIC.INI、HTMLファイルを必要に応じて変更してください。

例： InternetDispatcherPath = /Magic9Scripts/mgrqispi93.dll)


旧バージョンからのマイグレーション

旧バージョン(ｄｂMAGIC Ver 8.2)からのマイグレーション

マイグレーション可能なdbMAGICバージョン

リポジトリ入力可能な、旧バージョンは、dbMAGIC Ver8 のみとなります。それ以前のバージョンは、一度、Ver8へ移行するか、弊社の移行サービスをご利用ください。

JAVAフォーム

Javaフォームは、サポートされなくなりました。Ver8のアプリケーションをリポジトリ入力すると、Javaフォームは削除されます。

Magicのメニューアイコン

Magic Ver9 はアイコンの新しいセットを提供します。Ver8 の内部アイコンを使用しているアプリケーションの場合、Ver9 では異なるアイコンが表示される場合があります。 外部のアイコンを使うように変更するか、またはメニューに対して新しいアイコンを割り当て直してください。

基本色定義ファイルとフォント定義ファイルの変更

Magic Ver9 は、新しい基本色定義ファイルとフォント定義ファイルを提供しています。最初の1～100番までは、Magic 内部用に割り付けられています。この変更により、旧バージョンからの移行時には、アプリケーションで使用している色とフォントの参照をコンバートする必要があります。
基本色／フォント定義ファイル コンバートユーティリティ（英語）がありますのでご使用ください。　詳細は、ボーナスパックを参照してください。

イベントハンドラ

Ver8 のタスクイベントは、対応した Magic Ver9 のハンドラの下で、コールコマンドに変換されます。Ver8 の CTL イベントは、メインプログラムのハンドラに変換されます。

LEVEL関数

Magic Ver9のLEVEL関数は、Ver8と異なる値を返します。
グループレベルをチェックするとき、LxPまたはLxSの代わりに、関数は"GP_<変数名>" または "GS_<変数名>"の文字列を返します。

トランザクションロッキング

移行したアプリケーションのトランザクション・モードは、全て物理トランザクション・モードとなります。

MS-SQL 使用時のデフォルトのロックの動作は、物理ロッキングに変更になっています。 dbMAGIC Ver8 と同等にする場合は、[設定/データベース]の[データベース情報]欄に「SQL_PHYSICAL_LOCKING=N」と設定します。

レポートジェネレータ

サポートされなくなりました。

バージョン管理機能

サポートされなくなりました。

GUI画面のテーブルコントロール

GUI画面のテーブルコントロールの機能が拡張されました。Ver8で作成したテーブルコントロールをVer9 と同じ機能にするには次の変更を行います。

  • コントロール特性／スタイル ・・・ 凸立体 → Windows立体
  • コントロール特性／サイズ変更 ・・・ No → Yes
  • 各カラムのタイトルの変更 ・・・
    1. テキストコントロールの親子リンクを解除してから削除。
    2. Alt+マウスクリック でカラムを選択し、カラム特性のテキストにタイトル名を記述。

リポジトリ入力ログファイル

アプリケーションリポジトリ入力を行なうと、アプリケーションリポジトリ入力ログファイル（XXIMP.LOG）を作成します。
変換エラー等が発生していないか、入力ログで確認してください。

Ver8アプリケーションからの移行の強化

Ver9.20JSP1より、ISAM（Pervasive.SQL）データベースを使用した、dbMAGIC Ver8のアプリケーションの移行を容易に出来るように拡張されました。 詳細は、Ver9.20J SP1 の新機能を参照 してください。

アクション名の変更

Mgconstw.jpn は、Ver8.2から移行する場合の互換性のあるアクション名にしていますが、一部のアクション名が異なるため、ユーザメニューやアクションコマンドに定義されている内部イベントが欠如する場合があります。Ver8.2 で以下のアクションを使用している場合は、リポジトリ入力後再定義してください。

Ver 8.2

Ver 9.X

行ジャンプ | 行ジャンプ(&J)
&T:行作成 | &R:行作成
&R:複写登録 | &Y:複写登録
前行にマーク | 前行を複数行マーク
次行にマーク | 次行を複数行マーク
&T:複写 | &I:複写
&T:タイプ | モデル(&D)
&H:ノードサイズ縮小 | &L:サブツリー縮小
&K:タスクイベント | ユーザイベント(&U)
&H:SQL Where 句 | &R:範囲／位置付
&U:dbMAGIC ヘルプ | &U:Magic ヘルプ
&L:チェックアウト一覧 | チェックアウト一覧


文字型書式「位置指示記号」の拡張

dbMAGIC Ver7，Ver8では、AS/400（iSeries）のDBCS対応のために、Magicの文字型書式の「位置指示記号」をスイッチを指定することにより機能拡張するようにしていました。Magic Ver9では、拡張された「位置指示記号」をデフォルトで使用できるようになっています。

DDSフィールド | 位置指示記号 | 制限事項
DBCS 専用フィールド（J） | J | 全角のみ入力可
DBCS 混用フィールド（O） | X | 全角、半角の混在入力可
DBCS 択一フィールド（E） | T | 全て全角か、全て半角で入力可
DBCS 図形フィールド（G） | G | 全角のみ入力可。シフトコード無し
SBCS （A） | S | 半角のみ入力可

注意：

  • これらの書式は、AS/400（DB2/400)以外でも使用することが可能です。この場合、G は J と同一の動作になります。
  • Magic位置指示記号の（J、T、G）は、必ず２文字単位で記述します。
  • 追加された位置指示記号と、Magic位置指示記号文字（J, X, T, G, S)は混在して記述することができません。例．JJJJXXXXなど
  • 追加された位置指示記号（J、T、G、S）は、U、L、# を使用できません。
  • この機能を無効化したい場合は、MAGIC.INI にて以下の設定を行ってください。
    [dbMAGIC_ENV]
AS400Set = N


サポートするイメージフォーマット

サポートしているイメージファイルのフォーマットは以下のとおりです。対応するグラフィックサポートモジュールをインストールする必要があります。

ファイルタイプ | サブタイプ | 表示
BMP | OS/2 | 〇
 | Windows RGB Encoded | 〇
 | Windows RLE Encoded | 〇
JPG | Standard Encoding | 〇
 | Progressive Encoding | ×
JIF | Standard Encoding | 〇
 | Progressive Encoding | ×
PCX | ZSoft Paintbrush Version0 | ▽
 | ZSoft Paintbrush Version2 | 〇
 | ZSoft Paintbrush Version5 | 〇
MAC | MacPaint No Header | 〇
 | MacPaint With Header | 〇
PCT | Macintosh PICT | 〇
TGA | 8 Bit Compressed | 〇
 | 8 Bit UnCompressed | 〇
 | 16 Bit Compressed | 〇
 | 16 Bit UnCompressed | 〇
 | 24 Bit Compressed | 〇
 | 24 Bit Uncompressed | 〇
IMG | GEM Paint | ×
TIFF | Fax CITT3 | 〇
 | Huffman Compressed | 〇
 | LZW Compressed | ×
 | Packbits Compressed | 〇
 | Uncompressed | 〇
WMF | Window Metafile | 〇
MSP | Microsoft Paint | ▽
PSD | Adobe Photoshop 2.5 | ×
RAS | Sun Raster Images | 〇
EPS | Color - No Preview | ▽
 | Color - With Preview | 〇
 | Monochrome - No Preview | ▽
 | Monochrome - With Preview | 〇

注意： ▽ は、実際のイメージと異なって表示される場合があることを意味しています。

GIFイメージのサポートについて

GIFデータを表示させるには、UNISYS社からのライセンスが必要で、デフォルトの状態では、指定はできますが、表示はされません。

Magic上でも GIF ファイルを表示させるには、UNISYS社からライセンスを購入し、MAGIC.INIの［MAGIC_ENV］セクションに、以下の記述を追加します。(1000235)

MAGIC_ENV]
UnlockGIFLZWCode = [License Number]
ここで、[License Number] はライセンスコードです。

なお、ライセンスに関する詳しい情報は、米国 Unisys Corporation の下記URL(日本語)にあります。
http://www.unisys.com/about__unisys/lzw/lzw__license__japanese.htm


リポジトリ等の最大制限値

Ver 9.3SP5での各種リポジトリ等の最大制限値は以下のようになっています。

リポジトリ | 構成要素 | 制限値
設定 | アプリケーション | 99
モデルリポジトリ |  | リソースに依存
テーブルリポジトリ | テーブル数 | リソースに依存
 | カラム数 | 999
 | インデックス数 | DBMSに依存
 | インデックスセグメント | DBMSに依存
プログラムリポジトリ | プログラム数 | 40,000
 | 処理レベルテーブル | 10,000
 | 処理テーブル | 10,000
 | 変数項目テーブル | 10,000
 | 式テーブル | 9,999
 | フォームテーブル | 9,999
 | DBテーブル | 10,000
 | 入出力ファイルテーブル | 9,999
 | 1フォームあたりの最大コントロール数 | 1,000
 | フォームのコントロールを一度に選択できる個数 | 1,000
 | クリップボードにコピーできる最大コントロール数 | 500
ヘルプリポジトリ | ヘルプ数 | 40,000
権利リポジトリ | 権利数 | 5,000
メニューリポジトリ | メニュー数 | 5,000
 | レベル数 | 10
 | 1レベルの最大エントリ数 | 5,000
コンポーネントリポジトリ | コンポーネント数 | 128


ボーナスパック

CD-ROM の \BONUS というフォルダの下に Magic 関連のサンプルアプリケーションおよびユーティリティが同梱されています。

フォルダ名 | 内容
\BONUS\Utility\colorfont | 基本色／フォント定義ファイル コンバート・ ユーティリティ（英語）
\BONUS\demoapl\tutorial | デモプログラム
\BONUS\demoapl\HandlersScope | ハンドラ・スコープ サンプルアプリケーション
\BONUS\demoapl\Methodology | ブラウザクライアントアプリケーション開発手法 ( [image] 和訳しました)
\BONUS\Demoapl\Interlude | 株式会社マイクロリンク社 Interlude 評価版

注意：

  • ボーナスパックは、 ベータ版およびアップデートモジュールには、添付されていません。

  • ボーナスパックに対するサポートは、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. が提供するサポートサービスには含まれません。


テクニカルホワイトペーパー

製品版 CD-ROM には、以下のテクニカルホワイトペーパーが収録されています。

資料 | CD-ROM フォルダ
インタラクティブWebアプリケーションの開発と実行 | \Online\Interactive Web Applications.pdf
イベントドリブンアーキテクチャ | \Online\Event Driven Architecture.pdf
Magic コンポーネント開発 | \Online\Components.pdf
ブラウザクライアントアプリケーション開発手法 | \Online\BC_Methodology.pdf

注意：

  • テクニカルホワイトペーパーは、 ベータ版および アップデートモジュールには、添付されていません。

  • テクニカルホワイトペーパーの内容に関しては、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. が提供するサポートサービスには含まれません。


ベータ版評価レポートのお願い

ベータ機能評価レポートのお願い

本製品版の機能の一部は、「ベータ機能」としてサポート対象外となっており、マジックソフトウェアジャパンのサポートセンターではお受けいたしておりません 。ベータ機能についてのご意見、ご質問、気が付いた点などは、下記の「ベータ評価レポート」に記入して、メールで japan_v9beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。

Magic eBusiness Platform Ver9.30J SP5a ベータ機能評価レポート

記入日： ２００３年　 月　 日

会社名：

担当者：

E-mail：

ＴＥＬ：

ＦＡＸ：

サポート契約： （ ）Windows　（ ）フルセット　 （ ）なし 該当する（ ）に＊を挿入してください。

１．動作環境

ＰＣ機種：

ＣＰＵ：

ＲＡＭ：

ＯＳ： （ ）Windows98／（ ）Windows2000（SP： ）／（ ）WindowsNT4.0 SP6a／（ ）WindowsXP

ＩＭＥ：

アクセラレータ：

ビデオチップ：

プリンタ：

使用サーバ：

使用ブラウザ：（ ）IE5.5 （SP： )、　（ ） IE6（SP： ）

２．評価結果

対象製品： （ ）Magic eDeveloper （ ） Magic Application Server （ ） Magic Client

該当する（ ）に＊を挿入してください。

Ａ （ ） 問題無し

Ｂ （ ） 一部支障あり

Ｃ （ ） 正常に動作しない

Ｄ （ ） インストール・起動不可

上記２でＢ，Ｃ，Ｄの場合、以下の内容をお書きください。

３． 再現性

（ ）再現性あり、 （ ）時々再現する、 （ ）再現性なし

４．不具合の現象 （できるだけ詳細にお書きください。現象確認を迅速に行なう
ために、極力画面のハードコピー、サンプルプログラム等の提供をお願いいた
します。）

５．その他ご意見


使用条件

  • 本プログラムを購入本数以上複製すること、または逆コンパイル・逆アセンブルすること、もしくは再使用許諾・賃貸・貸与及び譲渡することはできません。

  • 本プログラムは、特定物として現存するままの状態で提供され、マジックソフトウェア・ジャパン株式会社及び Magic Software Enterprises Ltd. は、本プログラムの瑕疵及びその使用結果について一切保証もせず、損害賠償も負いません。

  • 本プログラムの著作権は、Magic Software Enterprises Ltd. にあります。


Ver9.01J SP3 での改善内容

設定

  • アプリケーションをオープン時に、フォント/基本色テーブルでカーソルを移動していると、Magicが異常終了する件に対応しました。(298441)

モデル

  • プッシュボタンのデフォルトイメージファイル特性が継承されない件に対応しました。（928608）
  • 数値型モデルを定義した項目のGUI表示特性に、スライダが表示されない件に対応しました。（508577）
  • NULL値可が「Yes」かつ、NULL デフォルトが「Yes」の場合、NULL値可を「No」に変更しても、NULLデフォルトが変更されないため、チェック時にエラーになる対応しました。（761393）

コンポーネント

  • コンポーネント公開名に30文字を使用したMCFをリポジトリ出力／入力を行なうとコンポーネント項目が「Item Not Available」になる件に対応しました。(1000126)
  • コンポーネントの公開名に半角空白が含まれている場合、コンポーネントのロード時、コンポーネントリポジトリで、「Item Not Available」と表示される件に対応しました。(1000013)
  • ネストされたイベントコンポーネントによってメインプログラムでプログラムを起動した場合、Magicが異常終了する件に対応しました。(1000064)
  • メインプログラムのハンドラで PROG 関数を実行するアプリケーションを、ネストしたコンポーネントとして呼び出すと、Magicが異常終了する件に対応しました。
  • コンポーネントテーブルをソーステーブルに設定したデータコントロールの表示項目で項目一覧をオープンすると、Magicが異常終了する件に対応しました。

プログラム一般

  • 複数のタスクコールが定義されているプログラムの中で、サブツリーの切り取り／貼り付けを行った場合、コールコマンドのタスク番号は連動しない件に対応しました。(0771577)
  • 子タスクで、パラメータを受け取るための変数のセレクトコマンドより先に、実項目のセレクトコマンドが設定されている場合、子タスクはパラメータの値を受け取れない件に対応しました。(1000080)
  • 式テーブルで移動登録を行った場合、データコントロールの範囲パラメータに指定された式番号が連動しない件に対応しました。(0699183)
  • プログラム番号の表示桁数を５桁まで対応しました。(1000171)
  • テーブル一覧、プログラム一覧等で位置付(Ctrl+L)のウィンドウをオープンした時に、ウィンドウが小さい件に対応しました。(1000249)
  • メインプログラムにハンドラが定義されており、メッセージパラメータに式が設定されている場合、実行時にMagic が異常終了する件に対応しました。（773686）
  • 子タスクに設定されたパラメータ項目を変数項目に変更してから、取消処理を行うとMagicが異常終了する件に対応しました。（1000258）
  • タスクツリー上でルートタスクを削除すると、Magicが異常終了する件に対応しました。(748423)

関数

  • EDITGET関数をEDITSET関数のパラメータ内に含めて使用すると、戻り値が文字化けする件に対応しました。（882934）
  • カラム/変数項目のNULL値可を「YES]に設定した場合、SETPARAM関数でNULLを設定した後、別の値をSETPARAM関数で設定しても、GETPARAM関数で取得できない件に対応しました。（781552）
  • INIPUT関数において、値を空欄にできない件に対応しました。（1000312）

ユーティリティ

  • コンポーネントビルダにおいて、モデルを登録して再度、モデルを登録しているテーブルに移動後、ESCで戻ると登録数が0になってしまう件に対応しました。(1000318)

リポジトリ入出力

  • タスク内にグループレベルの処理があり、いずれかの処理レベルでデータ出力コマンドを使用しているアプリケーションをリポジトリ出力／入力を行なうと、Magicが異常終了する件に対応しました。(1000152)
  • Ver8のテーブルコントロールの背景色を、カラムコントロールの背景色に反映するようにしました。（1000136）

フォーム

  • フォーム特性の寸法単位を変更するとMagicが異常終了する件に対応しました。(1000142)
  • 文字型の書式をイメージで表示されない件に対応しました。（例）書式5の場合、XXXXXと表示。（1000137）
  • オプション/フォーム(Ctrl+U)で画面を開いて、フォーム特性を変更すると、Magicが異常終了する件に対応しました。（1000142）
  • 親子のオンラインタスクで子タスクのウインドウの[子ウィンドウ]を「Yes」とした場合、子タスクのフォーム画面から親タスクのフォームのある項目の位置を移動すると、親タスクの他項目の書式が変更される件に対応しました。（1000247）
  • テキスト形式フォームにおいて、スタティックコントロール、およびラインコントロールの線幅が指定できない件に対応しました。(1000135)

印刷機能

  • Windows2000において、印刷プログラムの出力先をコンソールにして実行すると、「メモリ不足です」のエラーになる件に対応しました。(1000144)
  • 拡張フォームで複数行出力した場合、フッタが最初と最後のページしか出力されない件に対応しました。（997704）
  • プリントダイアログ表示を１度キャンセルして２度続けてオープンすると、Magicが異常終了する件に対応しました。（976697）

プレビュー機能

  • ハンドラで印刷プレビュープログラムを起動する場合、プログラムを起動後に、終了イベントが実行されると、プレビューウィンドウが自動的に閉じてしまう件に対応しました。（984630）
  • 以下の操作でMagicが異常終了する件に対応しました。（20715）
    (1) 印刷プレビューを実行した後で、テーブルリポジトリでAPG(実行)を実行する。
    (2) フォームエディタにアクセスする。
  • テーブルコントロールのスタイルが立体の場合、カラム名を左寄せ以外にすると、一番右のカラムのカラム名がテーブルの外に表示される対応しました。（1000185）

インターネット機能

  • Ver8 から移行を行った場合、HTMLフォームおよびHTMLドキュメントフォームのテーブルの行高さが正しく設定されない件に対応しました。(3069)
  • HTMLフォーム特性の[コンテキスト変数]ダイアログの[Cookieを使用]欄を「No」に指定した場合、コンテキスト変数の情報が正しく作成されない件に対応しました。(276426)
  • サウンドファイルパラメータが機能しない件に対応しました。（204506）
  • バッチタスクのHTMLフォームのハイパーリンクを指定すると、Magicが終了する件に対応しました。(1000276)

ブラウザクライアント

  • タイマイベントを使用した場合、[設定／動作環境]の[キーボード休止秒数]の値を1以上に設定すると、この値でタイマイベントが発生する件に対応しました。(451718)
  • コンポーネントのイベントが有効の場合、Magicが異常終了する件に対応しました。（303962）
  • セレクトの条件に式を定義してカーソルのパーキングの制御できない件に対応しました。(1000124)
  • レコード前処理でエラーコマンドを実行すると、Magicが異常終了する件に対応しました。（297447）
  • ブロックコマンドをネストした場合、ブロックコマンドに対して1レベル上のブロック終了コマンドがペアとして認識される件に対応しました。（747338）
    (例) 以下のような制御構造が定義されているとき、最初の条件１の結果に関わらず、常にエラーコマンド3が実行されていました。
    IF 条件1
    エラーコマンド1
    IF 条件2
        エラーコマンド2
    ブロック終了
    エラーコマンド3
ブロック終了
  • Wait=Noのイベントを複数起動した場合、照会、修正、登録、ビュー再表示などの一部の内部イベント後にハンドルされるべきイベントがハンドルされない件に対応しました。（1000271）
  • ラインモードの画面において、行作成アクションの実行により作成された行を登録せずに、マウスを使用して該当行より下の行をクリックすると、クリックされた行の表示が不正になったり、ランタイムエラーが発生する件に対応しました。（1000213）
  • 修正したレコードの次のレコードを削除すると、Magicエンジンが異常終了する件に対応しました。(346033)
  • 次画面アクションを実行した場合、データは存在するにもかかわらず、移動しない件に対応しました。（152832）
  • 照会モードから修正モードに変更した後、インデックスの重複エラーがおきると、不定期にMagicが異常終了する件に対応しました。（300430）
  • 照会モード時、データビューの変数をサブプログラムで更新すると、「照会モードのため更新できません」のエラーとなる件に対応しました。（1000274）
  • 照会モード時に照会イベントを発行するなど、現在と同じモードの内部イベントを発行すると、Magicエンジンが異常終了する件に対応しました。(1000275)
  • レコードが一件もないとき、登録モードで照会イベントを発行すると、Magicが異常終了する件に対応しました。(1000285)
  • サブタスク、またはフレーム内のプログラムを起動直後、HTMLにレイアウトされたVCRイメージをクリックしたとき、コール元のプログラムにフォーカスが移動する件に対応しました。（1000264）
  • 親フォームにテーブルを使用している場合、ビュー再表示／照会／修正などの内部イベントを発行すると、サブフォームが親フォームのテーブル先頭のレコードと関連つけられたレコードが表示されてしまう件に対応しました。（1000273）
  • データコントロールとサブフォームがあるプログラムで、データの更新とリフレッシュを行うと、Magicが異常終了する件に対応しました。（760640）
  • 下位タスクからサブフォームのパラメータに使用している項目を更新しても、そのデータで範囲指定されたサブフォームのレコードが表示されない件に対応しました。（1000246）
  • サブフォームを使用しているプログラムにセレクト項目を追加すると、データが１件も表示されない件に対応しました。（1000176）
  • コンボボックスとリストボックスにおいて、マスク文字「-」が使用できるようになりました。(1000248)
  • チョイスコントロールをマウスでクリックすると、前行のチョイスコントロールの値が変更される件に対応しました。（391986）
  • [タスク特性]ダイアログの[終了時URL]にある出力先フレームの設定が無効になる件に対応しました。(1000079)
  • CALLPRG関数を使用すると、Magicが異常終了する件に対応しました。（431912）
  • メインプログラムに変数が定義されたアプリケーションに対して、複数端末から同一プログラムを起動すると、Magicが異常終了する件に対応しました。（771685）
  • ブラウザタスクが実行されているウィンドウ、またはフレームに対して、URL入力などによりブラウザタスクを実行させる（コンテキストが再作成される）場合、現在のブラウザタスクを終了しなくても新しいブラウザタスクを実行できるようになりました。(1000200)
  • [フォームテーブル]を閉じたときに表示される「変更内容を保存しますか？」の確認ダイアログで<はい>を選択すると、[タスク特性]の[終了時URL]が消えてしまう件について対応しました。(763434)
  • 複数のタスクコール（サブフォームからのコールを含む）が定義されているプログラムの中で、サブツリーの切り取り／貼り付け、あるいはドラッグアンドドロップを行った場合、ブラウザフォームのサブフォームのタスク番号が連動しない件に対応しました。(1000025)
  • サブツリーの貼り付けを行った場合、ブラウザフォームのサブフォームのタスク番号が連動しない件に対応しました。(0659666)

ワークグループ開発機能

  • フォルダの登録または削除を行なうと、Magicが異常終了する件に対応しました。(428188)
  • メインプログラムを含むアプリケーションをリポジトリ出力／入力を行なうと、Magicが異常終了する件に対応しました。
  • ユーザＡが呼ぶプログラムを移動している間に、ユーザＢが呼ばれるプログラムをチェックインすると、Magicが異常終了する件に対応しました。
  • テーブルリポジトリがチェックアウトされている状態で、コンポーネントリポジトリのモデルでクロスリファレンスを行なうと、Magicが異常終了する件に対応しました。
  • 他のユーザが、モデルの複写処理を行いチェックインした後、チェックアウトするとMagicが異常終了する件に対応しました。

サーバ機能

  • Windows98環境でMagicをバックグラウンドモードで起動すると、正常に終了しない件に対応しました。（1000088）
  • メインプログラムからコールしたプログラムの中の変数を更新すると、リクエスタから渡されたパラメータの値が不正になる件に対応しました。(594517)

インストール

  • HASPドライバをVer4.02 から Ver4.5 にアップしました。
  • ライセンスサーバをインストールしたPCを再起動した場合、ライセンスサーバのサービスが起動されない件に対応しました。
  • Windows98にインストールした場合、ライセンスサーバを起動するためのショートカットが、スタートアップに登録されるようになりました。