Magic eDeveloper V10 追加情報

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

Magic eDeveloper Ver 10.1J SP2a 追加情報

  Magic Studio
  Magic Client
  Magic Enterprise Server

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

内容

  • 本バージョンのご利用にあたって [image] 必ずお読みください。
  • 添付ドキュメントについて
  • バンドルDBMSについて
  • 旧バージョンからの移行
  • Ver10.1SP2からの移行
  • サポートされているOS・DBMS
  • 修正履歴
  • データベース固有の追加情報
  • 参考技術情報
  • 付録
  • ベータ機能評価レポート
  • Magic eDeveloper V10 使用許諾契約書


本バージョンのご利用にあたって

インストール製品について

今回のリリースで提供されるMagic製品は、下記の通りです。

製品名 | 提供ライセンス
Magic Studio (開発版) | デモライセンス。最大データソース数、レコード数、プログラム数などに制限があります。正式ライセンスは別途提供されます。
Magic Client (実行版) | 製品梱包箱のシールにライセンス情報(シリアル番号、アクティベーションキーなど)が記載されているので、インストール後にライセンスマネージャを起動して、ライセンス登録することにより、正式製品として利用することができるようになります。
Magic Enterprise Server (サーバ版) | 弊社 UDC でユーザ登録を行い、ライセンス発行をして、ライセンス情報を取得してください。その後、ライセンスマネージャを起動して、ライセンス登録することにより、正式製品として利用することができるようになります。

インストールとライセンス登録の詳細については、CD-ROM の Online ディレクトリにあるインストールマニュアル V10_Install.pdf に、製品ごとに詳しく説明してありますので、そちらを参照してください。

ベータ機能について

本バージョンが提供する機能のうち、ベータ機能、サポート外機能とされている機能があります。これらの機能はマジックソフトウェアジャパンのサポートセンターでのサポート対象外ですが、ご意見、ご質問、気が付いた点などは、「ベータ 機能評価レポート」に記入して、メールで japan_v10beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。 お送りいただいたメールはすべて良く検討し、製品改善のための参考にさせていただきますが、お問い合わせの内容に対し個別にはお答えできない場合もありますので、予めご了承願います。

現バージョンでの既知の問題・制限事項

現バージョンでの既知の問題・制限事項については、修正履歴 を参照してください。

ゲートウェイ利用時の注意事項について

今回のリリースでは、以下のゲートウェイは提供されていません。

  • Magic/400 (ISAM、SQL)

また、各DBMSに固有な新機能、留意・制限事項、および互換性についての情報は、「データベース固有の追加情報」にまとめてあります。あわせてご参照ください。


添付ドキュメントについて

今回のリリースで提供されるドキュメントは以下の通りです。

ヘルプとReadMeは、全製品に添付されます。それ以外の技術文書は、Studio 製品にのみ添付されます。

ドキュメント名 | 形式 | 備考
Magic eDeveloper V10 ヘルプ | HTMLヘルプ (CHM) | HTML形式のリファレンスマニュアルです。PDF形式では提供されていません。
Magic eDeveloper V10 ReadMe |  | 本 ReadMe ファイルです。
Magicパーティショニング トラブルシューティングガイド | PDF |
インストールガイド
Magic コンポーネント開発 |  | Magicでアプリケーションを開発する上で知っていただきたい、技術情報が記載されています。
イベントドリブンアーキテクチャ
データ管理とMagic eDeveloper
MSVSSによるバージョン管理 |  | Microsoft Visual SourceSafe を使用したMagic V10プロジェクトのバージョン管理の方法について解説します。
CVSによるバージョン管理 |  | CVSを使用したMagic V10プロジェクトのバージョン管理の方法について解説します。
新機能ガイド |  | Magic V10の新機能についての概要説明です。
Magic eDeveloper V10 for System i インストールガイド |  | Magic eDeveloper V10 for System iのインストール方法について解説しています。
Magic eDeveloper V10 for System i 開発ガイド |  | Magic eDeveloper V10 for System iを利用してプログラムを開発する上で、必要な技術情報が記載されています。
新機能チュートリアル |  | V9Plusまでの経験者がMagic V10の新機能を速く習得できるよう構成されたチュートリアルです。サンプルアプリケーションを使います。


バンドルDBMSについて

Magic eDeveloper V10 各製品には、以下のDBMSがバンドルされます。

製品名 | Magic Studio V10 | Magic Client V10 | Magic Enterprise Server V10
DB2 UDB Express-C 8.2 | ○ | ○ | －
SQL Server 2005 Express SP2 | ○ | ○ | －
Pervasive PSQL v9 SP2 Workgroup (5ユーザ) | ○ | ○ | －

  • Magic Enterprise Server V10製品には、DBMSはバンドルされません。
  • バンドルされている DB2 UDB Express-C および SQL Server 2005 Express は、最新のバージョンをDBMS各社のホームページからもダウンロードすることができます。
  • DB2 UDB、Pervasive PSQL製品のご購入に関しましては、弊社営業までお問い合わせください。

バンドルDBMSのサポートについて

  • バンドルされている Pervasive PSQL v9 Workgroup については、弊社サポートセンターのサポート対象となります。
  • DB2 UDB Express-C および SQL Server 2005 Express に関しては、弊社からもDBMSベンダからもサポート・メンテナンス等一切ありません。従って、これらの製品の利用は、開発・テスト段階での利用に止め、実運用環境においては、DBMSベンダからのサポートを受けられる正式製品をご利用されることを強くお勧めいたします。


旧バージョンからの移行

Magic V10では、過去のバージョンとの互換性維持にも努めた結果、V9からV10への移行はたいへん容易に行うことができるようになっています。

移行パス

過去のバージョン(V4 ～ V9Plus) から V10 に移行する手順については、以下の通りとなります。

V10への移行は、V9Plus Ver9.4SP6a (およびそれ以降)のバージョンのリポジトリ出力形式ファイルを、V10添付の V9Plus コンバータにより、V10のプロジェクト形式に変換することにより行います。このため、MCFのバージョンにより、移行手順が異なります。
  • V9Plus V9.4SP6a およびそれ以降のバージョンの場合 (上図 ① のケース)：
  1. V9Plus Ver 9.40J SP6a 以降で、アプリケーション全体をリポジトリ出力します。
  2. V10製品に添付のV9Plusコンバータプログラムを用いて、V10形式のプロジェクトに変換します。
  • V8.2 から V 9.40J SP3c までのMCFの場合 (上図 ② および ③ のケース)： いったん V9Plus Ver 9.4J SP6a 以降に移行した上で、上記手順を行ってください。
  • V4 ～ V7 製品のMCFの場合 (上図 ④ のケース)： まず V8.2 に移行し、更に V9Plus Ver 9.4J SP6a 以降に移行した上で、上記手順を行ってください。
過去のバージョンからの移行方法については、Magic Studioに添付の以下のドキュメントに詳しい説明があるので、実際に作業を始める前に良くお読みください。
  • リファレンスマニュアル（ヘルプ）の「マイグレーション」の章
  • 新機能チュートリアルの 「以前のバージョンからV10 への移行」の章

移行のための旧バージョン

上記のように、V9Plus Ver9.4SP6a より以前のバージョンから V10 にアプリケーションを移行するには、V9Plus Ver9.4SP6a （あるいは、V8.2) が必要となります。Magic Studio V10 製品には、開発者の移行の便のために、V9Plus Ver9.4SP6a および V8.2K4SP2 の簡易版が同梱されています。

これらのバージョンは、移行目的のためだけに提供されますので、次のような制限があります。

  • 基本的に、リポジトリ入力と出力を行うためにだけ利用します。
  • 開発・実行機能も利用できますが、移行の確認と最小限必要な修正のためにだけ利用してください。アプリケーション単純移行の目的を超える、新しいアプリケーション開発や新しい機能の追加のために利用することは認められていません。
  • Web機能実行のためのモジュール類 (MRB、リクエスタ、ブラウザクライアントモジュール等)およびSQL系のゲートウェイのインストール・設定は行われません。SQL系のDBMSを利用したアプリケーションを移行する場合は、別途インストールファイルとライセンスが必要です。ライセンスは、MSJの担当営業にお問い合わせください。
  • 実運用環境で利用することは認められません。
  • 使用権は、ご購入になった Magic Studio V10製品に準ずるものとし、特定のPC1台にのみインストール可能です。

V9Plusからのコンバート

  • リポジトリ出力を行うV9Plusの開発版は、mgconstw.jp2を設定して起動してください。
  • リポジトリ出力を行うV9Plusの開発版の MAGIC.INI に[dbMAGIC_ENV]NativeTranslation = Yが設定されていると、正しくコンバートできないことがあります。

ファントムタスクのハンドリングについて

Ver 9.40J SP3 では、ファントムタスクのハンドリングに関する拡張が行われ、レコードメインだけでなく、他のハンドラレベル（コントロール前処理/後処理、イベントハンドラなど）に［コール］処理コマンドが定義されている場合でも、ファントムタスク呼び出しのために使われるようになりました。この機能の詳細については、V9Plus (Ver 9.40J SP3c以降) のREADME.CHM の「9.40J SP3 での新機能」のページに記述されています。この機能拡張は、V10においても有効です。

これはイベントベースのアプリケーション開発スタイルをより使いやすくするための拡張ですが、Ver 9.40J SP1a および、V8.2、V7.x などを含む旧バージョンから移行を行うと、プログラムの構造によっては、この機能拡張によって、ファントムタスクにカーソルが移動してほしくないときに移動してしまう、という現象が起こる可能性があります。

このような場合には、次のようにファントムタスクを呼び出す［コール］処理コマンドに条件付けを行い、不要なときに［コール］処理コマンドが実行されないように、プログラムを修正してください。

  • ［コントロール後］でファントムタスクを呼び出している場合、［コール］処理コマンドに Level(0) = 'CS_コントロール名' というような条件を付ける。
  • プッシュボタンのイベントハンドラでファントムタスクを呼び出している場合には、LastClicked ()='ボタンのコントロール名' という条件を付ける。


サポートされているOS・DBMS

ここでは、Magic V10 のシステム要件を記します。

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

Magic V10 サポートDBMS一覧表

DBMS | Version | Magic eDeveloper V10 Windows版
Pervasive.SQL | V8 | ○(SP3)
 | V9 | ○(SP1以降)
Oracle | 9i | ○ (R2以降)
 | 10g | ○
MS-SQL | 2000 | ○ (SP4以降)
 | 2005 | ○
DB2UDB | 8.2 | ○
 | 9 | 予定

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

注意事項

  • 各DBMSとも、日本語版にのみ対応しています。
  • その他の言語バージョンのDBMS製品については、DBMSベンダーが日本語版OS上で日本語データの動作保証をしている場合に限り、サポート対象となります。

Magic V10 サポートOS一覧表

Windows Version | Magic Studio | Magic Client | Magic Enterprise Server
2000 Professional | ○ | ○ | ×
2000 Server, Advanced Server | ○ | ○ | ○
XP Professional | ○ | ○ | ×
Server 2003 (Standard, Enterprise) | ○ | ○ | ○
Vista（Business/Enterprise/Ultimate） | △ | △ | ×

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

注意事項

  • x86 (32bits) アーキテクチャのみサポートしています。x64 (EMT64) および Itanium (IA64) アーキテクチャの Windows 上では動作保証されていません。
  • 日本語版の Windows 製品にのみ対応しています。その他の言語バージョンでは、動作保証されていません。
  • Windows Vistaで動作させる場合、いくつかの機能制限があります。

注意2: Windows Server 2003 利用時の注意事項

  • ISAPI および CGI リクエスタを使用する場合、IISマネージャ－Webサービス拡張で実行を許可にしてください。

その他のソフトウェア要件

用途 | ソフトウェア | 対応バージョン
バージョン管理用 | Microsoft Visual Sourcesafe | 6.0d、2005
 | CVSNT | 2.0.58d
 | Jalindi Igloo | 1.03
ブラウザクライアント実行用 | Internet Explorer | 6.0
 | .Net Framework | 2.0および3.0
Webサービス用 | Systinet Server for Java | 6.5.2
 | JDK/JRE | 5.0

  • ブラウザクライアント機能は、ベータ機能です。
  • Systinet Server for Java 6.5.2 および JDK/JRE 5.0 (Update 4) は、Magic eDeveloper製品に添付されており、Magicのインストーラで、これらのソフトウェアのインストールを選択することができます。Systinet Server for Javaは、バンドルされているバージョン'のみをサポートしています。
  • CVSは、バンドルされているバージョン'(CVSNT 2.0.58d) のみをサポートしています。他のバージョンについてはサポート対象外となります。
  • CVSNTの利用にあたっては、添付のオンラインドキュメント「CVSを使ったバージョン管理」に設定や注意事項等の説明がありますので、CVSを使ってバージョンコントロールを行う場合には、必ず良く読んでください。
  • チーム開発やバージョン管理を行う場合、CVSに比べMicrosoft Visual Sourcesafe の方が制限など少なく、また周辺ユーティリティも便利に使うことができます。本格的な開発を行う場合には、Microsoft Visual Sourcesafe をご利用になることをお勧めします。


修正履歴

ここでは、Magic V10 の修正履歴を説明します。

本バージョンでの修正内容

バージョン | 新機能 | 改善内容 | 動作変更 | 留意・制限事項
Ver 10.1J SP2a |  |  |  |
Ver 10.1J SP2 |  |  |  |
Ver 10.1J SP1a |  |  |  |

ベータ機能

本バージョンでのベータ機能として指定されている機能は、「本製品でのベータ機能」をご参照ください。


Ver 10.1 SP2a での改善内容

Ver 10.1J SP2a での改善内容

ここでは、Ver 10.1 SP2からの改善内容を掲載します。

Oracleでのストアドプロシジャの動作

OracleのSQLコマンドを使用してストアドプロシージャを実行するとき、パラメータに':1'を指定しスペースを渡した場合、V10ではデフォルトでトリミングされてNULLとして渡されます。

※V9Plus以前と同様にトリミングせずにバイト数分のスペースを渡す場合は、MAGIC.INIに以下のパラメータを設定してください。

[dbMAGIC_ENV]
TrimParamDSQL = N

CVS使用時のオブジェクト取得数の指定

バージョン管理でCVSを使用している場合、最新プロジェクトの取得時にMagicが異常終了することがあります。
この現象は、プロジェクト内のオブジェクト数が多い場合に一括して取得することで発生します。MAGIC.INIに以下のパラメータを設定して、一度に取得するオブジェクト数を制限することでこの問題を回避することができるようになります。

[dbMAGIC_ENV]
VCGetUnit = n （デフォルト：0）

nは10～9999の整数です。これ以外の場合は、全オブジェクトを一括で取得します（SP2と同じ）。

テキスト形式印刷

テキスト形式印刷を行う場合、SP2までは以下の問題が発生していました。

  1. 罫線が接続されない場合がある

  2. ［テキスト］コントロール上の一部に別の［テキスト］コントロールや［エディット］コントロール貼り付けて印刷すると、上に貼り付けた別のコントロールの印字位置や次行のテキストコントロールの位置がずれる場合がある

この問題を回避する場合は、MAGIC.INIに以下のパラメータを設定してください。

[dbMAGIC_ENV]
PrintTextByteMode = Y （デフォルト：N）

以下は、既存の不具合に対する修正事項です。

Magic Studio、Client、Enterprise Server エンジン

QCJ# | 内容
746703 | Webサービスビルダでパラメータの方向を「In/Out」に定義して作成されたインタフェースファイルを使用した場合、これを呼び出すコンシューマ用プログラムが構文チェックで警告が表示される問題
776767 | オンラインでリンク項目のヘッダをクリックしてソートしたあと、インクリメンタルサーチを行うと異常終了する問題
779746 | データベース特性の［テーブル変換］特性が「No」の状態で、物理的に同じデータソースを２つ［データ］リポジトリに定義し、一方のデータソースに別のデータソースを上書きすると、そのデータソースが削除されてしまう問題
2000437 | 一方のクライアントで［プログラム］リポジトリのチェックアウトしているときに、他方のクライアントでXMLの定義取得を行った場合、エンジンが異常終了することがある問題
2000466 | レコードを削除してから、新たに追加し、さらにそのレコードを修正すると「別のビューがレコードを削除しました．」のエラーがでる問題
2000498 | オンラインのGUIフォームに、２つ以上の［スタテック（グループ）］コントロールを配置して、それらをまとめて選択すると、コントロールの［スタイル］特性が消える問題
2000506 | フォームの［エディット］コントロールがモデルの書式を継承している場合、フォーム上のコントロールの［書式］特性に型の情報が表示される問題
2000507 | ［フォーム状態ID］特性を使用したSDIフォームを最小化して、そのまま実行エンジンを終了した場合、再度、プログラムを実行すると、フォームが最小化した状態で起動されたまま、タスクバーでクリックしても表示されない問題
2000514 | コンボボックスのリスト表示中に［キャンセル］イベントを使用してコンボボックに対する項目を項目更新で値を更新する場合、ESCキーでコンボボックスのリストを閉じても、コンボボックスの表示が前のままになる問題
2000518 | フォーム特性の［ウィンドウタイプ］特性が「SDI」で、タスク特性の［並行実行］特性がオンの状態の場合、フォームの境界線部分が透過表示になる問題
2000519 | サブフォームに登録モードでレコードを登録し、再度サブフォームのタスクに入ると登録されたレコードが消えてしまう問題
2000466 | XMLデータベースのデータソースに対し、レコードの削除、追加、修正を続けて行うと、エラーが発生することがある問題
2000525 | ［TAB順序］特性に式を使用した場合、TAB順序の再計算が行われない問題
2000527 | 下位タスクから上位タスクのフォームが編集できない問題
2000530 | テーブルに配置されたコントロールの［ツールチップ］特性に式を定義したオンラインプログラムを実行すると、最初のレコードのみツールチップが表示される問題
2000532 | 式エディタにネストの深いIF関数を定義すると編集後に異常終了する問題
2000533 | ［リンク］コマンドを定義したデータビューを編集した後に、GUIフォームを開いてからプログラムを閉じると、実行時にリンクが失敗する問題
2000535 | ［コールCOM］処理コマンドの実行時に、BLOB型（［内容］特性は「U=Unicode」）のパラメータを渡すと、BLOB型の内容がANSIとみなされてANSIからUnicodeへの変換が実行される問題
2000540 | DDEPoke関数のパラメータの値が、先頭の1バイトしか渡らない問題
2000541 | 入出力特性で指定したページヘッダ、ページフッタの番号が、別のフォーム番号に変わってしまうことがある問題
2000552 | DataViewVars関数の戻り値に全角文字が含まれると、その値が半分になる問題
2000560 | ［項目変更］ロジックユニットの条件式に変更対象の項目が使用されている場合、正しく動作しないことがある問題
2000568 | ［範囲/位置付］ダイアログの［DB SQL］に定義されている項目のシンボル名を含む3文字以内に ' または " があると、それ以降に定義している項目がクロスリファレンスの結果に表示されない問題
2000570 | Val関数とMID関数が混合で記述している場合、正しく動作しない問題

