掲示板一覧   -   トピック一覧
   EA API
     SQLServerのリポジトリに遅延読み込みで接続すると、Package.FindObject()メソッドが正しく動作しない


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
mogass
投稿日時: 2015-6-16 16:12
EA Administrator
投稿: 209

SQLServerのリポジトリに遅延読み込みで接続すると、Package.FindObject()メソッドが正しく動作しない

サポートにご報告頂きました問題と回避方法です。


リポジトリがSQLServerの場合、OpenFile(またはOpenFile2)の
接続文字列に"LazyLoad=x;"というオプションが含まれていますが、
このオプションが"LazyLoad=1;"となっていると、下記の問題が発生します。


○問題
【Package.FindObject()メソッドが正しく動作しない】

例えば、パッケージ構成が以下のようになっている場合に、
FindObject()メソッドを実行すると、例外が発生しパッケージを取得できません。

[パッケージ構成]
------------------------------------------------------------
プロジェクトルート
+ パッケージ1
 + パッケージ1-1
  + パッケージ1-1-1
------------------------------------------------------------

[コード]
------------------------------------------------------------
Set Pkg = Repo.Models.GetAt(0).FindObject("パッケージ1.パッケージ1-1.パッケージ1-1-1")
------------------------------------------------------------


○回避方法

この問題は、接続文字列の"LazyLoad=x;"の部分を
"LazyLoad=0;"とすることで、回避することができます。

このLazyLoadというオプションは、遅延読み込みの設定オプションです。
遅延読み込みに関しましては、ヘルプの「SQL Serverのリポジトリに接続する」
をご覧ください。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