Magic eDeveloper V10 によるMicrosoft SQL Server 2008 の動作確認レポート
マジックソフトウェア・ジャパン株式会社
カスタマーサービス本部 開発部
2008/10/27
動作確認レポート
はじめに
このドキュメントは、Magic eDeveloper V10 (Magic V10)によるMicrosoft SQL Server 2008 (MSSQL Server 2008) の動作確認テストの結果について記述したものです。
対象
- Magic V10.1 SP4b
- Magic Ver10.1 MSSQL データベースゲートウェイ : MGMSSQL.dll(Ver10.1 SP4b-0)
動作環境
- クライアント
-
- CPU :Intel Core2Duo 2.13 GHz
- メモリ:512MB
- OS:Windows XP Professional SP2
- クライアントモジュール: Microsoft SQL Server 2008 Native Client クライアント
- Magic V10 SP4b + MGMSSQL.dll (Version 10.1 SP4b-0 )
- サーバ
-
- CPU :Intel Core2Duo 2.13 GHz
- メモリ:1GB
- OS:Windows Server 2003 R2 Standard Edition
- Microsoft SQL Server Standard Edition (x86 Edition)
検証結果
MS SQL Server 2000/2005 で動作可能なアプリケーションで検証した結果、その互換レベルにおきまして、正常に動作することを確認いたしました。
留意事項
MS SQL Server 2005/2008の新機能、仕様変更に関して、本モジュールにおきましてサポート対象外とさせていただきますが、現状確認している点は以下の通りです。
- ヒント構文の変更
-
MS SQL Server 2005では、SELECTステートメントに付加されるテーブルヒントはWITH キーワードと一緒に指定するように変更されました。
参考URL: http://msdn2.microsoft.com/ja-jp/library/ms187373.aspxこの変更に伴い、アプリケーション開発者がテーブル特性/ヒント、およびインデックス特性/ヒントにヒントを設定する際、WITH を付けずに指定していると、リンクジョインを使ったプログラムを実行する際に「・・・ 付近に不適切な構文があります。・・・」というエラーが出ることがあります。
この問題を回避するには、MS SQL Server 2005/2008 の構文に従い、WITH と括弧およびコンマを付けた形式のヒントに変更してください。 - ユーザとスキーマの分離
-
MS SQL Server 2000 までは、スキーマとユーザが同一でしたが、MS SQL Server 2005より分離されました。これによって、テーブルやプロシジャーなどのオブジェクトの完全修飾名は「サーバ名.データベース名.オーナ名.テーブル名」から「サーバ名.データベース名.スキーマ名.テーブル名」に変更されました。 参考URL: http://msdn2.microsoft.com/ja-jp/library/ms190387(ja-jp,SQL.90).aspx
この変更に伴い、次のような条件が重なったときに、「データベースに ・・・ という名前のオブジェクトが既に存在します」というエラーが出ます。
- MS SQL Server 2005/2008 のデータベースに、既存の dbo ユーザ以外にアプリケーションのためのユーザがあり、デフォルトスキーマが規定値のdboである。
- Magic のデータベース特性/ユーザとして、このユーザが指定されている。
- Magic のデータベース特性/存在チェックが Yes である。
- アプリケーションのテーブルのテーブル特性/オーナ名が空欄である。
この問題を回避するには、テーブル特性/オーナ名 に、スキーマ名 dbo を明示的に指定してください。
- 分離レベル
-
MS SQL Server 2005より、READ COMMITTED SNAPSHOT および SNAPSHOT の二つの分離レベルがサポートされました。
Magic でこれらのレベルを利用する場合、次の動作を確認しております。- READ COMMITTED SNAPSHOT
-
- READ COMMITTED SNAPSHOT 分離レベルは、以下のコマンドによりデータベースのプロパティを変更してから、Magic の DBMS特性/分離レベル に 1 を設定します。
ALTER DATABASE データベース名 SET READ_COMMITTED_SNAPSHOT ON
- このレベルの利用に関して、現在既知の問題はありません。
- READ COMMITTED SNAPSHOT 分離レベルは、以下のコマンドによりデータベースのプロパティを変更してから、Magic の DBMS特性/分離レベル に 1 を設定します。
- SNAPSHOT
-
SNAPSHOT 分離レベルについては、以下のような問題があり、現状は制限事項です。
- SNAPSHOT 分離レベルは、Magic の DBMS特性/分離レベル では設定できません。埋め込みSQL文によって、直接以下のステートメントを実行する必要があります。最初に一度実行すれば、そのセッション内で設定が有効になります。
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
- SNAPSHOT 分離レベル実行時に、同一のレコードに対してレコードの更新・削除を行おうとすると、「(ホスト名): 更新の競合により、スナップショット分離トランザクションが中断しました・・・」というエラーが出て、トランザクションがアボートすることがあります。
- SNAPSHOT 分離レベルは、Magic の DBMS特性/分離レベル では設定できません。埋め込みSQL文によって、直接以下のステートメントを実行する必要があります。最初に一度実行すれば、そのセッション内で設定が有効になります。
以上