印刷機能

QCJ# | 内容
2000545 | 動作環境/動作設定/印刷中断許可の「Yes」と「No」の動作が逆になっている問題

ゲートウェイ

QCJ# | DBMS | 内容
2000521 | DB2UDB | UNICODEのカラムを使用しているテーブルを定義取得すると、［タイプ］特性がに正常に設定されない問題
2000523 Oracle

以下の条件の場合、重複インデックスのエラー発生後に異常終了する問題

  • Oracleで、データベース特性の［データベース情報］特性に「CHECK_KEY=Y」が設定されている場合

  • データソース特性の［位置］特性に「重複不可インデックス」を設定している場合

  • 登録モードでインデックスが重複するデータを入力した場合

2000547

SQL
Server

インデックスセグメントが多く定義されたテーブルに対して、バッチ更新／削除を行うと、不定期にDBエラーが発生する問題

2000559

SQL
Server

インデックスセグメントに複数の日付型項目を定義したテーブルに対して、重複するデータを入力すると「無効な入力パラメータ値です。」のエラーが発生する問題

2000566

SQL
Server

［存在チェック］特性が「No」に設定されているデータソースを使用して、存在しないデータソースを開こうとした場合に不正なエラーメッセージが表示される問題

CVSクライアント

QCJ# | 内容
2000444 | CVSに接続したプロジェクトをオフラインで修正後、再接続時にアクションなしにすると、自動的にチェックアウトされてオープンされる問題


Ver 10.1 SP2a での制限事項

Ver 10.1J SP2a での留意・制限事項

Unicode

V10ではUnicodeをサポートするようになりましたが、現バージョンでUnicodeを利用する際に留意すべき点について、Unicodeを利用する場合の注意事項 にまとめましたので、ご参照ください。

  • (2000556)MAGIC.INIの[MAGIC_SPECIALS]SpecialAnsiExpression = Y　を設定すると、Unicode型やBLOB型（［内容］特性が「U=Unicode」）の項目に対して、Unicode特有の値を更新すると、「????..」として更新されます。

XMLデータベース

XML データベースについての注意事項は、XML データベース利用時の注意事項 にまとめてあるので、参照してください。

開発機能一般

  • (2000316)クラス0のフォームの編集において、［テーブル］コントロールにリンクされているコントロールをテーブルの外に移動するとリンクが外れます。
  • (2000238)MS-IME2002を使った場合、Magic Studioからプログラムを実行してアクティビティモニターから検索画面で2バイト文字を入力したとき、Enterキーで文字を確定しないと文字が表示されない場合があります。
  • プロジェクトファイルの実体はXMLファイルであり、格納されたデータは暗号化されずに保存されます。従って［アプリケーション特性］の権利キーや、［権利］リポジトリの権利キーも暗号化されずに保存されますので、第3者へのプロジェクトファイルの公開には注意が必要です。また、プログラムの中にセキュリティ上、重要なデータを直接格納している場合には、(1)暗号化ソフトを利用する、(2)データベースに保存する、(3)［シークレット］テーブルで管理するなどの方法を検討してください。
  • デバッグモードでプログラムを実行する場合、あらかじめブレイクポイント、項目、ウォッチ、現在のコンテキスト等のペインを表示させてください。
  • (2000384) ［ロジック］エディタにおいて重複したヘッダ行を登録すると、「重複したロジックユニットです.定義しなおしてください.」のエラーが出ますが、その際、Tabキーで移動してロジックのタイプを変更してください。
  • (2000353)V9Plusで他のプログラムとデータの受け渡しを行う変数が［リンク］コマンドより後に定義されているプログラムをV10に移行すると、リンクの戻り値のための変数が自動的に追加されるために正しく動作しないことがあります．
  • (2000429［データ］リポジトリで、タイトル行にカーソルを置いてAPGを起動した時、作成モードしか選択できません。
  • (2000431)２Dのコンボボックスの背景色は36番のアプリケーション基本色が表示されます．コンボボックスのスタイルを変更するか、36番の色番号を変更してください。テーブルコントロールの子コントロールとなるコンボボックスの場合、2Dでなくても36番のアプリケーション基本色が表示されます。
  • (2000462)Windows立体スタイルの［タブ］コントロール上に、［テーブル］コントロールがリンクできません。凸立体スタイルの［タブ］コントロールでは可能です。
  • ［タスク特性］の［前面表示］特性はデフォルトでは表示されません。表示するには、MAGIC.INIの［MAGIC_SPECIALS］セクションにSpecialOldZorder = Yと設定してください。
  • (2000520)Windows Vistaの場合、フォームのコントロールパレットのウィンドウ枠が透過色になっていて、後ろの表示が写ります。

実行機能一般

  • (2000236)［プッシュボタン］コントロールに定義された項目に対する［項目変更］ロジックユニットを設定した場合、実行時にボタンを押下してもイベントは起動されません。
  • (2000242)File2Blb関数で、BLOB項目(タイプがバイナリ)に格納した場合、BOMなしのUTF-8のデータはそのまま格納されますが、BOMありのUTF-8のデータはUnicodeに変換されます。また、UnicodeのデータはBOMありなしに関わらずBOMなしのUnicodeデータで格納されます。
  • (2000286)HTTPGet関数、またはHTTPPost関数でUTF-8のデータをBLOB型のUnicodeタイプのデータで受け取ると、2バイト文字が正しく取得できません。バイナリタイプで受け取るようにしてください。
  • (2000103)ユーザ定義関数に2バイト文字を使った関数を定義することはできません。
  • (2000186)［入出力ファイル］テーブルの［メディア］カラムを「V=項目」、［文字セット］特性を「UTF-8」に設定すると、格納したデータが文字化けすることがあります。
  • (2000491)メインプログラムにOLE型のCOMオブジェクトの変数を設定して、その項目に対して［コールCOM］処理コマンドを実行すると、エラー:#-2147220995が発生することがあります．各プログラムで定義するようお願いいたします。
  • (2000453)［サブフォーム］コントロールを使用して、サブフォームから親ウィンドウのコントロールをクリックした時、TaskId()関数がサブフォームのタスクIDが取得され、HandledCtrl() 関数には値が取得されません。

アプリケーションサーバ機能

  • MAGIC.INIの[MAGIC_ENV]StartApplicationに必ず開始アプリケーション(キャビネットファイル)を指定してください。 リモートコール等によりアプリケーションを新規に開くことはできません。
  • (2000309)［フォーム出力］処理コマンドで［入出力ファイル］テーブルの［メディア］カラムに「リクエスタ」、［文字セット］特性を「Unicode」に設定し、そのプログラムを他のクライアントから［コールリモート］処理コマンドで起動すると、結果ファイルはShift_JISコードで出力されます。 ［文字セット］特性がUTF-8/Shift_JISの場合は、それぞれのコードで出力されます。
  • (2000418)エンコードがUTF-8のHTMLから、アプリケーションまたはプログラム名が２バイト文字のWebプログラムを呼び出しても、正しく実行できません。

ブラウザクライアント

  • 現バージョンでは、ブラウザクライアント機能はベータ機能です。
  • (2000352) 出力するhtmlのエンコードがV9PlusではShift_JIS であるのに対して、V10ではUTF-8であるため、Webブラウザで表示されたイメージが、若干横方向に広がるように表示されることがあります。
  • (2000346) テンプレートファイルのエンコードはShift_JISのみ対応しています。

バージョン管理

  • プロジェクトのバージョン管理ソフトは、Microsoft Visual SourceSafe (6.0d、あるいは 2005)、およびCVSNTをサポートしています。PVCSはサポートしておりません。バージョン管理を使用した開発を行う前に、必ずそれぞれのオンラインマニュアルをお読みください。
  • 同じプロジェクトファイルを複数のMagicエンジンで開く場合は、必ずバージョン管理機能を使用してください。使用しない場合は、開くことができません。
  • (2000405)バージョン管理でVisual SourceSafe(VSS)を使用した場合、履歴等を実行するとVSSの画面が呼び出されますが、この画面にあるヘルプボタンをクリックするとエラーが発生し、それ以降マウス操作ができなくなります。

  • (2000456)VSSを使用している場合、プログラムを新規作成し、このプログラムを削除した場合、VSS上ではチェックアウトのまま残ってしまいます。

Oracle

  • (2000411) RAW型のカラムタイプを定義取得するとBLOB型にマッピングされますので、適宜文字型 (記憶型式：String)に変更する必要があります。
  • (2000558) BLOB型（記憶型式：Unicode Blob）の項目の内容を全角英数字（ＡＢＣ１２３など）で更新すると、文字化けが発生します。

MS-SQL Server

  • (2000563) BLOB型（記憶型式：Unicode Blob）の項目のあるデータソースに対して、2バイト文字のデータを登録するバッチ処理を実行すると異常終了する場合があります。
  • (2000567) インデックスセグメントにUnicode型の項目を複数定義したデータソースに対して、レコード削除を行うと「レコードが失われていました。」、または「...他のユーザがレコードを変更しました.」というエラーが発生し、削除処理ができません。

Webサービス

プロバイダアプリケーションの注意事項

  • 公開プログラム名、およびパラメータ名には英数字と _ (アンダースコア文字)のみで先頭に数字を使用できません。
  • 異なる公開プログラム間で、同じ名前で違う型のパラメータを設定すると、正しく動作しないことがあります。
  • 入力パラメータがXMLデータの場合、パラメータをBLOB型で定義し、名前はXSDスキーマのルートと同じ名前に設定してください。
  • 入出力パラメータがXMLデータの場合、設定されたXSDファイルのエレメントの順序が、Systinetのパッケージを作成した後にアルファベット順に変更されることがあります。これにより、コンシューマに提供するスキーマとあわなくなることがあるため、あらかじめXSDのエレメントの名前をV01_xxx, V02_xxxなどの接頭辞を付加することで回避してください。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面のサービスネームスペースにはデフォルトでMAGIC.INIのオーナ名が付加されます。オーナ名にスペースや . (ドット文字)が含まれる場合、デフォルトの値では jarファイルが作成できませんので適切な値に変更する必要があります。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面の「説明」に日本語の2バイト文字を入力すると、jarファイルが作成できません。
  • (0417930)Webサービスインタフェースビルダで時刻型のパラメータの方向をIn/Outに設定した場合、JARファイルが作成できません。

コンシューマからWebサービスコールを実行するときの注意事項

  • ［サービス］テーブルで既存のWebサービスのWSDLを再読み込みした場合には、V10を再起動してください。さらにそのサービスを設定したWebサービスコールを再度定義しないと正しく実行できないことがあります。
  • プロバイダにXMLデータをBLOB型で渡す場合、Shift_JISのエンコードで渡してください。
  • WSProviderAttachmentGet関数の引数に2以上の値を設定しても、２つ以上の添付ファイルを受け取ることができません。


SP2からの移行に関する注意点

Ver10.1SP2/1aからの移行に関する留意事項

Ver10.1SP2/SP1aで開発されたアプリケーションをSP2aで利用する場合の留意点は以下の通りです。

  • プロジェクトファイルは互換性がありますが、キャビネットファイルはSP2aで作成し直してください。
  • SP2aで修正を加えたプロジェクトファイルは、SP1ではサポート対象外となります。特にSP2aで追加された特性を変更したプロジェクトファイルをSP1aで開いた場合の動作は保証できません。
  • SP2で追加されたタスク特性の［空のデータビュー許可］特性のデフォルト値は「No」に変更されました。
  • 動作環境ダイアログの［動作設定］タブにある［印刷中断許可］の「Yes」と「No」の動作が逆になっていたため、修正されています。
  • Ver10.1J SP2aの改善事項にともない、いくつか動作の変更があります。
  • イベント一覧での表示を整えるため、Ver10.1J SP2aでイベント名が全角カタカナから半角カタカナに変更されました。 この為、Ver10.1J SP1x/SP2でイベントを式で定義しているプロジェクトファイルを、Ver10.1J SP2aで開くと、イベント名が削除される現象が発生します。
    Ver10.1J SP1x/SP2で作成された、該当のイベントを式で定義しているプロジェクトファイルは、以下の手順でリポジトリ出入力を行ってください。

手順：

    1. Ver10.1J SP2aへアップデートします。
    2. ［動作環境］ダイアログの［外部参照］タブでCONSTファイルをMgconstw_old.jpnに変更します。Magicを再起動し、既存のプロジェクトを開きリポジトリ出力します。
    3. CONSTファイルをMgconstw.jpnに戻してMagicを再起動します。プロジェクトを新規作成し、#2で出力したファイルをリポジトリ入力します。
    4. このプロジェクトファイルでキャビネットファイルを作成します。


Ver 10.1 SP2 での新機能

Ver 10.1J SP2 での新機能

SP2では、以下の機能が追加されました。詳細は、リファレンスヘルプを参照してください。

項目特性／データビューの一部

変数項目およびパラメータ項目に「データビューの一部」が追加されました。デフォルトは、「Yes」です。この設定を「No」にした項目はデータビューの影響を受けることがなくなり、ロックやViewMod関数、レコード後の実行対象から外れます。

項目特性／記憶形式

BLOB型項目の内容特性に「バイナリ」が追加されました。BLOB型項目の内容をA=Ansi またはU=Unicodeに指定した場合、記憶型式に「Binary Large Object」が選択できるようになりました。この場合のデータベースに格納されるときのタイプは以下の通りです。

MSSQL Server | イメージ型
Oracle | BLOB型
DB2 UDB | BLOB型

タスク特性／空のデータビュー許可

空のデータビュー状態をサポートするようになりました。この特性をYesに設定した場合、メインソースのレコードが存在しないなど、データビュー内にレコードが存在しない状態であっても、タスクが終了しないようにすることができます。その際、タスクモードは登録モードに変更されません。

またデータビューが存在しない場合、[データビューが空]イベントが発生するようになります。

リモートデバッガ

リモートデバッガは、リモートPC上で実行されるMagic実行エンジンに接続し、動作内容をモニタする機能です。

フォーム特性／背景スタイル

フォーム特性に「背景スタイル」が追加されました。背景イメージをフォームに配置する際の方法を指定することができます。

MRBのAutoLoad機能の拡張

MGRB.INI のAutoLoadの指定をアプリケーション毎に定義するようになりました。［APPLICATION_LIST］セクションで以下のように設定します。

[APPLICATION_LIST]
エントリ名=<コマンド>[<作業フォルダ>],[<ユーザ名>],[<パスワード>],[<MRB の初期化時に実行される回数>],[<起動されるエンジンの最大数>]

これに伴い、[MRB_ENV]セクションのAutoLoadパラメータは無効になりました。

コントロール特性／スタティック（四角）コントロールのスタイル

スタティック（四角）コントロールのスタイル特性に「W=Windows」と「E=エンボス」が追加されました。

テキスト形式フォームでのBLOB型項目のサポート

テキスト形式フォームにBLOB型項目をエディットコントロールとして配置できるようになりました。

Webサービスフレームワークのインストール処理

Magicのインストール処理で事前に環境変数、WAS_HOME/JAVA_HOMEの妥当性をチェックするようにしました。

V9Converter

V9Converter（ウィザード形式版）は以下の機能が改善されました。

  • 出力されるログのフィルタリングが指定できるようになりました。
  • 不要なロジックユニット（レコード、タスクレベル）の削除
  • ECFファイルの作成

WebサービスのSOAPヘッダサポート

SOAPヘッダをサポートするようになりました。ヘッダデータのエレメント名は固定です。

  • コンシューマ側：コールWebサービスにヘッダ特性が追加されました。ここにヘッダとして送信するXMLデータが含まれるデータ項目を定義します。
  • プロバイダ側：タスク特性にヘッダ特性が追加されました。コンシューマ側から送信されたヘッダデータを受け取るためのデータ項目を定義できます。また、ここに設定された項目の内容がコンシューマ側に返されます。

Cipher関数

Cipher関数でAES（American Encryption Standard）の暗号化方式がサポートされるようになりました。

MSMQ メッセージング機能

MSMQ Read Messageプログラムに以下のパラメータが追加されました

  • Correlation Id ：メッセージの照合用に使用されます。
  • Message ID　： 送信されたメッセージのメッセージIDが返ります。

式エディタ／拡張表示のコピー

式エディタの下に表示される拡張表示ウィンドウの内容をコピーすることができるようになりました。

バージョン管理機能の拡張

V10 Studioが利用できるバージョン管理システムとして、新たにCVSNTが加わりました。詳細は、オンラインマニュアル「CVSを使用したバージョン管理」をご覧ください。

同じプロジェクトファイルを複数のMagicエンジンで開く場合は、必ずバージョン管理機能を使用してください。使用しない場合は、開くことができません。

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

MagicアプリケーションをインストールするためのAIUをリリースしました。

ヘルプの同期ボタン

リファレンスヘルプに同期ボタンが追加されました。現在の表示されているトピックが目次の何処に位置付けられているか確認することができます。


Ver 10.1 SP2 での改善内容

Ver 10.1J SP2 での改善内容

ここでは、Ver 10.1 SP1aからの改善内容を掲載します。

パークするコントロールがないオンラインタスクの動作

V10.1 SP1aまでは、オンラインのフォーム画面にカーソルがパークできるコントロールがない場合、エラーダイアログが出力されてタスクが終了しました．SP2ではエラーダイアログは出力されず、タスクが終了することはありません。
※この動作を無効にして、旧バージョンの動作にする場合は、MAGIC.INIに次のパラメータを設定してください。

[MAGIC_SPECIALS]
SpecialExitNoParkable = Y

Zオーダーの管理

フォームのZオーダの管理がOSで行われるようになりました． これにより、並行実行のタスクとファントムタスク(ウィンドウクローズNo、かつWindowタイプが子ｳｨﾝ以外)が実行された場合、常にファントムタスクが前面に出ていた問題が解消されるようになりました。
※この動作を無効にして、旧バージョンの動作にする場合は、MAGIC.INIに次のパラメータを設定してください。

※このフラグが「N」の場合、［タスク特性］の［前面表示］特性が表示されません。

[MAGIC_SPECIALS]
SpecialOldZorder = Y

V9ConverterによるBlob型の記憶型式の設定変更

GUI表示がリッチエディットに設定されたBLOB型項目について、項目特性の内容がA=Ansi,記憶型式がBinary Large Objectに設定されるようになりました。

バイナリタイプのBLOB型

バイナリタイプのBLOB型項目の格納データが変更されました。

  1. エンコーディングが不明な文字データは従来はAnsi(Shift_JIS)でしたが、SP2ではUnicodeとして格納されます。(*1)
  2. 文字型/Unicode型の項目を格納する場合は、エンコーディングを行わずにデータそのものが格納されます。

(*1) Shift_JISとして明示的に格納する場合は、カラム特性／内容をAnsiに設定してください。

Blb2File関数で格納されるエンコードは次のようになります。

内容 | ファイルのエンコード
バイナリ | UTF16(BOMなし )
ANSI | SJIS
Unicode | UTF16(BOM付き)

※この動作を無効にして、旧バージョンの動作にする場合は、MAGIC.INIに次のパラメータを設定してください。

[MAGIC_SPECIALS]
SpecialAnsiExpression = Y

Windows Vista対応

Windows Vistaに対応しました。一部制限事項等があります。

以下は、既存の不具合に対する修正事項です。

Magic Studio、Client、Enterprise Server エンジン

QCJ# | 内容
0702041 | Unicode文字列をANSIのBLOBに格納すると末尾に余計な空白が入る問題
1001488 | ブラウザクライアントでコンポーネントを使用しているときに、タイミングによって本来発生しないはずのテーブルロックが発生することがある問題
2000269 | カラムがBLOB型でUnicodeタイプの場合、２バイト文字を登録するとデータが正しく格納されない問題
2000363 | プロジェクトが存在するフォルダをカレントから/INI=MAGIC.INIのパラメータを付加して、eDevStudio.exeを実行した場合、プログラムを実行するとV10のシステムがインストールされたフォルダのMAGIC.INIを読み込まれる問題
2000370 | XMLデータソースの定義取得で、制約ファセットの数値型（integer型、float型、double型、decimal型）が定義されたxsdファイルを指定した場合、対応するカラムが文字型やBLOB型に割り当てられる問題
2000373 | Windows2000上でMagic Studioを起動し、データソースリポジトリでデータソース名が空欄、かつXMLデータベース(Default XML Databaseなど)を指定したデータソースを削除すると、異常終了する問題
2000395 | 開発版から「バッチプログラムの実行」によって、３つ以上のフレーム出力を行うバッチのWeb出力のプログラムを実行すると、１つのフレームでエラー104が発生する問題
2000414 | Win2003サーバ上のランタイムエンジンに対して、MRBからリクエストが実行できない問題
2000415 | Unicode型の項目を降順にソートした場合、先頭の文字コードが0x7FFFより大きいデータ(ハングル文字など)が表示されない問題
2000416 | ISAMデータベースでUnicode型の項目を降順のインデックスに指定した場合、先頭の文字コードが0x7FFFより大きいデータ(ハングル文字など)が表示されない問題
2000417 | 設定/動作環境/動作設定の「ソート/一時用データベース」の変更が、即時有効にならない問題
2000424 | 埋込SQLコマンドに8000バイト以上のSQL文を指定されたプログラムを実行すると、不定期に異常終了する問題
2000428 | APGのテキスト入力プログラムを実行して、初期時にメニュー／オプション／入出力ファイルが選択できない問題
2000436 | タスク特性/オプション=Yesのバッチプログラムを実行して印刷プレビューを表示し、再実行すると異常終了することがある問題
2000440 | mgconstw.jpnを使用して開発したプログラムにおいて、式にイベントリテラル('...'EVENT)を定義した場合、mgconstw.engに変更して起動すると、そのイベントが空白になる問題 ※mgconstw.jpnを使用してSP1aで開発したアプリケーションをSP2でmgconstw.engに変更して使用する場合にはSP2でリポジトリ出入力を行うことが必要です．
2000442 | データ出力ウィザードにて、テキストファイル（CSV）にカンマ区切りで出力する時、3桁区切りの数値項目が正しく出力されない問題
2000443 | サブフォームを使用したプログラムを並行実行した時、サブフォームのウィンドウをクリックしても、アクティブにはなるが、前面にウィンドウが表示されない問題
2000450 | フォームエディタで、フォームエディタパレットの表示をオフにしてコントロールの貼り付けを行うと、パレットがクリックされた動作になることがある問題
2000454 | 数値項目のタブコントロールの範囲に全角数字が指定されていると、その項目の値が不正になる問題
2000463 | 登録モードのオンラインプログラムで、項目変更ハンドラに定義された「CHG_PRV_項目名」に前行の値が入る問題
2000472 | マージ出力データの最後に00hが出力される問題
2000482 | DDEGet関数でMicrosoft ExcelのStatusが取得できない問題
2000486 | コントロール名に2バイトコードが使用されている場合、コントロール前、後、検証ハンドラにおいてLEVEL関数が正しく評価されない問題
2000489 | コントロール名が空欄のコントロールをクリックしたとき、LastClicked ()<>''の戻り値が'TRUE'を返す問題
2000494 | テキスト出力において、書式より幅が狭く、水平整列が「R=右寄せ」に設定されている場合、左寄せで出力される問題
2000500 | 設定/動作環境の「実行時のカスタムコピーライト」欄に設定しても、アプリケーションをオープンすると、プロジェクト名に変更される問題
2000504 | 単一インスタンスで並行実行のプログラムを複数回実行すると、フォーム上端の境界線が表示されなくなる問題
2000507 | フォーム状態IDを使用したSDIフォームを最小化して終了した場合、再度プログラムを実行しても正常に表示されない問題
2000510 | コントロールの位置やサイズが、印刷プレビューの表示とプリンタの印字結果で異なる問題

印刷機能

QCJ# | 内容
2000436 | タスク特性/オプション/オプション=Yesのバッチタスクで印刷プレビューを表示した後、｢再実行しますか？｣で[Yes]を選択すると異常終了する問題.
2000465 | クラス1以上のフォームに配置されたイメージコントロールが開発時、および実行時のプレビュー画面に一部表示されない問題
2000490 | テキスト形式印刷の罫線のコントロールを印刷するとカタカナに化ける問題
2000509 | 印刷プレビューで印刷マージン設定が有効にならない問題
2000510 | コントロールの位置やサイズが、印刷プレビューの表示とプリンタの印字結果で異なる問題

V9Plusコンバータ

QCJ# | 内容
2000430 | リンク照会(確認=Y)のコマンドが定義されたV9PlusのプログラムをV9CONVERTERでV10のプロジェクトに変換すると、'Row not found in table:'のエラーコマンドが定義される問題

ゲートウェイ

QCJ# | DBMS | 内容
2000455 | Oracle | テーブルのカラムを変更してテーブル変換を実行すると、「ORA-00955：すでに使用されているオブジェクト名です」のエラーが発生する問題
2000478 | Oracle | プログラムのパフォーマンスが劣化した問題
2000495 | Oracle | 埋込SQLに定義されたINOUTパラメータがあるプロシージャが正しく動作しない問題
2000501 | Oracle | 埋込SQLでプロシージャのOUTパラメータにUnicode型項目を設定すると、値を受け取ることができない問題
2000475 | SQL Server | SQL ServerのAPP_NAME()関数が、MAGIC V10で接続したセッションに対してアプリケーション名を取得できない問題
2000502 | SQL Server | MAGIC SQL WhereにUnicode型項目を設定しても、Nの接頭辞が付加されない問題


Ver 10.1 SP2 での制限事項

Ver 10.1J SP2 での留意・制限事項

Unicode

V10ではUnicodeをサポートするようになりましたが、現バージョンでUnicodeを利用する際に留意すべき点について、Unicodeを利用する場合の注意事項 にまとめましたので、ご参照ください。

XMLデータベース

XML データベースについての注意事項は、XML データベース利用時の注意事項 にまとめてあるので、参照してください。

開発機能一般

  • (2000316)クラス0のフォームの編集において、テーブルコントロールにリンクしているコントロールをテーブルの外に移動するとリンクが外れます。
  • (2000238)MS-IME2002を使った場合、Magic Studioからプログラムを実行してアクティビティモニターから検索画面で2バイト文字を入力したとき、Enterキーで文字を確定しないと文字が表示されない場合があります。
  • プロジェクトファイルの実体はXMLファイルであり、格納されたデータは暗号化されずに保存されます。従ってアプリケーション特性の権利キーや、権利リポジトリの権利キーも暗号化されずに保存されますので、第3者へのプロジェクトファイルの公開には注意が必要です。また、プログラムの中にセキュリティ上、重要なデータを直接格納している場合には、(1)暗号化ソフトを利用する、(2)データベースに保存する、(3)シークレットテーブルで管理するなどの方法を検討してください。
  • デバッグモードでプログラムを実行する場合、あらかじめブレイクポイント、項目、ウォッチ、現在のコンテキスト等のペインを表示させてください。
  • (2000384) ロジックエディタにおいて重複したヘッダ行を登録すると、「重複したロジックユニットです.定義しなおしてください.」のエラーが出ますが、その際、Tabキーで移動してロジックのタイプを変更してください。
  • (2000353)V9Plusで他のプログラムとデータの受け渡しを行う変数がリンクコマンドより後に定義されているプログラムをV10に移行すると、リンクの戻り値のための変数が自動的に追加されるために正しく動作しないことがあります．
  • (2000429)データリポジトリで、タイトル行にカーソルを置いてAPGを起動した時、作成モードしか選択できません。
  • (2000498)オンラインフォームエディタで、スタテック（グループ）を、２つ以上のグループをまとめて選択して貼り付けた場合、コントロール特性のスタイル設定が設定されません。
  • (2000506)フォームのエディットコントロールがモデルの書式を継承している場合、コントロール特性の書式には型の情報が表示されます。
  • (2000431)２Dのコンボボックスの背景色は36番のアプリケーション基本色が表示されます．コンボボックスのスタイルを変更するか、36番の色番号を変更してください。
  • (2000462)Windows立体スタイルのタブコントロール上に、テーブルコントロールがリンクできません．凸立体スタイルのタブコントロールでは可能です。

実行機能一般

  • (2000236)プッシュボタンの項目に対する項目変更ハンドラを設定した場合、実行時にボタンを押下してもイベントは起動されません。
  • (2000242)File2Blb関数で、BLOB項目(タイプがバイナリ)に格納した場合、BOMなしのUTF-8のデータはそのまま格納されますが、BOMありのUTF-8のデータはUnicodeに変換されます。また、UnicodeのデータはBOMありなしに関わらずBOMなしのUnicodeデータで格納されます。
  • (2000286)HTTPGet関数、またはHTTPPost関数でUTF-8のデータをBLOB型のUnicodeタイプのデータで受け取ると、2バイト文字が正しく取得できません。バイナリタイプで受け取るようにしてください。
  • (2000103)ユーザ定義関数に2バイト文字を使った関数を定義することはできません。
  • (2000186)入出力ファイルのメディアを項目、文字セットをUTF-8にすると、格納したデータが文字化けすることがあります。
  • (2000491)メインプログラムにOLE型のCOMオブジェクトの変数を設定して、その項目に対してコールCOMコマンドを実行すると、エラー:#-2147220995が発生することがあります．各プログラムで定義するようお願いいたします。
  • (2000453)サブフォームを使用して、サブフォームから親ウィンドウのコントロールをクリックした時、TaskId()関数がサブフォームのタスクIDが取得され、HandledCtrl() 関数には値が取得されません。

アプリケーションサーバ機能

  • MAGIC.INIの[MAGIC_ENV]StartApplicationに必ず開始アプリケーション(キャビネットファイル)を指定してください。 リモートコール等によりアプリケーションを新規に開くことはできません。
  • (2000309)データ出力コマンドで入出力ファイルの出力先にリクエスタ、入出力特性／文字セットをUnicodeに設定し、そのプログラムを他のクライアントからリモートコールで起動すると、結果ファイルはShift_JISコードで出力されます。 文字セットがUTF-8/Shift_JISの場合は、それぞれのコードで出力されます。
  • (2000418)キャラクタセットがUTF-8のHTMLから、アプリケーションまたはプログラム名が２バイト文字のWebプログラムを呼び出しても、正しく実行できません。

ブラウザクライアント

  • 現バージョンでは、ブラウザクライアント機能はベータ機能です。
  • (2000352) 出力するhtmlのエンコードがV9PlusではShift_JIS であるのに対して、V10ではUTF-8であるため、Webブラウザで表示されたイメージが、若干横方向に広がるように表示されることがあります。
  • (2000346) テンプレートファイルのエンコードはShift_JISのみ対応しています。

バージョン管理

  • プロジェクトのバージョン管理ソフトは、Microsoft Visual SourceSafe (6.0d、あるいは 2005)、およびCVSNTをサポートしています。PVCSはサポートしておりません。バージョン管理を使用した開発を行う前に、必ずそれぞれのオンラインマニュアルをお読みください。
  • 同じプロジェクトファイルを複数のMagicエンジンで開く場合は、必ずバージョン管理機能を使用してください。使用しない場合は、開くことができません。
  • (2000405)バージョン管理でVisual SourceSafe(VSS)を使用した場合、履歴等を実行するとVSSの画面が呼び出されますが、この画面にあるヘルプボタンをクリックするとエラーが発生し、それ以降マウス操作ができなくなります。

  • (2000456)VSSを使用している場合、プログラムを新規作成し、このプログラムを削除した場合、VSS上ではチェックアウトのまま残ってしまいます。

Oracle

  • (2000411) RAW型のカラムタイプを定義取得するとBLOB型にマッピングされますので、適宜文字型 (記憶型式：String)に変更する必要があります。

Webサービス

プロバイダアプリケーションの注意事項

  • 公開プログラム名、およびパラメータ名には英数字と _ (アンダースコア文字)のみで先頭に数字を使用できません。
  • 異なる公開プログラム間で、同じ名前で違う型のパラメータを設定すると、正しく動作しないことがあります。
  • 入力パラメータがXMLデータの場合、パラメータをBLOB型で定義し、名前はXSDスキーマのルートと同じ名前に設定してください。
  • 入出力パラメータがXMLデータの場合、設定されたXSDファイルのエレメントの順序が、Systinetのパッケージを作成した後にアルファベット順に変更されることがあります。これにより、コンシューマに提供するスキーマとあわなくなることがあるため、あらかじめXSDのエレメントの名前をV01_xxx, V02_xxxなどの接頭辞を付加することで回避してください。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面のサービスネームスペースにはデフォルトでMAGIC.INIのオーナ名が付加されます。オーナ名にスペースや . (ドット文字)が含まれる場合、デフォルトの値では jarファイルが作成できませんので適切な値に変更する必要があります。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面の「説明」に日本語の2バイト文字を入力すると、jarファイルが作成できません。
  • (0417930)Webサービスインタフェースビルダで時刻型のパラメータの方向をIn/Outに設定した場合、JARファイルが作成できません。

コンシューマからWebサービスコールを実行するときの注意事項

  • 設定／サービスで既存のWebサービスのWSDLを再読み込みした場合には、V10を再起動してください。さらにそのサービスを設定したWebサービスコールを再度定義しないと正しく実行できないことがあります。
  • プロバイダにXMLデータをBLOB型で渡す場合、Shift_JISのエンコードで渡してください。
  • WSProviderAttachmentGet関数の引数に2以上の値を設定しても、２つ以上の添付ファイルを受け取ることができません。


Ver 10.1J SP1a での新機能

インターネットリクエスタで受け付けるリクエスト(GETおよびPOST)のパラメータの文字コードは、通常Shift-JISですが、UTF-8でも受けられるようになりました。Magic実行エンジン (eDevRTE.exe) と同じディレクトリにある MGREQ.INI ファイルで、以下のフラグを指定します。

[REQUESTER_ENV]
ConvertAlphaFromUTF8ToUnicode = Y/N

N (デフォルト) に設定した場合、リクエストの文字コードは Shift-JIS として処理されます。Y に設定した場合には、リクエストの文字コードは UTF8 として処理されますが、もし UTF8 としての解釈に失敗したら、Shift-JISであるとして処理します。

注意： Scripts ディレクトリにも MGREQ.INI ファイルがありますが、こちらで指定しても無効です。


Ver 10.1J SP1a での改善内容

ここでは、Ver 10.1 SP1 (ベータ版)からの改善内容を掲載します。

Magic Studio、Client、Enterprise Server エンジン

QCJ# | 内容
922961 | インターネットリクエスタを通して、Unicodeデータを送信すると文字化けする問題。
352 | フォームエディタでテーブルコントロールにエディットコントロールを続けて配置すると、2つめのコントロールのタブオーダーが２でなく0になる問題。
235052 | 既存のXMLデータベースが別のテーブルのカラムに定義されたデータソースに設定されているとき、再度XMLデータベースを定義取得すると、異常終了する問題。
2000338 | カラムの名前が2バイトのテーブルをメインテーブルに定義し、さらにMAGIC SQL WHERE の式を設定したプログラムを実行すると、異常終了する問題。
2000343 | エラーコマンドに$...|....を設定して、実行時に強制的にダイアログボックスに表示させると、メッセージダイアログに最初に$が付加される問題。
994634 | 文字型のデータコントロールでリンク項目のサイズ ＞ 表示項目のサイズ（実際に格納されている文字列の長さ）の場合に、項目選択後、確定できない問題 （必ず最初の項目になってしまう）。
2000344 | ボタンのコントロールイベントの前処理が２回実行される問題。
238786 | XMLDBのテーブルで、base64binaryとBase64binaryの違いのため、タイプがbase64BinaryのBLOB項目がエンコードされない場合がある問題。
254322 | XMLデータベースでbase64binaryタイプのBLOBでデータが文字列ではなく、バイナリの場合、エンコードが行われない問題。
766278 | サブフォームのテーブルコントロールのあるオンラインプログラムを実行すると、2文字目以降のインクリメンタルサーチが効かない問題。
2000374 | プリンタテーブルの「名前欄を20バイト文字を設定し、入出力ファイルの「プリンタ」欄にこのプリンタを指定すると、シンタックスチェックで「「プリンタ」テーブルにプリンタが定義されていません」のエラーになる問題。
2000368 | XMLValidate関数の第二引数に260バイト以上の値を設定すると、実行時に異常終了する問題。
2000392 | CSVデータをUnicode型項目に取り込んでから、さらにTrim関数で空白を除いて別のUnicode型項目に更新しても、空白データが残ったまま更新される問題。
 | バージョンコントロールでオフラインモードでのプログラムを作成した場合の問題。
2000369 | グループ前処理の処理を制御するため、LEVEL(0)='GP_項目名'の式を使用しているが、実行時に正しく判定されない問題。
2000367 | データビューで照会リンクを宣言に変更すると、異常終了する問題。
2000157 2000206 | ブラウザクライアントでHTMLコントロールテーブルのコントロール名に5Cを含む２バイト文字を定義した場合、実行時にそのコントロールにカーソルが移動すると、Internal Error が発生する問題。
2000400 | 式エディタにおいて広域表示をしている場合、一度オートコンプリートを行なわないと改行を入力できない問題。
2000398 | テーブルコントロールがある場合、HitZOrderの戻り値がVer8と異なる問題。
2000351 | オブジェクトの公開名に2バイト文字を使用した場合、Magicインタフェースビルダで選択するとエラーが発生する問題。
2000304 | プログラムを開いてサブタスクのみ変更した場合、プログラムリポジトリの最終更新日と時刻が更新されない問題。

V9Plusコンバータ

QCJ# | 内容
2000348 | ブラウザ形式フォームのフォーム特性のウィンドウタイプが、V9でモーダルになっていても、コンバート後にはデフォルトになっている問題。

ゲートウェイ

QCJ# | DBMS | 内容
2000337 | Oracle | 埋込SQLにバインド変数とORDER BY句を一緒に使うと、実行時にORA-0091が発生する問題。
2000001 | Oracle | UNICODE型のカラムにShift-JISにないUNICODE特有文字を正しく処理できない問題。
292496 | Oracle | Oracleのテーブルをメインテーブルとして、セレクト項目の範囲にnull()とワイルドカード(*)を指定して実行すると、ORA-00932が出る問題。
 | Oracle | Oracle G/WのUnicode対応。
2000406 | Oracle | Oacle G/Wを使用して、文字型でCLOBタイプの項目に２バイト文字を入力すると文字化けが起こる問題。


Ver 10.1 SP1a での制限事項

Ver 10.1J SP1a での留意・制限事項

Unicode

V10ではUnicodeをサポートするようになりましたが、現バージョンでUnicodeを利用する際に留意すべき点について、Unicodeを利用する場合の注意事項 にまとめましたので、ご参照ください。

XMLデータベース

XML データベースについての注意事項は、XML データベース利用時の注意事項 にまとめてあるので、参照してください。

開発機能一般

  • クラス0のフォームの編集において、テーブルコントロールにリンクしているコントロールをテーブルの外に移動するとリンクが外れます。
  • プログラムを開いてサブタスクのみ変更して格納しても、プログラムリポジトリの最終更新日と時刻が更新されません。
  • MS-IME2002を使った場合、Magic Studioからプログラムを実行してアクティビティモニターから検索画面で2バイト文字を入力したとき、Enterキーで文字を確定しないと文字が表示されない場合があります。
  • プロジェクトファイルの実体はxmlファイルであり、格納されたデータは暗号化されずに保存されます。従ってアプリケーション特性の権利キーや、権利リポジトリの権利キーも暗号化されずに保存されますので、第3者へのプロジェクトファイルの公開には注意が必要です。また、プログラムの中にセキュリティ上、重要なデータを直接格納している場合には、(1)暗号化ソフトを利用する、(2)データベースに保存する、(3)シークレットテーブルで管理するなどの方法を検討して下さい。
  • デバッグモードでプログラムを実行する場合、あらかじめブレイクポイント、項目、ウォッチ、現在のコンテキスト等のペインを表示させてください。
  • (2000373) Windows2000上でMagic Studioを起動し、データソースリポジトリでデータソース名が空欄、かつXMLデータベース(Default XML Dabaseなど)を指定したデータソースを削除すると、異常終了することがあります．
  • (2000394) 開発版から「バッチプログラムの実行」によって、３つ以上のフレーム出力を行うバッチのWeb出力のプログラムを実行すると、１つのフレームでエラー104が発生することがあります．
  • (2000384) ロジックエディタにおいて重複したヘッダ行を登録すると、「重複した論理ユニットです.定義しなおしてください.」のエラーが出ますが、その際、Tabキーで移動してロジックのタイプを変更して下さい．

実行機能一般

  • プッシュボタンの項目に対する項目変更ハンドラを設定した場合、実行時にボタンを押下してもイベントは起動されません。
  • File2Blb関数で、BLOB項目(タイプがバイナリ)に格納した場合、UTF-8のデータはUnicodeに変換され、UnicodeのデータはBOMを削除されます。
  • HTTPGet関数、またはHTTPPost関数でUTF-8のデータをBLOB型のUnicodeタイプのデータで受け取ると、2バイト文字が正しく取得できません。
  • ユーザ定義関数に2バイト文字を使った関数を定義することはできません。
  • 入出力ファイルのメディアを項目、文字セットをUTF-8にすると、格納したデータが文字化けすることがあります。

アプリケーションサーバ機能

  • MAGIC.INIの[MAGIC_ENV]StartApplicationに必ず開始アプリケーション(キャビネットファイル)を指定してください。 リモートコール等によりアプリケーションを新規に開くことはできません。
  • データ出力コマンドで入出力ファイルの出力先にリクエスタ、入出力特性／文字セットをUnicodeに設定し、そのプログラムを他のクライアントからリモートコールで起動すると、結果ファイルはShift-JISコードで出力されます。

ブラウザクライアント

  • 現バージョンでは、ブラウザクライアント機能はベータ機能です。
  • (2000352) 出力するhtmlのエンコードがV9PlusではShift_JIS であるのに対して、V10ではUTF-8であるため、Webブラウザで表示されたイメージが、若干横方向に広がるように表示されることがあります。
  • (2000346) テンプレートファイルのエンコードはShift_JISのみ対応しています．

バージョン管理

  • 今回のバージョンでは、プロジェクトのバージョン管理ソフトとして、Microsoft Visual SourceSafe (6.0d、あるいは 2005) だけをサポートしています。CVS、PVCSはサポートしておりません。

Oracle

  • (2000411) RAW型のカラムタイプを定義取得するとBLOB型にマッピングされますので、適宜文字型 (記憶型式：String)に変更する必要があります。

Webサービス

プロバイダアプリケーションの注意事項

  • 公開プログラム名、およびパラメータ名には英数字と _ (アンダースコア文字)のみで先頭に数字を使用できません。
  • 異なる公開プログラム間で、同じ名前で違う型のパラメータを設定すると、正しく動作しないことがあります。
  • 入力パラメータがxmlデータの場合、パラメータをBLOB型で定義し、名前はxsdスキーマのルートと同じ名前に設定して下さい。
  • 入出力パラメータがxmlデータの場合、設定されたxsdファイルのエレメントの順序が、Systinetのパッケージを作成した後にアルファベット順に変更されることがあります。これにより、コンシューマに提供するスキーマとあわなくなることがあるため、あらかじめxsdのエレメントの名前をV01_xxx, V02_xxxなどの接頭辞を付加することで回避して下さい。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面のサービスネームスペースにはデフォルトでMAGIC.INIのオーナ名が付加されます。オーナ名にスペースや . (ドット文字)が含まれる場合、デフォルトの値では jar ファイルが作成できませんので適切な値に変更する必要があります。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面の「説明」に日本語の2バイト文字を入力すると、jarファイルが作成できません。
  • WSProviderAttachmentGet関数の引数に2以上の値を設定しても、２つ以上の添付ファイルを受け取ることができません。

コンシューマからWebサービスコールを実行するときの注意事項

  • 設定／サービスで既存のWebサービスのWSDLを再読み込みした場合には、V10を再起動して下さい。さらにそのサービスを設定したWebサービスコールを再度定義しないと正しく実行できないことがあります。
  • プロバイダにXMLデータをBLOB型で渡す場合、Shift_JISのエンコードで渡して下さい。


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

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

  • Pervasive.SQL
  • Memory
  • Oracle
  • MS-SQL Server
  • DB2 UDB
  • Magic V10 for System i
  • ODBC (ベータ版)


Pervasive データベースゲートウェイ追加情報

Pervasive SQL データベースゲートウェイ
Ver10.1 SP2a 追加情報

本文書には、Magic eDeveloper （以下 Magic と表記） Pervasive SQL (以下、P.SQLと表記) データベースゲートウェイとして提供されるプログラム（MGBtrieve.dll）に関する情報が含まれています。文書中に記述されている「本プログラム」とは、MGBtrieve.dll を示します。なお、P.SQL を使用する場合、P.SQL に添付されるドキュメントも参照してください。

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

Pervasive 上で Unicode を扱う場合に注意事項があります。「Unicodeを利用する場合の注意事項」 にまとめてありますので、参照してください。

技術情報

記憶型式と有効キー長

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

型 | 記憶型式 | 有効キー長
文字 | String | 1-255
 | LString | 1-255
 | ZString | 1-255
Unicode | Unicode | 1-127
 | ZUnicode | 1-126
数値 | 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
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | dat

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

Pervasive ゲートウェイでは、以下のパラメータを設定することができます。

場所 | パラメータ | 意味
[DBMS]テーブル[Btrieve]行の[パラメータ]カラム | /EXTENDED=Y、N | P.SQL の Extended オペレーションを使用するか否かを設定します。 Extended オペレーションを使用する場合、セレクトコマンドの範囲／位置付の条 件によるレコード絞込みが P.SQL エンジンにより実行されます。この機能は、ク ライアント／サーバシステムにおいてパフォーマンスを向上させます。 デフォルトでは「Y」となります。
 | /RTRY=n:m | n は最大リトライ回数、m はリトライ間隔（ミリ秒単位）です。レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生 した時にオペレーションをリトライする回数を設定します。 デフォルトではリトライを行いません。
[データベース]テーブルの[データベース情報]特性 | /PAGESIZE=n | 新規に作成するファイルのページサイズを設定します。 n には、512バイトの倍数、かつ4096バイトを超えない数を設定してください。 なお、この値は、P.SQL の仕様に合致したものである必要があります。 デフォルトでは、ファイル定義にしたがって最適なページサイズを計算します。

Pervasive SQL の設定

P.SQL の推奨環境設定

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

カテゴリ | 設定 | 推奨設定値
サーバ／通信バッファサイズ | 通信バッファサイズ | 設定可能な最大値
サーバ／通信バッファサイズ | MKDE 通信バッファサイズ | 設定可能な最大値
サーバ／データインテグリティ | トランザクション一貫性保守 | On

  1. 「起動時間制限」および「オペレーションバンドル制限」の設定を変更する場合は、システム障害時のデータ損失とパフォーマンスとの間でのトレードオフを考慮する必要があります。
  2. この設定を大きくすると、大半の構成ではパフォーマンスの利点が生まれますが、トランザクションを使っていないアプリケーション実行中に停電などのシステム障害が発生すると、失われるデータが多くなります。逆に設定を小さくすると、システムトランザクションが頻繁に起こるようになりますのでディスクアクセスが多くなり、更新の多いアプリケーションではディスクアクセスが処理のボトルネックになることがあります。
  3. 詳細は、Pervasive.SQL V9 SDK の「Programmer's Guide」の「トランザクショナルインタフェースの基礎 > パフォーマンスの向上>システムトランザクション」などを参照して下さい。
  4. この資料は、AG-TECH 社のWebサイト
    http://www.agtech.co.jp/download/manual/pervasive/index.html
    からもダウンロード可能です。

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

  • 中規模以上のシステムでは、P.SQL の Server Edition の使用を強くお勧めします。 この P.SQL（Server Edition）を使用する場合、レコードの選択はサーバで行われ 、範囲で指定されたレコードだけがクライアントに送られるので、検索の性能が向上し、マルチユーザ環境での安定性も向上します。
  • Magic から P.SQL（Server Edition）を使用する場合、[クライアント／アクセス]カテゴリの[リクエスタ]設定を「On」にしてください。
  • P.SQLに対して、下位バージョンのリクエスタからのアクセスはサポートされていませんので、 混在する場合にはリクエスタとサーバのバージョンの組み合わせにご注意ください。

Windows の簡易 LAN について

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

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

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

ロックとトランザクション

推奨環境設定

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

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

※1 遅延トランザクション使用時、ロック制御はロックファイルで行われるため

※2 遅延トランザクション使用時、更新レコードの識別は行われないため

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

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

表中の記号 | 意味
T- | テーブルアクセスに制限があり、テーブルがオープンできません。
T+R- | テーブルアクセスには制限はありませんが、 レコードアクセスに制限があり、レコードロックがかかります。
T+R+ | テーブルアクセスにも、レコードアクセスにも制限がありません。

(1) 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-

(2) 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+ | 注１ | T-
 |  | 書出(W) | T- | T+R+ | T- | T+R+ | T+R- | T-
 |  | なし(N) | T- | T- | T- | T- | T- | T-

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

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

既知の問題と対応方法

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

  • 暗黙のページロックの説明： P.SQL では並行トランザクションをサポートしています。つまり、複数のアプリケーションが同じファイル（Ver6.x 以降のファイル形式）に同時に複数のトランザクションを実行できます。 並行トランザクション中にファイルが変更されると、変更されたレコードを含むページ（レコードが可変長のときには複数ページ）とそれに関連するインデックスのページが、P.SQL により自動的にロックされます。これを暗黙のページロックと言います。 暗黙のページロックによりロックされたページ上にある明示的にロックされていないレコードを更新、削除する場合、ロックとなります。 暗黙のページロックとレコードロックは互いにブロックしません。
  • Magic におけるマルチユーザ制御： レコードロック発生時の Magic の動作はイベントハンドラの[行ロック]イベントおよび[タスク特性]ダイアログの[エラー発生時]欄の設定により決定されます。 レコードの挿入、更新、削除に失敗した時の Magic の動作はイベントハンドラの[挿入／更新／削除に失敗]イベントおよび[タスク特性]ダイアログの[エラー発生時]欄の設定により決定されます。
  • 問題点： [挿入／更新／削除に失敗]イベント発生時に「アボート」する設定となっているタスクでは、レコードの挿入、更新、削除においてレコードロックまたはファイルロックとなった場合、タスクはアボートします。 この動作は、Ver7 以前の dbMAGIC と 標準添付の Btrieve の組み合わせの動作と異なります。
  • 問題の対応： レコードの挿入、更新、削除においてレコードロックまたはファイルロックが発生した場合、そのオペレーションをリトライします。リトライが失敗した場合、イベントハンドラの設定に基づいた動作を行います。リトライ回数およびリトライ間隔を設定するには、[DBMS]テーブル[Btrieve]行の[パラメータ]欄に以下のように設定してください。

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

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

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

暗黙のページロックによるデッドロック

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

  1. ユーザＡとユーザＢが Magic のロックファイル（mglock.dat）を共用します。
  2. ユーザＡがオンラインタスクにより、あるファイルのあるレコードをロックします。 （このタスクの[タスク特性]ダイアログの[ロック方式]特性は「入力時」に設定）
  3. ユーザＢがバッチタスクにより、上記ファイルのあるレコードを更新した後、ユーザＡがロック中のレコードにきたところで、レコードロック解除待ちになります。（このタスクの[タスク特性]ダイアログの[ロック方式]特性は「即時」、[トランザクションモード]特性は「物理」、[トランザクション開始]特性は「タスク前の前」に設定）
  4. ユーザＡがレコードの更新を行います。 ステップ３で、このレコードを含むページに対して暗黙のページロックがかかっているため、ユーザＡの方もレコードロック解除待ちになります。

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

Magicの異常終了によるファイルロック

Magic が異常終了した場合、ファイルがロック状態になる場合があります。 これはP.SQL がまだ動作しているため、P.SQL で管理しているロック情報が残るためです。必要に応じて以下の処理を行ってください。

  • P.SQL に添付の Monitor を使用して異常終了したユーザを削除してください。
  • タスクトレイ上の P.SQL のアイコンを右クリックし、P.SQL を停止してください。

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

注意事項

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

  • 以前のファイルフォーマットで新規ファイルを作成したい場合、[サーバ／ファイル互換性]カテゴリの[作成ファイルのバージョン]設定を使用したいファイルフォーマットに合わせて変更してください。
    注意： Magic においてファイル定義を変更（例えば、項目の定義順の入替え等）した時にも、ファイルフォーマットは設定されているファイルフォーマットに変更されます。
  • ファイルフォーマットは、以下の理由から 7.x 以上にすることをお勧めします。
    • Unicode 型項目を扱うためには、ファイルフォーマットを 7.x 以上にする必要があります。
    • Btrieve 5 で作成されたファイルと Btrieve 6 以降で作成された 5.x フォーマットには差異があります。
    • パフォーマンスの面で有利になります。
    • 6.x 以前のフォーマットのファイルは BLOB 型項目を扱えません。 これは P.SQL の仕様制限によるものです。
    • 6.x 以前のフォーマットのファイルに対する並行トランザクションは排他トランザクションとして扱われるため、ファイル全体がロックされます。 これは P.SQL の仕様制限によるものです。
    • 6.x 以前のフォーマットのファイルに対する Extended 命令は発行されません。
  • Pervasive PSQL v9では、古い5.x 形式のファイルは、読込のみサポートしており更新はサポートしていません。このため、Magicから更新しようとすると「エラー#46 ファイルマネージャの異常です」というエラーが出ます。この場合にはデータファイルを6形式以降にリビルドしてください。

ファイル名について

  • 長いファイル名を使用できます。ただし、ファイル名の最大長に関しては P.SQL が動作しているオペレーティングシステムの仕様の制限、Pervasive ゲートウェイが 動作しているオペレーティングシステムの仕様の制限、および P.SQL がサポートしている仕様の制限を受けます。 ファイル名の最大長の詳細については、各々の製品に添付されているマニュアルおよび注意事項を参照してください。
  • ファイル名に空白文字を使用する場合、クライアント側のマシンの[クライアント／アクセス]カテゴリの[スペースを含むファイル／ディレクトリ名]設定を「On」にしてください。 この設定が「Off」の場合、空白文字の１つ手前の文字までをファイル名とします。 これは P.SQL の仕様制限によるものです。

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

現時点で注意が必要と思われる内容を以下に示します。

  • 7.x 以降のフォーマットを使用する場合、ページあたりレコード数が256に制限されます。［データベース］テーブルの［データベース情報］特性に「/PAGESIZE=####」を設定し、より適切なページサイズとなるように設定することをお勧めします。ページサイズは、512の倍数、かつ、4096を超えない値を設定してください。 ただし、ファイルが分割された場合、Magic の持つファイル管理関数、入出力機能関数およびファイル変換ユーティリティなどは、分割されたファイルの一つにしか有効にならず、処理が正常に終了しない場合がありますのでご注意ください。
  • P.SQL のオンラインマニュアルに”ファイルに対してキーを定義していない場合でも、トランザクションの一貫性保守機能を有効にすると自動的にキーが追加されます”と書かれています。そのため、ファイルには明示的にユニークキーを設定することをお勧めします。
  • Magic では ACS（オルタネートコレーティングシーケンス）及び ISR（インターナショナルソート規約）はサポートしていません。これらの機能を使用するとファイルの内容が予期した通りに表示されない可能性があります。
  • ステータスコードの変更点については P.SQL に添付されるオンラインマニュアル（Status Codes and Message）を参照してください。P.SQL 7 以降に追加されたステータスコードが返された場合、ファイルマネージャの異常としてダイアログに表示されます。

Pervasive.SQL のキャッシュエンジンの使用について

リモートPCで実行されているPervasive SQLを使用して、遅延トランザクションのタスクを実行した場合に、他のクライアントによるデータ更新の直後に同じデータを読み込んだ場合、更新前のデータが取得されることがあります。これにより、運用上支障が出る場合は、Pervasive Control Centerで以下の設定を行ってください。

ローカルクライアント → Microkernel ルータ → パフォーマンスチューニング → キャッシュエンジンの使用をOff

この件に関しては、株式会社　エージーテック　パーベイシブ・ソフトウエア ディヴィジョンによる技術情報の FAQページ (http://www.agtech.co.jp/support/faq/pervasive/v8/)に、「データの更新がされても、他のクライアントですぐにそれが反映されないことがある。」というタイトルで技術情報があります。

DDF

  • DDF作成するデータソースの[名前]カラムおよびカラムの[名前]カラムを空白にしないで下さい。空白にした場合、Pervasive.SQLのODBCドライバにおいて正しく認識されない場合があります。(1000222)
  • Pervasive.SQL（Btrieve）使用時に、カラムテーブルで日付型項目を新規に定義すると、記憶型式がStringDateになります。Pervasive/Btrieveのデータベースで今までのバージョンと互換性を持たせる場合は、IntegerDateに変更する必要があります。(1000098)

その他

  • P.SQL ではトランザクショナルアクセス及びリレーショナルアクセスがサポートされていますが、本ゲートウェイではトランザクショナルアクセスのみを使用していますので、リレーショナルアクセスは使用できません。アクセス方法等の詳細については P.SQL に添付されるオンラインマニュアル（Getting Started with Pervasive.SQL）を参照してください。
  • 可変レコード長と固定レコード長との合計サイズは 32767 バイトまでです。これは Magic の仕様制限によるものです。
  • １個のファイルにつき、BLOB 型項目を１項目のみ定義することができます。また、BLOB 型項目は１個のファイルに同時に定義できません。
  • P.SQL を使用する場合、トランザクションの範囲外ですべてのファイルをオープンしてください。
  • レコードレベルのトランザクション機能を使用する場合、[トランザクション開始]特性を「レコードロック時」としてください。これは P.SQL ではトランザクション開始前に読込んだレコードに対して更新および削除ができず、トランザクション終了時にレコードロックを解除するためです。
  • [トランザクション開始]特性を「レコード前の前」とした場合、トランザクション開始前にレコードが読込まれる場合があります。
  • レコードを確定する場合、処理対象となるレコードの前または後のレコードを一時的に取得することがあります。そのため、それらのレコードに既にロックがかけられている場合、レコードロックが発生することがあります。
  • 親子タスクにおいて同一のテーブルを使用した場合、子タスクでレコード登録に失敗すると、親タスクのレコードに対するロック情報が残る場合があります。
  • 存在するファイルに対してテーブル特性のアクセスキーおよび暗号化キーを変更することはできません。ただし、新規に設定する事は可能ですので、変更する場合、一度これらの設定を解除してから再設定してください。
  • [データベース特性]ダイアログの[照合順序ファイル]特性は無効となります。


Memory データベースゲートウェイ追加情報

Memory データベースゲートウェイ
Ver10.1 SP2a 追加情報

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

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

制限事項及び留意事項

使用目的

  • Memory ゲートウェイ は、データをメモリ上に格納しながらオペレーションを実行します。用途としては、常駐テーブルを使用する時に標準的に使用されることがあげられます。その他の用途として、ソートファイルおよびワークファイルとして使用することがあげられます。
  • Memory ゲートウェイにより作成されるファイルは Magic 終了時には削除される一時ファイルですので、セッションを越えて保存が必要なデータに対しては使用できません。
  • メモリゲートウェイのデータを保存するには、メモリテーブル用の関数(MTblSet, MTblGetなど)を利用し、BLOB データとしてファイルなどに保存・復旧することができます。

起動方法

  • 常駐テーブルを使用する場合、動作環境の［常駐テーブル読込］欄を「Yes」に設定します。その上でデータ特性の「常駐」欄を設定します。 注意：全てのテーブルが常駐できるわけではありません。カラム及びインデックスの制限は元になるデータベースではなく、Memory テーブルの制限に依存するためです。
  • 動作環境の［ソート／一時用データベース］欄に Memory テーブルを使用する場合、ソートファイルや一時ファイルは、一時ファイル名で作成されます。ソートファイルや一時ファイルが置かれる位置は、［一時ファイルパス］欄の設定に依存しません。
  • データテーブルを Memory テーブルファイルとして宣言するには、データリポジトリの［データベース］欄を Memory テーブルベースのデータベースに設定します。
  • ［データ］リポジトリの［データソース名］カラムを設定した場合、Magic が設定するデフォルトの Memory テーブルの DB テーブル名を変更することができます。
  • Memory テーブルファイルにカラムを作成する場合、各カラムに適する記憶型式が使用されます。記憶型式を変更したいときは、［データ］リポジトリの各カラムで［カラム特性］ダイアログを表示し、［記憶型式］特性に希望する記憶型式を設定します。

その他

  • (V10での変更) Memoryテーブルの定義内容を変更すると「メモリテーブルは、変更内容を反映するためドロップされます」というダイアログが表示され、データが削除されます。

技術仕様

記憶型式と有効キー長

これらのカラムの［データベース定義］特性は「N=標準」に設定されます。

型 | 記憶型式 | 有効キー長
文字 | String | 制限なし
 | LString | 1-255
 | ZString | 制限なし
Unicode | Unicode | 制限なし
 | ZUnicode | 制限なし
数値 | 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
BLOB項目数 | 1
双方向インデックスのサポート | 有
デフォルト識別子 | mem


Oracle データベースゲートウェイ追加情報

Oracle データベースゲートウェイ
Ver10.1 SP2a 追加情報

本文書には､Magic eDeveloper （以下 Magic と表記）Oracle データベースゲートウェイ Ver 10.1 SP2a として提供されたプログラム（mgoracle.dll）に関して、マニュアルの記載事項以外の追加情報が記述されています。なお、文書中に記述されている「本プログラム」とは、mgoracle.dll を示します。

Oracle 上で Unicode を扱う場合に注意事項があります。「Unicodeを利用する場合の注意事項」 にまとめてありますので、参照してください。

注意事項

MAGIC SQL パラメータの式

  • MAGIC SQL パラメータの式では、以下の関数をサポートしておりません。(1000225)

    • DVAL
    • TVAL
    • ADDTIME

その他

  • Oracleは、P.SQL等の ISAM 系のファイルマネージャと、排他制御、トランザクション等に関する仕様が異なるため、P.SQL等の ISAM 系のファイルマネージャを使用する場合と Oracle 等の SQL RDBMSを使用する場合では、プログラムの作成方法が異なる部分があります。

  • ストアドプロシジャのINパラメータにスペースを渡す場合は、1バイトの文字型変数項目をセットしてください。

ロックとトランザクション

物理トランザクションモードで Oracle のロック機構のみを使用するときの注意事項

物理トランザクションモードのプログラムにおいて、Magicのロックファイル(mglock.dat)を非共用にし Oracleの並行処理制御機能のみを使用する場合、テーブルのアクセス規制はOracleの排他制御のみに依存します。

注意すべき点は、共有モードがR(=読込)の時に、MagicはOracleのSHAREモードのロックをかけますが、このモードでは、MagicのRモードと異なり、他の端末から処理(W=書出)モードでのアクセス（ファイルのオープン）を許可することです。 その際、後の端末がレコードへの書き出しを行い、レコードロックをかけようとする時に、先に共有Rモード、すなわちSHAREモードでロックをかけた端末が終了しない限り、後の端末は待ちの状態が発生します。また下表の特定の場合によっては、先のSHAREモードの端末側でデッドロックが発生することがあります。

以下にアクセス規制を挙げます。 なお、下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合のアクセス規制を示しています。 この表中、次の記号を使っています。

記号 | 意味
T- | テーブルアクセスに制限があります（テーブルがオープンできません）。
R- | レコードアクセスに制限があります（レコードロックがかかります）。

(1) タスクレベルのトランザクションの場合

 | 処理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:デッドロック」のエラーが発生するか、フリーズすることがあります。

(2) レコードレベルでのトランザクションの場合

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

  • 注1:処理Aで行移動したときに書き込みが行われます。

物理トランザクションモードでのDBテーブル/共有パラメータと Oracleに発行されるSQL文の関係

共有モードW | （ロックコマンドは発行されません）
共有モードR | lock table ... in share mode
共有モードN | lock table ... in exclusive mode
入力時（即時）ロック | select ... for update

物理トランザクションモードで推奨する環境設定

(1) 他のアプリケーションとのデータベースの共有を行う場合

データソースの[データベース特性] ／[MAGICロック] | 「テーブル｣
プログラムの[ロック方式] | オンラインタスクは｢入力時｣ バッチタスクは｢即時｣
ロックパス | 環境ごとに違うロケーション

(2) Magicでのみデータベースを操作し、従来のアクセス規制をなるだけ引き継ぎたい場合

データソースの[データベース特性] ／[MAGICロック] | ｢両方｣
プログラムの[ロック方式] | オンラインタスクは｢入力時｣ バッチタスクは｢即時｣
ロックパス | 全てのMagicで同じロケーション

データベース情報での有効なパラメータ一覧

Oracle ゲートウェイが認識するパラメータには以下のようなものがあります。

指定場所 | パラメータと有効な値 | 意味
[設定]／[データベース] | SQL_DATETOALPHA =Y,N | Oracle の DATE 型のカラムを定義取得する場合、SQL_DATETOALPHA =Y を設定することで、長さ 19 文字で YYYY-MM-DD HH:MM:SS フォーマットの Magic 文字型（ZString） に自動的にコンバートします
データ特性 | CLUSTER=cluster-name | 表がクラスタの一部となるように指定します。なお、クラスタ名の後に(列名)を入れないと「新規登録できません」のエラーになります。 例．CLUSTER="TMP_USR(TMP_ID)" INITRANS=n 表に割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。
 | MAXTRANS=n | 表に割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。
 | PCTFREE=n | 表の行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。
 | PCTUSED=n | 表の各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。
 | STORAGE="strage-clause" | 表に対する記憶特性を指定します。
 | TABLESPACE="tablespace-name" | Oracleがテーブルを作る表領域を示します。
インデックス特性 |  |
 | INITRANS=n | インデックスに割り当てられた各データ・ブロック内で割り当てられるトランザクション・エントリの初期値を指定します。
 | MAXTRANS=n | インデックスに割り当てられたデータ・ブロックを同時に更新することができるトランザクションの最大値を指定します。
 | PCTFREE=n | インデックスの行に対する次回の更新に備えて、予約(確保)されている各表のデータ・ブロック中の領域の占有率を指定します。
 | PCTUSED=n | インデックスの各データ・ブロックに対してOracleがメンテナンスしている使用中の領域の最小限の占有率を指定します。
 | STORAGE="strage-clause" | インデックスに対する記憶特性を指定します。
 | TABLESPACE="tablespace-name" | Oracleがインデックスを作る表領域を示します。

  • データ特性、インデックス特性に指定するパラメータは、CREATE TABLE あるいは CREATE INDEX 文にそのまま反映されます。各パラメータの意味については、Oracle のマニュアルを参照してください。


MS-SQL Server データベースゲートウェイ追加情報

MS-SQL Server データベースゲートウェイ
Ver 10.1 SP2a 追加情報

本文書には、Magic eDeveloper（以下 Magic と表記）MS-SQL Server データベースゲートウェイ Ver 10.1 SP2a として提供されるプログラム (mgmssql.dll) に関する情報が含まれています。なお、文書中に記述されている「本プログラム」とは、mgmssql.dll を示します。

MS-SQL Server 上で Unicode を扱う場合に注意事項があります。「Unicodeを利用する場合の注意事項」 にまとめてありますので、参照してください。

留意事項

一時テーブルのサポート

tempdbに作成される一時テーブル（ローカル／グローバル）をサポートしています。 一時テーブルを作成するには、[データ］リポジトリ]の[データソース名]カラムで以下のように設定してください。

#table_name （ローカル一時テーブルの場合)
##table_name（グローバル一時テーブルの場合)

例えば、「社員テーブル」を、ローカル一時テーブルとして作成するには、 「#社員テーブル」、グローバル一時テーブルとして作成するには、 「##社員テーブル」とします。

ローカル一時テーブルを作成する場合には、［インデックス］テーブルの［プライマリキー］カラムをチェックしないでください。通常の重複不可のキーは大丈夫です。 これは、プライマリキーはDBMS上で制約条件として定義され、制約条件の名前はグローバルに一意でなければならないためで、プライマリキーをオンにすると、マルチユーザ環境で、「データベースにオブジェクト名'(キー名)'が既に存在します」というエラーが出ます。

データ型

  • 現在、以下に挙げるデータタイプはサポートされておりません。

    • Cursor型
    • uniqueidentifier型

  • 論理型の項目をキーセグメントに含めると、構文チェックによって「項目番号が無効です」というエラーが出ます。これは、論理型項目はデフォルトでBIT型となりますが、MS-SQL Serverの仕様上、BIT データをインデックスに入れることができないためです。論理型データ項目をキーに入れる場合には、格納形式を「String Logical」にするか、あるいは「Integer Logical」で「サイズ」を2にしてください。

  • money 型では最大19桁(書式15.4)の数値まで扱えますが、Magicで 19桁の数値を扱う場合には、MAGIC.INIの[MAGIC_SPECIALS]に以下のパラメータを設定する必要があります。 この設定がない場合には、Magicは最大18桁までしか使えません。

[MAGIC_SPECIALS]
XXLNumericSize = Y

MAGIC SQL パラメータの式

MAGIC SQL パラメータの式では、以下の関数をサポートしています。

  • TIME
  • HOUR
  • MINUTE
  • SECOND
  • DSTR
  • DVAL
  • TSTR
  • TVAL
  • ADDDATE

その他

  • 数字で始まるテーブル名を扱う場合は、データソース名を[ ]で囲んで指定してください。
  • 外部結合リンクは、左外部結合を使用しています。
  • プライマリキーでデータの重複エラーが発生した場合、MSSQLから返されるエラーコードは、ユニークインデックスで重複エラーが発生した場合と異なります。この場合、エラーハンドラのイベントは「制約違反」で捕捉されます。
  • 親タスクのトランザクションモードをタスクトランザクションに設定し、子タスクでオープンするテーブルが読込モードに設定した場合、実行時に子タスクのテーブルが新規作成が行われると、それ以降は処理が続行できなくなることがあります。(1000430)


DB2 UDB データベースゲートウェイ追加情報

DB2 UDB データベースゲートウェイ
Ver10.1 SP2a 追加情報

本文書には､Magic eDeveloper（以下 Magic と表記）DB2 UDB データベースゲートウェイ Ver 10.1 SP2a として提供されたプログラム（mgdb2.dll）に関して、マニュアルの記載事項以外の追加情報が記述されています。なお、文書中に記述されている「本プログラム」とは、mgdb2.dllを示します。

制限事項及び留意事項

DB2/UDB 上で Unicode を扱う場合に注意事項があります。「Unicodeを利用する場合の注意事項」 にまとめてありますので、参照してください。

一般的な注意事項

  • Magicの［データ］リポジトリでは、テーブルや索引を定義する際に、表スペースを指定することはできません。表スペースを指定する必要がある場合、DB2 UDBのCLP等で定義した後、Magicで定義取得して運用してください。
  • 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のロック機構のみを使用するときの注意事項

  • DB2UDBのDBMSに対してレコードロックに関する制御は行いません。従って、データベース特性／Magicロックを「R=ﾚｺｰﾄﾞ」または「B=両方」に設定し、共有フォルダでMGLOCKファイルを共有しないと、レコードロックは正しく機能しません。
  • 上記以外の場合、またはMagic以外のアプリケーションとDB2UDBのデータベースを共有する場合、トランザクション処理によって排他が発生すると、解除されるまでDB2UDBの中で待ち状態が発生するため、メッセージも出ずに黙りの状態が発生することがあります。
    この場合、データベースのLOCKTIMEOUTパラメータを-1以外の適切な値を設定することで、アプリケーションに制御が戻されるため、エラーメッセージやハンドラ処理を行うことが可能になります

  • Magicにおけるテーブルアクセス規制は以下のようになります。下表は、処理A から先にアクセスされたテーブルに対して、処理Bが後からアクセスした場合のアクセス規制を示しています。 表中、「T-」はテーブルアクセスに制限があり、テーブルがオープンできないことを意味します。

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

    • 注1： 処理Ａが、レコードレベルのトランザクションで、データベースのLOCKTIMEOUTが0以外の場合、処理Aでレコードを移動すると処理Bがロックを取得します。
    • 注2： 分離レベルが1以上に設定されている場合、T-となります。
    • 注3： 分離レベルが2以上に設定されており、かつトランザクションがタスクレベルの場合、T-となります。

データベース情報での有効なパラメータ一覧

[設定]／[データベース]／[データベース特性]

  • SQL_ISOLATION_LEVEL=UR | CS | RS | RR
    分離レベルを設定します。現在使用されている分離レベルを変更するには、DBDISCNT関数を使って、セッションを切断する必要があります。分離レベルの設定は、まず、ここでの設定値が検索され、次に[設定]／[DBMS]／[DBMS特性]での値が検索されます。有効な値が見つからない場合、DB2 UDBのデフォルトであるCSが設定されます。

DB2/UDBゲートウェイでのストアードプロシージャの利用と制限

ここでは、本パッチモジュールを使っての、DB2/UDB のストアードプロシージャの利用方法と制限事項について説明します。

埋め込みSQL文の形式

呼出形式

MagicのSQLタスクでは、［SQLコマンド］ダイアログ中で、以下の形式で、ストアドプロシージャを呼び出します。

CALL proc_name (パラメータ1,…)

パラメータのないストアードプロシージャを呼び出す場合には、プロシージャ名のみを指定する形式でも呼び出すことができます。

CALL proc_name

パラメータの記述法

パラメータは、以下の方法で記述します。

  • 変数： SQLコマンドのパラメータには、コロン文字 「:」に続けて、パラメータ番号を記述します。

例： CALL PROC_ONEPARM(:1)

この場合には、対応するMagicの項目を［入力パラメータ］テーブルに定義しておきます。

  • 定数： SQLコマンドの中に、直接定数で指定します。

例： CALL MI_PROC_EMP('000010')

  • 文字型、Unicode型は引用符 ' で囲みます。 例 'abc'
  • 数値型はそのまま書きます。例 12345、-3.4E+38
  • 日付型は、'YYYY-MM-DD' の形式で指定します。 例 '2005-02-11'

注意：

  • 時刻型は、'HH:MM:SS' の形式で指定します（例 '11:12:30'）が、SQLコマンドの中に定数として書くと、コロン「:」文字がパラメータとして解釈されてしまい、エラーとなります。従って、時刻型のパラメータは、変数によって与えるようにしてください。
  • 埋め込みSQL文中のパラメータに、関数や式等を埋め込むことはサポートしていません。

不可な例： CALL MI_PROC_ONEPARM (CHAR(CURRENT DATE))

パラメータの種類

方向

  • パラメータは、IN パラメータのみサポートしています。

例：
CREATE PROCEDURE MI_PROC_ONEPARM (IN A VARCHAR(10))
LANGUAGE SQL
BEGIN
INSERT INTO MI_PROC_TAB1 (MEMO) VALUES (A);
END

  • INOUT および OUT パラメータはサポートしていません。

不可な例：
CREATE PROCEDURE MI_PROC_ONEOUTPARM (OUT A VARCHAR(5))
LANGUAGE SQL
BEGIN
SET A = 'データ';
END

パラメータのデータ型

  • 単純データ型のみサポートしています (文字型、数値型、論理型、日付型、時刻型、メモ型)。
  • 論理型データは、数値の 1 (真) あるいは 0 (偽) として、ストアドプロシージャに渡されます。
  • Magic の BLOB型, ベクトル型などには対応していません。

パラメータの限界値

  • パラメータ数は最大30個までです。
  • 各パラメータの長さ (文字列として展開したときの長さ)の最大長は 255 バイトです。

RESULT SET

  • RESULT SET のあるプロシージャもサポートされています。

例：
CREATE PROCEDURE MI_PROC_EMP1 (IN E CHARACTER(6))
RESULT SETS 1
LANGUAGE SQL
BEGIN
DECLARE C1 CURSOR WITH RETURN
FOR SELECT FIRSTNME FROM EMPLOYEE WHERE EMPNO = E;
OPEN C1;
END

  • RESULT SET のあるストアードプロシージャに対し、SQL APG はサポートされていません。このため、出力パラメータは手で設定する必要があります。


ODBC データベースゲートウェイ追加情報

ODBC データベースゲートウェイ
Ver10.1 SP2a 追加情報

本文書には、Magic eDeveloper （以下 Magic と表記）ODBC (Open DataBase Connectivity) データベースゲートウェイ Ver 10.1 SP2a として提供されるプログラム(mgodbc.dll)に関する情報が含まれています。なお、文書中に記述されている「本プログラム」とは、mgodbc.dll を示します。

本プログラムは ベータ版です。

本プログラムは、ODBCを介しての試験的・一時的なDBMSへのアクセスの目的のために公開されるモジュールです。以下の点にご注意の上、ご利用ください。

  • 本プログラムは、品質管理プロセスを十分に経たものではないため、本番の環境では使用せず、必ず、実際の業務の運営上影響の出ることのない試験環境 などでご利用ください。

  • 本プログラムは、マジックソフトウェアジャパンのサポートセンターでのサポート対象外ですが、 本プログラムについてのご意見、ご質問、気が付いた点などは、「ベータ評価レポート」に記入して、メールで japan_v10beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。 お送りいただいたメールはすべて良く検討し、製品改善のための参考にさせていただきますが、お問い合わせの内容に対し個別にはお答えできない場合もありますので、予めご了承願います。

設定方法

  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. データソース、カラム、インデックスの定義方法等に関する詳細は、リファレンスヘルプを参照してください。

仕様および制限事項

  • 接続するODBCドライバの制限事項等により、Magic、およびODBC データベースゲートウェイが提供する機能をすべて利用できないことがあります。
  • Oracle、MS-SQL、DB2/UDB のデータベースを利用する場合、それぞれ固有の データベースゲートウェイを使用することを推奨します。
  • MS-ACCESSのデータベースを利用する場合、すべてのカラム特性の［NULL値可］特性を「Yes」に設定する必要があります。
  • ODBCドライバは論理ロックを使用するため、DBMSに対してロックを発行しません。複数台のマシンで実行する場合は、Magic のロックを使用してください。
  • データベース特性、データ特性、インデックス特性にある［ヒント］特性は有効にはなりません。


Magic eDeveloper V10 for System i 追加情報

Magic eDeveloper V10 for System i
Ver10.1 SP2a 追加情報

本文書では､ 弊社 Magic eDeveloper V10 for System i バージョン Ver10.1 SP2a (以下、Magic for System i) に関して、マニュアルの記載事項以外の追加情報が記述されています。

動作環境

本 Magic for System i は、Magic Studio V10 / Magic Client V10 / Magic EnterpriseServer V10の各製品のとともに使うことができます。

以下の環境で動作確認を行っています。 その他の環境については、下記のものと互換性のある場合のみ使用可能です。

ホストOSバージョン | OS400 V5R3
クライアントOS バージョン | Magic eDevelper V10 (Windows版）の動作する環境
Magicバージョン | Ver 10.1J SP2a PT1

また、動作環境に関する最新の情報は、弊社HPでも公開しております。
http://www.magicsoftware.co.jp/products/mgenv/dbms10.htmlをを参照してください。

Magic eDeveloper パッチモジュールの適用

Magic for System i は、Magic eDeveloper Ver10.1J SP2a PT1パッチモジュールとともにお使いいだだくようお願いいたします。
このパッチモジュールは、Magic for System i の製品CD-ROMの\Patch_101SP2aPT1以下に同梱されています。
インストール方法は、このフォルダ内にあるReadmeファイルを参照してください。

旧バージョンからの主な変更点

ホストライブラリ

従来のホストライブラリは、EASYCOMDジョブ（デーモン）がQSYSWRK上で動作していましたが、V10からはMAGICサブシステム上で動作するように変更になりました。
また、EASYCOMDが使用するポート番号を指定することができるようになりましたので、異なるバージョンのホストライブラリを同一の System i上で動作させることが容易になりました。

詳細は「Magic eDeveloper V10 for System i インストールガイド」(Inst10_Systemi.pdf)に情報がありますので参照してください。

新しいコードページの追加

MAGIC/400, およびMagic V9Plus for iSeries では、NEC選定文字に対して外字領域のコードに割り当てていましたが、本製品ではCCSID1399に割り当てた新しいコードページを追加しました。

テーブル名 | コードページ | 備考
IBM-5026 | 5026 | 日本語英数カナ, IBM-930/IBM-990互換
IBM-5035 | 5035 | 日本語英数小文字拡張, IBM-939/IBM-999互換

旧バージョンのCCSID テーブル名(IBM-930, IBM-939, IBM-990, IBM-999 ) はV10 において使用可能ですが、将来サポートされない可能性があります。
詳細は「Magic eDeveloper V10 for System i 開発ガイド」(Guide10_Systemi.pdf)に情報がありますので参照してください。

制限事項および留意事項

Unicodeに関する制限事項

Magic System i GatewayによるUnicode型項目の制御に関して、いくつかの制限事項があります。
詳細は、「Magic eDeveloper V10 for System i 開発者ガイド」第4章をを参照してください。

ISAMゲートウェイ

  • System iの日付タイプのカラムが定義されたファイルを定義取得すると、「SQLのDate-TimeのカラムをMagicの日付と時刻の項目の組み合わせに変換 しますか？」のダイアログが表示されますが、常に「No」を選択して下さい。「Yes」を選択して時刻型のカラムが、データリポジトリに定義されても、 データベースに反映されません。
  • データ特性／SQLタブ／SQLデータベース情報にてCACHEパラメータを指定し、メインソースに指定したファイルと同じファイルをデータリンクした場合、正しくデ ータリンクできないことがあります。その場合は、同一ファイルでデータリンクを 行うファイルのみをCACHEパラメータを指定しないようにしてください。
  • ISAMファイルのデータベース特性に*RNGSVR=Yを指定した場合、親子タスクの両方で、同じファイルをメインソースに指定し、かつカラム定義で範囲指定を行ったプログラムを実行すると、子タスクでファイルのオープンに失敗します。

SQLゲートウェイ

  • メインソースの特性／共有パラメータをN=なしに設定したプログラムを実行すると、そのプログラムが終了しても、テーブルに対する排他ロック、または共有 ロックは解除されません。これは、SQLゲートウェイではコミット処理に関して、すべてのカーソルがクローズするCOMMITコマンドでなく、 COMMIT HOLDコマンドを実行していることによるものです。ロックを解除すると同時にカーソルをクローズしても構わない場合、適宜SQLコマンドでCOMMIT を実行してください。
  • バッチタスクでトランザクションレベルがレコードの場合、BLOB項目のあるテーブルをバッチ処理すると、エラーが発生します。BLOB項目のあるデータソースをバッチ処理する場合には、トランザクションレベルの開始を「タスク前の前」に設定してください。

利用条件

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

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

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


参考技術情報

ここでは、Magic V10 についての参考技術情報を紹介します。

  • XML データベース を利用時の注意事項
  • Unicodeを利用する場合の注意事項
  • 文字型書式「位置指示記号」の拡張
  • マルチスレッドサーバ利用時の注意事項
  • Windows Vistaでの制限事項


XML データベース利用時の注意事項

XML データベース利用時には、以下の点に留意してください。

  • XMLファイル、および定義取得で読み込むスキーマファイルのデフォルトの文字コードはUTF-8です。
  • ［レコード書込］イベント、［ビュー再表示］イベントは、フラットビューに設定されたデータベースの一時テーブルへの書込です。物理的なXMLファイルへの書込はタスクの終了時に行われます。
  • サーバでファイルを共有する場合、複数のクライアントで同時に同じファイルに対して書込を行うことはできません。
  • トランザクション処理はサポートされていません。Rollback関数は無効です。
  • BLOB型項目(HexBinaryまたは、Base64binary) は、現在のバージョンではサポートしていません。
  • XMLデータベースに対するAPGは照会のみになります。
  • 定義取得時、単純型要素および複合型要素（element）に対する出現回数が2以上に指定されている場合、複数のレコードを登録できるようにするためにデータソースを追加作成しますが、モデルグループ（sequence、choice）に対して出現回数が指定されていてもデータソースは追加作成されません。
  • 定義取得時、カラム特性に反映される制約ファセットは、maxLengthのみとなります。
  • 定義取得時、匿名データ型による宣言（element内に直接に型を定義）を行っている場合、型を正しく取得できないことがあります。
  • 混合内容（mixed="true"）として定義されている要素に文字データが含まれている場合、XMLファイルに更新を加えると &#xD;&#xA; が追加されます。
  • 定義取得時に作成されるテンプレートプログラムは、パラメータとして受け取るBLOB項目に対して操作を行ないます。そのため、実際のXMLファイルに対して作成および検索を行う場合、XMLファイルの読込み（File2Blb）および書込み（Blb2File）を行う親プログラムが必要になります。
  • ［データ］リポジトリに制限により、XML Schemaに定義されている要素および属性の名前にはUnicode特有文字は使用できません。また、要素および属性の名前の長さは30バイトまでに制限されます。


Unicodeを利用する場合の注意事項

はじめに

この文書はMagic eDeveloper V10 からサポートされたUnicodeを利用する際の補足事項をまとめたものです。

プロジェクト開発

Unicode文字を設定できる箇所

開発するプロジェクトの中で設定するデータは、アプリケーション実行時に表示あるいは出力するデータ項目について、Unicode特有の文字を登録することができます。開発者のみ参照できるデータ項目については、Shift-JISコードに含まれる文字のみ登録可能です。

Unicode特有の文字を設定できる箇所 Unicode特有の文字を設定できない箇所
  • フォーム名
  • 定義式の文字データ
  • テキストコントロールの文字データ
  • ユーザメニュー名
  • ヘルプ項目のテキスト
  • モデル、データソース、プログラム等の各リポジトリ名
  • データソースの項目名
  • インデックス名
  • 外部キー名
  • 変数名、パラメータ名
  • ユーザイベント名
  • フォーム内のコントロール名
  • その他、左記以外の箇所

実行エンジンの動作

データの照合順序

Shift-JISとUnicodeは、格納される文字コードが異なりますので、それぞれをキー項目としたデータの処理順序が異なることにより、プログラムの範囲抽出処理やバッチのグループ処理に影響がでる可能性があります。
また、SQLデータベースを利用する場合は、そのデータベースマネージャ固有の機能や設定による影響があります。

文字コードを比較した場合の文字種類別の順序は次の通りです。

Shift-JIS（文字型項目)のコード順序 | Unicode(Unicode型)のコード順序
1.半角数字 2.半角英 3.半角カナ 4.全角数字 5.全角英 6.ひらがな 7.カタカナ 8.漢字 | 1.半角数字 2.半角英 3.ひらがな 4.カタカナ 5.漢字 6.全角数字 7.全角英 8.半角カナ

漢字については、個々の漢字のコード順序が異なります。 例えば、「亜」と「一」ではShift-JISとUnicodeで、次のようにコードの順序が異なります。

 | 亜 | 一 | 結果
Shift-JIS | 0x889F | 0x88EA | 亜が一より先
Unicode | U+4E9C | U+4E00 | 一が亜より先

関数

文字型項目をパラメータに持つ関数に対して、文字型項目とUnicode型項目を設定した場合の戻り値は次のようなルールがあります。

  • 文字型/Unicode型のパラメータ数を数える。(それぞれを m, n とする) ※ 文字定数の場合は、文字型/Unicode型共に+1する
  • m≠n ならば、多い方のアルゴリズムを採用
  • m=n であり、戻り値が文字型かUnicode型ならば、戻り値にあわせる。
  • m=n かつ戻り値が文字型/Unicode型以外ならば、デフォルトとして文字型とする。
  • 文字型の場合、全角文字は1文字を2でカウントしますが、Unicode型の場合、全角文字を1文字を1でカウントします。

例1. Len関数

文字列の長さを数える関数
書式：　戻り値 = Len(文字パラメータ)

  • 項目Aが文字型項目で'あ'を格納した場合、Len(RTrim(A))の戻り値は2です。
  • 項目BがUnicode型項目で'あ'を格納した場合、Len(RTrim(B))の戻り値は1です。

例2. MID関数

文字列の中から、指定された位置とサイズにあった、文字列を取得する関数
書式：　文字の戻り値 = MID(文字パラメータ, 開始位置, 文字数)

# | パラメータの型 | 戻り値の型 | 戻り値の結果
1 | 文字型 | 文字型 | バイト単位に取得
2 | 文字型 | Unicode型 | バイト単位に取得
3 | Unicode型 | 文字型 | 文字単位に取得
4 | Unicode型 | Unicode型 | 文字単位に取得
5 | 値(*1) | 文字型 | バイト単位に取得
6 | 値(*1) | Unicode型 | 文字単位に取得

*1 式に直接、'あいうえお'などの文字列を指定する場合

例3. REP関数

文字列中の位置と文字数を指定し、その部分を別の文字列に置き換える関数
書式：　文字の戻り値 = REP(文字パラメータ1, 文字パラメータ2, 位置, 文字数)

# | パラメータ1の型 | パラメータ2の型 | 戻り値の型 | 戻り値の結果
1 | 文字型 | 文字型 | 文字型 | バイト単位に取得
2 | 文字型 | 文字型 | Unicode型 | バイト単位に取得
3 | 文字型 | Unicode型 | 文字型 | バイト単位に取得
4 | 文字型 | Unicode型 | Unicode型 | 文字単位に取得
5 | Unicode型 | 文字型 | 文字型 | バイト単位に取得
6 | Unicode型 | 文字型 | Unicode型 | 文字単位に取得
7 | Unicode型 | Unicode型 | 文字型 | 文字単位に取得
8 | Unicode型 | Unicode型 | Unicode型 | 文字単位に取得
9 | 文字型 | 値(*1) | 文字型 | バイト単位に取得
10 | 文字型 | 値(*1) | Unicode型 | バイト単位に取得
11 | Unicode型 | 値(*1) | 文字型 | 文字単位に取得
12 | Unicode型 | 値(*1) | Unicode型 | 文字単位に取得
13 | 値(*1) | 文字型 | 文字型 | バイト単位に取得
14 | 値(*1) | 文字型 | Unicode型 | バイト単位に取得
15 | 値(*1) | Unicode型 | 文字型 | 文字単位に取得
16 | 値(*1) | Unicode型 | Unicode型 | 文字単位に取得

*1 式に直接、'あいうえお'などの文字列を指定する場合

その他の関数の留意事項

  • 文字型項目からUnicode型項目、またはUnicode型項目から文字型項目への代入、または項目更新処理を行う場合、内部で変換を行いますので、UnicodeFromANSI関数/UnicodeToANSI関数を使う必要はありません。
  • 現在のバージョンでは、Mail関数(MailSend/MailMsgTextなど）は、Unicode特有の文字は対応していません。

その他

  • 入出力ファイルのメディアにテキスト形式プリンタを設定した印刷処理では、Unicode特有の文字の印刷は対応していません。Unicode型データはGUI形式プリンタに設定して印刷してください。
  • メッセージコンポーネントに対して、Unicode型のパラメータを渡すことはできません。
  • フォーム入力で、UnicodeやUTF-8のファイルタイプの場合、文字型項目に入力すると文字列がカットされる場合があります。
  • フォーム出力で、ANSIのファイルタイプの場合、Unicode型項目を出力すると文字列がカットされる場合があります。
  • サロゲート・ペア文字（4バイトのUnicode文字）については、現在対応されておりません。

Unicode対応のWebアプリケーションを作成する場合

マージ機能を用いて Shift-JISに存在しないUnicode固有の文字を使う Web アプリケーションを作成する場合には、以下の点に留意してください。

  • V10では、マージテンプレートファイル、および、テンプレートに埋め込むデータに、日本語およびUnicode固有文字を使うことができます。
  • マージテンプレートファイルに、Unicode固有の文字を使う場合には、BOM (Byte Order Marker) 付きの UTF-8 で格納してください。BOMを付加しなければ、デフォルトで Shift-JIS と解釈されますので、正しい結果が得られなくなります。テンプレートにUnicode固有文字を使わない場合には、Shift-JISでも構いません。
  • 入出力ファイルテーブルでは、リクエスタを定義する際、入出力ファイル特性の「使用する文字セット」パラメータに「T=UTF-8」を指定してください。Webブラウザへ返送されるHTMLデータが UTF-8 でエンコードされます。A=Ansi あるいは O=OEM では、Shift-JISに変換されるので、Unicode 固有の文字が正しく出力されません。
  • ハイパーリンクをクリックしたり、フォームのサブミットを行った時には、WebブラウザからWebサーバへ送信されるHTTPリクエスト(GETおよびPOST)のパラメータは、UTF-8 でエンコードされてWebサーバに送信されます。文字コードを正しく解釈するために、Magicエンジン(eDevRTE.exe) と同じフォルダにある MGREQ.INI ファイルで、ConvertAlphaFromUTF8ToUnicode = Y フラグを設定してください。このフラグについては、Ver 10.1J SP1a での新機能 を参照してください。
  • ハイパーリンクで定義されたURLに、日本語やUnicode固有文字を埋め込むと、WebブラウザからWebサーバへ送信されるHTTPリクエスト(GET)に不正な文字が入ることがあります。URLにはこのような文字を避けてください。
  • フォームでサブミットするとき(POSTリクエストの場合)には、パラメータに日本語やUnicode固有の文字を使うことはできますが、アプリケーション名や公開プログラム名に使うと正しく動作しません。アプリケーション名や公開プログラム名には、半角英数字のみを使うようにしてください。

データベース固有の制限事項

MSSQL Server

  • Unicode型/BLOB型(Unicodeタイプ)に設定したときに対応するMSSQL Serverのカラムタイプは次の通りです。
データソースの型／内容 | データソースのサイズ | MSSQL Serverの型
Unicode型 | 1-4000 | nvarchar
Unicode型 | 4001以上 | ntext
BLOB型/Unicode | - | ntext/イメージ(*)

*SP2から記憶型式により異なります。

  • デフォルトの照合順序が設定されたデータベースでは、Unicodeに依存しないMS-SQL Serverのソート処理により、文字型項目のソート処理の結果と互換性があります。
  • 埋込SQLの入力パラメータにUnicode特有の文字を渡す場合、パラメータの先頭文字にNを付加する必要があります。
    例．select * from TESTTAB where UNICODEMOJI = N':1'
  • 文字型255桁のカラムを含むテーブルをMagicで定義し、APG実行によりテーブル作成しようとすると「SQL0604N 列の長さ、精度、または位取り属性、特殊タイプ、構造化タイプ、構造化タイプの属性、関数、あるいはタイプ・マッピング "CHAR(255)" が無効です。 SQLSTATE=42611」とエラー表示され、テーブル作成できません。(2000326)

  • 埋込SQLの入力パラメータ、およびDB SQL WHEREのパラメータにUnicode特有の文字を渡す場合、パラメータの先頭文字にNを付加する必要があります。

例．select * from TESTTAB where UNICODEMOJI = N':1'

Oracle

  • Unicode型/BLOB型(Unicodeタイプ)に設定したときに対応するOracleのカラムタイプは次の通りです。
データソースの型／内容 | データソースのサイズ | Oracleの型
Unicode型 | 1-2000 | NVARCHAR2
Unicode型 | 2001以上 | NCLOB
BLOB型/Unicode | - | NCLOB/BLOB (*)

*SP2から記憶型式により異なります。

  • SQL WHERE句に Unicode 固有の文字を文字定数として使うことはできません。
  • 埋込SQLのINOUTのパラメータが定義されたプロシージャに対して、出力パラメータにUnicode型項目を指定した場合、正しく動作しません。
  • 埋込SQLの入力パラメータにUnicode固有の文字を指定する場合、バインド変数(接頭辞にコロン(:)でなく、チルダ(~)を指定）を指定して下さい．この場合、パラメータを''で囲む必要はありません。

DB2 UDB

  • Unicode型/BLOB型(Unicodeタイプ)に設定したときに対応するDB2 UDBのカラムタイプは次の通りです。
  • データソースの型／内容 | データソースのサイズ | DB2 UDBの型 | データベースのコードセット(*1)
    Unicode型 | 1-127 | GRAPHIC | UTF-8(*2)
    Unicode型 | 128-16333 | VARGRAPHIC | UTF-8(*2)
    Unicode型 | 16336以上 | DBCLOB | UTF-8(*2)
    BLOB型/Unicode - DBCLOB/BLOB (*3) IBM-943(デフォルト)

    • *1 データベース作成時に指定し、作成後に変更できません。

    *2 IBM-943に設定した場合、半角英数字、およびUnicode特有の文字が正しく格納できません。

*3 SP2から記憶型式により異なります。

  • DB2 UDB V8.2で、Unicode型項目のあるテーブルの新規作成に失敗する場合、db2cli.iniに次のパラメータ を設定してください。このファイルは通常、クライアントマシンのDB2 UDBクライアントモジュールをインストールしたフォルダに存在します。

[Common]
Graphic = 1

  • 埋込SQLのステートメントやSQL Where句は、Shift-JISの文字列でデータベースに送るため、入力パラメータにUnicode特有の文字を渡しても、正しく動作しません。
  • UTF-8に設定されたデータベースでは、文字型項目についても内部コードがUTF-8で格納されるため、次のような問題があります。
    1. ２バイト文字を最大桁数まで登録しようとすると、「SQL0302N EXECUTE またはOPENステートメント内のホスト変数の値が大きすぎます。 SQLSTATE=22001」のエラーが発生します。
    2. ソート順序がUTF-8の文字コード順になります。

Pervasive.SQL (ISAM)

  • Unicode 型項目を扱うためには、ファイルフォーマットを 7.x あるいはそれ以上にしてください。これは P.SQL の仕様制限によるものです。
  • Unicode 型項目をインデックスとした場合、正しく並ばないことがあります。これは P.SQL の問題で、「P.SQL8 SP3およびP.SQL SP2において対応されています。
    AG-TECH社のホームページ http://www.agtech.co.jp/download/update/pervasive/psqlv8s3/history.html に、以下のような情報があります： 「49474 mkde mkde Btrieve WSTRING キーで UNICODE 文字列データの並べ替え順に問題があった。」


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

Magic V10 では、下記のような拡張位置指示記号をデフォルトで使用できるようになっています。

DDSフィールド | 位置指示記号 | 制限事項
DBCS 専用フィールド（J） | J | 全角のみ入力可
DBCS 混用フィールド（O） | X | 全角、半角の混在入力可
DBCS 択一フィールド（E） | T | 全て全角か、全て半角で入力可
DBCS 図形フィールド（G） | G | 全角のみ入力可。シフトコード無し
SBCS （A） | S | 半角のみ入力可

注意：

  • これらの書式は iSeries DB2/400 のDBCS対応のためのものですが、iSeries 以外でも使用することが可能です。この場合、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


マルチスレッドサーバ利用時の注意事項

Magic Enterprise Server は、ひとつのインスタンス(eDevRTE.exe プロセス)で同時に複数のスレッドで並行処理ができる、マルチスレッドサーバです。Magic Enterprise Server は、マルチCPU (Pentium 4、Xeon 等でのハイパースレッドも含む) のサーバマシンにも対応しています。

万一、マルチCPU環境が原因と見られるような動作不安定(負荷の高いときに起こる不定期な例外の発生、アプリケーションの動作の不正など)が見られる場合には、問題を切り分けるために、以下のような回避策を試行してみてください。

  1. 設定/動作環境/アプリケーションサーバの最大並行リクエスト数（MaxConcurrentRequests）を１にし、複数インスタンスでご使用ください（例：５スレッド版の場合、１スレッド×５インスタンス）。これにより、１インスタンスあたり１スレッドのみが動作するようになり、マルチスレッド動作でのクリティカルなタイミングによる動作不正を防げます。
  2. MGREQ.INIに以下の設定を行ってください。 この設定により、Magic サーバエンジンが、特定のCPUをランダムに選んで、そのCPUだけで動作するようになります。

[REQUESTER_ENV]
SpecialAffinity = Y

上記の設定を行うと、マルチスレッドサーバ本来のパフォーマンスのメリットが減ることがありますので、試験環境での原因の切り分けのため、あるいは一時的な回避策としてのみご利用ください。


Vistaでの制限事項

Windows VistaTMでの留意・制限事項

SP2からWindows Vista での動作をサポートします。Windows Vista上でMagic V10を実行した場合の留意点や制限事項は以下の通りです。

  • Windows Vista上では、MGPRN.HLP, SETSTYLE.HLP, WGAIJI.HLP等、*.hlp の拡張子のファイルは開くことはできません。
    参考：http://support.microsoft.com/kb/917607
  • UACが有効になっていると、Administrator権限のあるユーザでログオンされていても、管理者権限でのみ実行できるコマンド(regsvr32.exeなど) はOSコマンドから実行できません。

JIS X 0213:2004 対応について

  • サロゲート・ペア文字（4バイトのUnicode文字）については、現在対応されておりません。

各種リンク情報

JIS X 0213:2004規格対応により文字フォント変更について　社団法人 電子情報技術産業協会
http://it.jeita.or.jp/perinfo/committee/pc/0612JISX0213-2004/index.html

JIS X 0213:2004 対応と新日本語フォント「メイリオ」について
http://www.microsoft.com/japan/windows/products/windowsvista/jp_font/default.mspx

ブラウザクライアント

  • (2000469)Windows Vista上のWebブラウザからブラウザクライアントモジュールのインストールプログラム（DotNetMsi.msi）が自動で実行されないため、自動インストールを行うことはできません．Supportディレクトリ上にあるファイルをクリックして手動でインストールを行う必要があります。

  • (2000470)ブラウザクライアントで、CJK統合漢字拡張B面の字(丈の旧字体など)が正しく格納できません。またそのコードで格納されたデータを読み込むと、Webブラウザでエラーが発生します。

インストール

  • 実行許可の確認

    • インストールは、Administrators グループに所属しているユーザで行ってください。
    • UAC が有効の場合、インストールプログラムの実行時に［ユーザー アカウント制御］ダイアログが表示されます。ここで［続行］ をクリックしてください。処理が継続して行われます。

  • ブラウザクライアントのインストールを行う場合、IISの以下の機能をあらかじめ有効化しておく必要があります。

Web 管理ツール

    • IIS 6と互換性のある管理
    • IIS管理コンソール

World Wide Web サービス

    • HTTP 共通機能
      • 規定のドキュメント
      • 静的コンテンツ
    • アプリケーション開発機能
      • .NET拡張機能
      • ASP
      • ASP .NET
      • CGI
      • ISAPI フィルタ
      • ISAPI 拡張機能
    • セキュリティ
      • 要求のフィルタリング

ユーティリティ

  • (2000487)リモートデバッガを有効にして実行版を起動すると、終了時にOSからのエラーダイアログが表示されることがあります。


付録

  • 本製品でのベータ機能
  • ベータ機能評価レポート
  • Magic eDeveloper V10 使用許諾契約書
    • Magic Studio あるいは Client の場合
    • Magic Enterprise Server の場合


本製品でのベータ機能

以下の機能は本製品で提供されていますが、日本語版ではベータ機能扱いです。 これらの機能はマジックソフトウェアジャパンのサポートセンターでのサポート対象外ですが、ご意見、ご質問、気が付いた点などは、「ベータ 機能評価レポート」に記入して、メールで japan_v10beta@magicsoftware.com までお送りください。製品の改善に反映させていただきたいと思います。 お送りいただいたメールはすべて良く検討し、製品改善のための参考にさせていただきますが、お問い合わせの内容に対し個別にはお答えできない場合もありますので、予めご了承願います。

ベータ機能一覧

  • ブラウザクライアント
  • ユーザ定義開発メニュー
  • J2EE クライアント
  • J2EE サーバ
  • 以下のコンポーネント ジェネレータ
    • ストアド プロシージャ
    • UDDI Component
  • 以下のインターフェース ビルダ
    • EJB
  • DDF Maker
  • ODBC ゲートウェイ


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

ベータ機能評価レポート

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

Magic eDeveloper V10 ベータ機能評価レポート

記入日： 年　 月 　 日

会社名：

担当者：

E-mail：

ＴＥＬ：

ＦＡＸ：

サポート契約： （ ）Windows　（ ）フルセット　 （ ）なし 該当する（ ）に＊を挿入してください。

１．動作環境

ＰＣ機種：

ＣＰＵ：

ＲＡＭ：

ＯＳ： Windows2000（SP： ）／（ ） Windows XP／（ ） Windows Server 2003

プリンタ：

使用サーバ：

２．評価結果

対象製品： （ ）Magic Studio （ ） Magic Enterprise Server （ ） Magic Client

製品バージョン： （ ） ※ SPxx まで含め、正確に記入してください。

該当する（ ）に＊を挿入してください。

Ａ （ ） 問題無し

Ｂ （ ） 一部支障あり

Ｃ （ ） 正常に動作しない

Ｄ （ ） インストール・起動不可

上記２でＢ，Ｃ，Ｄの場合、以下の内容をお書きください。

３． 再現性

（ ）再現性あり、 （ ）時々再現する、 （ ）再現性なし

４．不具合の現象 （できるだけ詳細にお書きください。現象確認を迅速に行なうために、極力画面のハードコピー、サンプルプログラム等の提供をお願いいたします。）

５．その他ご意見


Magic eDeveloper V10 使用許諾契約書

Magic eDeveloper V10 使用許諾契約書には、Studio あるいは Client 製品のものと、Enterprise Server 製品のものと2種類あります。ご購入になった製品の使用許諾契約書を参照してください。

  • Magic Studio あるいは Client の場合
  • Magic Enterprise Server の場合


Magic eDeveloper V10 使用許諾契約書

Magic Studio
Magic Client

No. MSJC-10-002

お客様へのお願い

お客様へのお願い　このパッケージに入っているソフトウェアをご購入またはご使用にあたり、本契約書を十分にお読みください。このパッケージを開封された場合には、本契約に同意されたものとみなします。このパッケージを開封された際には、ユーザ登録カード（以下「登録カード」という）に必要事項を記入の上ご返送ください。登録カードをご返送されない場合には、このパッケージに入っているソフトウェアに関するサポートは致しかねますので、ご了承ください。

  Magic Software Enterprises社（以下「ＭＳＥ」という）とお客様（以下「お客様」という）は、このパッケージに同封されているソフトウェア・プログラム（以下「許諾プログラム」という）及び同封物（マニュアルなど）について以下の通り合意しました。なお、本契約書に関するお問い合わせは、マジックソフトウエア・ジャパン株式会社（以下「ＭＳＪ」という）まで書面にてご連絡いただきますようお願い致します。

1. 総則

   許諾プログラムに関する全ての著作権は、ＭＳＥが保有しています。 ＭＳＥはお客様に、以下条項の規定に従って、許諾プログラムの譲渡不能かつ非独占的な使用権を付与します。

2. 契約期間

   本契約は、お客様がこのパッケージを開封した時から発効し、お客様が文書により解約を申し入れるか、または第７条の規定により解約されるまで有効とします。

3. 使用権

  1. 使用権の内容はお客様が購入された許諾プログラムの種類により異なります。お客様はパッケージに表記された種類に従い、以下の使用権の内容を遵守してください。
    • Magic Studio、Magic Studio for System iの場合
      お客様は、許諾プログラムを機械読取可能な形で、特定の１台のコンピュータ・システムにおいて使用すること（以下「使用権」という）ができます。またお客様がマルチターミナル・システムで許諾プログラムを使用する場合は、接続される端末数分の使用権を別途取得しなければなりません。
    • Magic Client、Magic Client for System i の場合
      お客様は、許諾プログラムを機械読取可能な形で、お客様が購入したユーザ数分を同時にコンピュータ・システムにおいて、又は購入したユーザ数分を特定のコンピュータ・システムにおいて使用すること（以下「使用権」という）ができます。またお客様がマルチターミナル・システムで許諾プログラムを使用する場合は、接続される端末数分の使用権を別途取得しなければなりません。
  2. お客様は、ＭＳＥの書面による同意を得なければ、使用権を第三者に対して譲渡、移転、または再使用権の設定を行うことはできません。
  3. お客様は、許諾プログラムを改変、リバースエンジニアリングまたは逆アセンブルしないことに同意します。

4. 許諾プログラム等の複製

  1. お客様は、許諾プログラムの複製物を作成してはなりません。但し、バックアップを目的とする場合に限り、機械読取可能な形で許諾プログラムの複製物を２部まで作成することができます。
  2. お客様は、許諾プログラムのすべての複製物に、許諾プログラムに付されている著作権表示およびその他の権利表示を付すものとします。
  3. お客様は、このパッケージの許諾プログラム以外の同封物の一部、または全部の複製物を作成する場合には、ＭＳＥの事前の許諾を得るものとします。

5. 許諾プログラムの保護

   お客様は本契約書、許諾プログラム及びこのパッケージの同封物の全部又は一部を第三者に譲渡または移転することはできません。但し、お客様が一切の複製を保持せず、かつ譲受人が本契約書の条項に書面で同意した場合には、この限りではありません。

6. ＭＳＪおよびＭＳＥの保証の範囲

  1. ＭＳＪおよびＭＳＥは許諾プログラムがお客様の特定の使用目的に合致し、また、いかなる場合でもその実行に誤りがないことを保証するものではありません。但し、お客様が登録カードを返送し、かつお客様が許諾プログラムを通常の方法で使用している場合に限り、許諾プログラム購入の日から３箇月以内に指定プログラムの誤り（バグ）を修正したソフトウェア・プログラムが発表されたときには、その修正したソフトウェア・プログラムまたは修正したソフトウェア・プログラムに関する情報を提供します。これをもってＭＳＪおよびＭＳＥの唯一の保証とします。
  2. ＭＳＪおよびＭＳＥの責任は、第６条(1)項に規定された保証のみに限定されるものとし、許諾プログラムを使用することにより生じたいかなる損害についてもその責は負いません。

7. 契約の解約

   ＭＳＪは、お客様が本契約に定める事項に違反したとき、またはお客様において本契約を継続しがたい重大な事由があるときは、お客様に対し、何らの事前の通知なしに直ちに本契約を解約できるものとします。

8. 契約終了時の措置

   本契約が第７条により解約された場合またはその他の事由により本契約が終了した場合、お客様は本契約が終了した日より１０日以内にインストールされた許諾プログラムのデータ及び許諾プログラムを格納した媒体並びにそれらの複製物を廃棄するものとします。

9. 一般条項

   本契約のいずれかの条項またはその一部が法令により無効となった場合でも、その他の条項は、有効に存続するものとします。

10. 裁判管轄

   本契約に関する訴えは、東京地方裁判所をもって第一審の専属管轄裁判所とします。

マジックソフトウェア・ジャパン株式会社


Magic eDeveloper V10 使用許諾契約書

Magic Enterprise Server

No. MSJC-10-002

お客様へのお願い

お客様へのお願い　このパッケージに入っているソフトウェアをご購入またはご使用にあたり、本契約書を十分にお読みください。このパッケージを開封された場合には、本契約に同意されたものとみなします。このパッケージを開封された際には、ユーザ登録カード（以下「登録カード」という）に必要事項を記入の上ご返送ください。登録カードをご返送されない場合には、このパッケージに入っているソフトウェアに関するサポートは致しかねますので、ご了承ください。

  Magic Software Enterprises社（以下「MSE」という）とお客様（以下「お客様」という）は、このパッケージに同封されているソフトウェア・プログラム（以下「許諾プログラム」という）及び同封物（マニュアルなど）について以下の通り合意しました。なお、本契約書に関するお問い合わせは、マジックソフトウエア・ジャパン株式会社（以下「MSJ」という）まで書面にてご連絡いただきますようお願い致します。

1. 総則

   許諾プログラムに関する全ての著作権は、MSEが保有しています。 MSEはお客様に、以下条項の規定に従って、許諾プログラムの譲渡不能かつ非独占的な使用権を付与します。許諾プログラムの使用許諾は、本使用許諾契約書および別添の「Magicライセンス証書」から構成されています。

2. 契約期間

   本契約の「効力発生日」は、MSJがお客様にパッケージを発送した日とし、お客様が文書により解約を申し入れるか、または第8条の規定により解約されるまで有効とします。

3. 使用権

  1. お客様は、許諾プログラムを機械読取可能な形で、コンピュータ・システムにおいてお客様が購入した合計のインスタンス数、及びスレッド数分を同時に使用すること（以下「使用権」という）ができます。
  2. お客様は、MSEの書面による同意を得なければ、使用権を第三者に対して譲渡、移転、または再使用権の設定を行うことはできません。
  3. お客様は、許諾プログラムを改変、リバースエンジニアリングまたは逆アセンブルしないことに同意します。

4. 許諾プログラム等の複製

  1. お客様は、許諾プログラムの複製物を作成してはなりません。但し、バックアップを目的とする場合に限り、機械読取可能な形で許諾プログラムの複製物を２部まで作成することができます。
  2. お客様は、許諾プログラムのすべての複製物に、許諾プログラムに付されている著作権表示およびその他の権利表示を付すものとします。
  3. お客様は、このパッケージの許諾プログラム以外の同封物の一部、または全部の複製物を作成する場合には、MSEの事前の許諾を得るものとします。

5. 許諾プログラムの保護

   お客様は本契約書、許諾プログラム及びこのパッケージの同封物の全部又は一部を第三者に譲渡または移転することはできません。但し、お客様が一切の複製を保持せず、かつ譲受人が本契約書の条項に書面で同意した場合には、この限りではありません。

6. MSJおよびMSEの保証の範囲

  1. MSJおよびMSEは許諾プログラムがお客様の特定の使用目的に合致し、また、いかなる場合でもその実行に誤りがないことを保証するものではありません。但し、お客様が登録カードを返送し、かつお客様が許諾プログラムを通常の方法で使用している場合に限り、許諾プログラム購入の日から３箇月以内に指定プログラムの誤り（バグ）を修正したソフトウェア・プログラムが発表されたときには、その修正したソフトウェア・プログラムまたは修正したソフトウェア・プログラムに関する情報を提供します。これをもってMSJおよびMSEの唯一の保証とします。
  2. MSJおよびMSEの責任は、第６条(1)項に規定された保証のみに限定されるものとし、許諾プログラムを使用することにより生じたいかなる損害についてもその責は負いません。

7. ソフトウェア・メンテナンスについて

(1) ソフトウェア・メンテナンス

プログラム使用権にはソフトウェア・メンテナンスが含まれいます。許諾プログラムの使用権に含まれるソフトウェア・メンテナンスは、MSJ より提供され、「Magicソフトウェア・メンテナンス」といいます。

Magic ソフトウェア・メンテナンスは、効力発生日に開始し、１年後の同月末日に終了します。ただし、効力発生日が月の第1日目の場合は、取得日から１年後の前月末日に終了します。

許諾プログラム使用権に対するMagicソフトウェア・メンテナンスの有効期間においては、

① MSJはお客様に対して、ご契約された全てのプログラムの一般的に入手可能な最新バージョンもしくはアップデートモジュールを提供し、MSEはその使用を許諾します。ただし、これらが提供された場合に限ります。

② MSJはお客様に対して以下のサポートを提供します。

ⅰ) 導入や使用方法に関する日常的、かつ短時間の質問に対する応答

ⅱ) プログラム・コードに起因する障害に対するサポート

③MSJはMagicサポートセンターのサービス提供時間中に、電子アクセスを介して、お客様のテクニカル・サポート担当者にのみサポートを提供します。

④Magicソフトウェア・メンテナンスには以下のサポートは含まれません。

ⅰ) アプリケーションの設計と開発に対するサポート

ⅱ) プログラムの指定稼動環境以外の環境における当該プログラムの使用に関するサポート

ⅲ) 本契約書の下でMSJが責任を負わない製品に起因する障害に対するサポート

上記は、Magicソフトウェア・メンテナンスについての保証のすべてを規定したもので、法律上の瑕疵担保責任、商品性の保証および特定目的適合性の保証を含む全ての明示もしくは黙示の保証責任、または保証条件に代わるものとします。

(2) 一年毎のソフトウェア・メンテナンスの更新

「ソフトウェア・メンテナンス更新日」とは、本契約書の効力発生日から1年後の翌月第1日目をいいます。ただし、効力発生日が月の第１日目である場合には、１年後の同日が最初の「ソフトウェア・メンテナンス更新日」になります。更新日の１ヶ月前までにいずれかの当事者から更新しない旨の申し出が書面にてされない限り、ソフトウェア・メンテナンスは更に１年間更新されるものとし、それ以降も同様とします。この時、ソフトウェア・メンテナンス更新日も自動的に１年延長されます。お客様が、継続を希望する場合には、① MSJが、お客様からの継続の注文(注文書等) を現行の有効期間満了日より前までに受領すること、また② 次に続く有効期間分のソフトウェア・メンテナンスの請求書受領日より30 日以内に支払いを行うことが必要です。
お客様が、プログラム使用権のうち、すべてあるいは特定のものについてソフトウェア・メンテナンスの継続を行わず、後日、かかるプログラム使用権のいずれかについてソフトウェア・メンテナンスの取得を希望する場合には、お客様は、未契約期間の2倍の費用を支払うことにより継続することが可能です。

ソフトウェア・メンテナンスの有効期間満了と「ソフトウェア・メンテナンス更新日」が一致しない場合に、以降の更新を「ソフトウェア・メンテナンス更新日」に合わせるために、ソフトウェア・メンテナンスを月単位で料金調整します。

(3) サイト管理

ソフトウェア・メンテナンスのライセンスを管理する単位をサイトといい、同一法人、同一敷地の管理とします。同一サイトで複数の許諾プログラムを使用した場合は、共通の「ソフトウェア・メンテナンス更新日」となります。

(4) ソフトウェア・メンテナンスの提供中止

MSJが、必要に応じ、特定のプログラムに対してソフトウェア・メンテナンスの提供を中止した場合は、お客様は以下のことについて了解するものとします。

① MSJは、当該プログラムに対してはソフトウェア・メンテナンスの更新を提供しません。

② 上記中止のお知らせの前にお客様がそのプログラム使用権のソフトウェア・メンテナンスを更新した場合には、MSJは、自らの裁量により、更新済み契約の終了まで、当該プログラム使用権についてソフトウェア・メンテナンスをお客様に対して継続して提供するか、またはお客様に対して月割り計算した料金を返金します。

8. 契約の解約

   MSJは、お客様が本契約に定める事項に違反したとき、またはお客様において本契約を継続しがたい重大な事由があるときは、お客様に対し、何らの事前の通知なしに直ちに本契約を解約できるものとします。

9. 契約終了時の措置

   本契約が第8条により解約された場合またはその他の事由により本契約が終了した場合、お客様は本契約が終了した日より１０日以内にインストールされた許諾プログラムのデータ及び許諾プログラムを格納した媒体並びにそれらの複製物を廃棄するものとします。

10. 一般条項

   本契約のいずれかの条項またはその一部が法令により無効となった場合でも、その他の条項は、有効に存続するものとします。

11. 裁判管轄

   本契約に関する訴えは、東京地方裁判所をもって第一審の専属管轄裁判所とします。

マジックソフトウェア・ジャパン株式会社


Ver 10.1J SP1a PT1 での改善内容

Magic Studio、Client、Enterprise Server エンジン

QCJ# | 内容
0702041 | Unicode文字列をANSIのBLOBに格納すると末尾に余計な空白が入る問題
2000424 | 埋込SQLコマンドに8000バイト以上のSQL文を指定されたプログラムを実行すると、不定期に異常終了する問題
2000416 | ISAMデータベースでUnicode型の項目を降順のインデックスに指定した場合、先頭の文字コードが0x7FFFより大きいデータ(ハングル文字など)が表示されない問題
2000415 | Unicode型の項目を降順にソートした場合、先頭の文字コードが0x7FFFより大きいデータ(ハングル文字など)が表示されない問題
2000454 | 数値項目のタブコントロールの範囲に全角数字が指定されていると、その項目の値が不正になる問題
2000436 | タスク特性/オプション=Yesのバッチプログラムを実行して印刷プレビューを表示し、再実行すると異常終了することがある問題
2000414 | Win2003サーバ上のランタイムエンジンに対して、MRBからリクエストが実行できない問題

V9Plusコンバータ

QCJ# | 内容
2000430 | リンク照会(確認=Y)のコマンドが定義されたV9PlusのプログラムをV9CONVERTERでV10のプロジェクトに変換すると、'Row not found in table:'のエラーコマンドが定義される問題

ゲートウェイ

QCJ# | DBMS | 内容
2000455 | Oracle | テーブルのカラムを変更してテーブル変換を実行すると、「ORA-00955：すでに使用されているオブジェクト名です」のエラーが発生する問題
2000478 | Oracle | プログラムのパフォーマンスが劣化した問題
2000475 | SQL Server | SQL ServerのAPP_NAME()関数が、MAGIC V10で接続したセッションに対してアプリケーション名を取得できない問題


Ver 10.1J SP1a PT1 での留意・制限事項

Unicode

V10ではUnicodeをサポートするようになりましたが、現バージョンでUnicodeを利用する際に留意すべき点について、Unicodeを利用する場合の注意事項 にまとめましたので、ご参照ください。

XMLデータベース

XML データベースについての注意事項は、XML データベース利用時の注意事項 にまとめてあるので、参照してください。

開発機能一般

  • (2000316)クラス0のフォームの編集において、テーブルコントロールにリンクしているコントロールをテーブルの外に移動するとリンクが外れます。
  • (2000238)MS-IME2002を使った場合、Magic Studioからプログラムを実行してアクティビティモニターから検索画面で2バイト文字を入力したとき、Enterキーで文字を確定しないと文字が表示されない場合があります。
  • プロジェクトファイルの実体はxmlファイルであり、格納されたデータは暗号化されずに保存されます。従ってアプリケーション特性の権利キーや、権利リポジトリの権利キーも暗号化されずに保存されますので、第3者へのプロジェクトファイルの公開には注意が必要です。また、プログラムの中にセキュリティ上、重要なデータを直接格納している場合には、(1)暗号化ソフトを利用する、(2)データベースに保存する、(3)シークレットテーブルで管理するなどの方法を検討して下さい。
  • デバッグモードでプログラムを実行する場合、あらかじめブレイクポイント、項目、ウォッチ、現在のコンテキスト等のペインを表示させてください。
  • (2000373) Windows2000上でMagic Studioを起動し、データソースリポジトリでデータソース名が空欄、かつXMLデータベース(Default XML Dabaseなど)を指定したデータソースを削除すると、異常終了することがあります．
  • (2000395) 開発版から「バッチプログラムの実行」によって、３つ以上のフレーム出力を行うバッチのWeb出力のプログラムを実行すると、１つのフレームでエラー104が発生することがあります．
  • (2000384) ロジックエディタにおいて重複したヘッダ行を登録すると、「重複した論理ユニットです.定義しなおしてください.」のエラーが出ますが、その際、Tabキーで移動してロジックのタイプを変更して下さい．

実行機能一般

  • (2000236)プッシュボタンの項目に対する項目変更ハンドラを設定した場合、実行時にボタンを押下してもイベントは起動されません。
  • (2000242)File2Blb関数で、BLOB項目(タイプがバイナリ)に格納した場合、UTF-8のデータはUnicodeに変換され、UnicodeのデータはBOMを削除されます。
  • (2000286)HTTPGet関数、またはHTTPPost関数でUTF-8のデータをBLOB型のUnicodeタイプのデータで受け取ると、2バイト文字が正しく取得できません。
  • (2000103)ユーザ定義関数に2バイト文字を使った関数を定義することはできません。
  • (2000186)入出力ファイルのメディアを項目、文字セットをUTF-8にすると、格納したデータが文字化けすることがあります。

アプリケーションサーバ機能

  • MAGIC.INIの[MAGIC_ENV]StartApplicationに必ず開始アプリケーション(キャビネットファイル)を指定してください。 リモートコール等によりアプリケーションを新規に開くことはできません。
  • (2000309)データ出力コマンドで入出力ファイルの出力先にリクエスタ、入出力特性／文字セットをUnicodeに設定し、そのプログラムを他のクライアントからリモートコールで起動すると、結果ファイルはShift-JISコードで出力されます。

ブラウザクライアント

  • 現バージョンでは、ブラウザクライアント機能はベータ機能です。
  • (2000352) 出力するhtmlのエンコードがV9PlusではShift_JIS であるのに対して、V10ではUTF-8であるため、Webブラウザで表示されたイメージが、若干横方向に広がるように表示されることがあります。
  • (2000346) テンプレートファイルのエンコードはShift_JISのみ対応しています．

バージョン管理

  • 今回のバージョンでは、プロジェクトのバージョン管理ソフトとして、Microsoft Visual SourceSafe (6.0d、あるいは 2005) のみをサポートしています。CVS、PVCSはサポートしておりません。
  • (2000405)バージョン管理でVisual SourceSafe(VSS)を使用した場合、履歴等を実行するとVSSの画面が呼び出されますが、この画面にあるヘルプボタンをクリックするとエラーが発生し、それ以降マウス操作ができなくなります．

Oracle

  • (2000411) RAW型のカラムタイプを定義取得するとBLOB型にマッピングされますので、適宜文字型 (記憶型式：String)に変更する必要があります。

Webサービス

プロバイダアプリケーションの注意事項

  • 公開プログラム名、およびパラメータ名には英数字と _ (アンダースコア文字)のみで先頭に数字を使用できません。
  • 異なる公開プログラム間で、同じ名前で違う型のパラメータを設定すると、正しく動作しないことがあります。
  • 入力パラメータがxmlデータの場合、パラメータをBLOB型で定義し、名前はxsdスキーマのルートと同じ名前に設定して下さい。
  • 入出力パラメータがxmlデータの場合、設定されたxsdファイルのエレメントの順序が、Systinetのパッケージを作成した後にアルファベット順に変更されることがあります。これにより、コンシューマに提供するスキーマとあわなくなることがあるため、あらかじめxsdのエレメントの名前をV01_xxx, V02_xxxなどの接頭辞を付加することで回避して下さい。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面のサービスネームスペースにはデフォルトでMAGIC.INIのオーナ名が付加されます。オーナ名にスペースや . (ドット文字)が含まれる場合、デフォルトの値では jarファイルが作成できませんので適切な値に変更する必要があります。
  • Webサービスビルダでパッケージ(jarファイル)を作成する時、「Webサービスの詳細」画面の「説明」に日本語の2バイト文字を入力すると、jarファイルが作成できません。
  • WSProviderAttachmentGet関数の引数に2以上の値を設定しても、２つ以上の添付ファイルを受け取ることができません。

コンシューマからWebサービスコールを実行するときの注意事項

  • 設定／サービスで既存のWebサービスのWSDLを再読み込みした場合には、V10を再起動して下さい。さらにそのサービスを設定したWebサービスコールを再度定義しないと正しく実行できないことがあります。
  • プロバイダにXMLデータをBLOB型で渡す場合、Shift_JISのエンコードで渡して下さい。


SP1aからの移行に関する注意点

Ver10.1SP1aからの移行に関する留意事項

Ver10.1SP1aで開発されたアプリケーションをSP2で利用する場合の留意点は以下の通りです。

  • プロジェクトファイルは互換性がありますが、キャビネットファイルはSP2で作成し直してください。
  • SP2で修正を加えたプロジェクトファイルは、SP1ではサポート対象外となります。特にSP2で追加された特性を変更したプロジェクトファイルをSP1aで開いた場合の動作は保証できません。
  • Ver10.1J SP2の改善事項にともない、いくつか動作の変更があります。


Ver 10.1 SP2a での新機能

Ver 10.1J SP2a での新機能

SP2では、以下の機能が追加されました。詳細は、リファレンスヘルプを参照してください。


リポジトリ等の最大制限値

Magic V10 での各種リポジトリ等の最大制限値は以下のようになっています。

リポジトリ | 構成要素 | 制限値
モデルリポジトリ |  | リソースに依存 （行番号は、5桁まで）
データリポジトリ | データソース数 | リソースに依存 （行番号は、5桁まで）
 | カラム数 | 999
 | インデックス数 | DBMSに依存
 | インデックスセグメント | DBMSに依存
プログラムリポジトリ | プログラム数 | 40,000
 | テーブル数 | 10,000
 | 式テーブル | 9,999
 | 入出力ファイルテーブル | 9,999
 | 1フォームあたりの最大コントロール数 | 1,000
 | フォームのコントロールを一度に選択できる個数 | 1,000
 | クリップボードにコピーできる最大コントロール数 | 500
 | パラメータテーブル数 | 255
ヘルプリポジトリ | ヘルプ数 | 40,000
権利リポジトリ | 権利数 | 5,000
メニューリポジトリ | メニュー数 | 5,000
 | レベル数 | 10
 | 1レベルの最大エントリ数 | 5,000
コンポーネントリポジトリ | コンポーネント数 | 128