-1

Documentum Developer Edition 6.6 を使用しています。(DFS を使用して) 次の DQL 式を実行する必要があります

「dm_document」から「r_version_label」、「i_chronicle_id」、「i_position」、「r_modify_date」、「subject」、「title」、「r_object_type」、「object_name」、「r_object_id」を選択します。ここで、FOLDER (ID('0cde75d180000107')) and "r_object_type"='dm_document' order by "r_modify_date" asc, "i_position" desc

しかし、Select が返すオブジェクトの最初の N 個だけが必要です。繰り返します: 行ではなく N 個のオブジェクトです (これは、結果の属性の r_version_label が繰り返し可能なフィールドであるため重要です)。

次の DQL を使用してこれを実行しようとしました: select "r_version_label","i_chronicle_id", "i_position", "r_modify_date" , "subject","title","r_object_type","object_name","r_object_id" from "dm_document"ここで、FOLDER (ID('0cde75d180000107')) および "r_object_type"='dm_document' は、"r_modify_date" asc、"i_position" desc ENABLE (OPTIMIZE_TOP , RETURN_TOP ) で並べ替えられます

しかし、私が見たのは、返されたのはオブジェクトではなく行でした。これは、Documentum Server にデフォルトのパラメーター return_top_results_row_based (=true) があるためです。server.ini のパラメーターを変更することは私には受け入れられません。return_top_results_row_based が何であれ、同じように動作するアプリケーションを作成する必要があります。

RETURN_TOP の代わりに、RETURN_RANGE、SQL_DEF_RESULT_SET、および FETCH_ALL_RESULTS を試しましたが、それらの N も行です。

だから、今私はこれを行う唯一の方法を見ています。次の DQL を使用します。 ID('0cde75d180000107')) および "r_object_type"='dm_document' 順 "r_modify_date" asc, "i_position" desc ENABLE (OPTIMIZE_TOP , RETURN_TOP )

結果の処理中、アプリケーションは返されたオブジェクトの最初の N 個のみを使用します。「OPTIMIZE_TOP」によって、使用しないオブジェクトを読み取る時間が最小限に抑えられることを願っています。私の DBMS は MSSQL です。DQL リファレンスには、「 OPTIMIZE_TOP 」が MSSQL に影響を与えると書かれています。

多分誰かがより良い解決策を提案できますか?

4

1 に答える 1

0

このクエリを試してください:

"r_object_id, "r_version_label","i_chronicle_id", "i_position", "r_modify_date" , "subject","title","r_object_type","object_name","r_object_id" を "dm_document" から選択します。FOLDER (ID('0cde75d180000107) ')) および "r_object_type"='dm_document' "r_object_id"、"r_modify_date" asc、"i_position" desc の順

r_object_id で順序付けすると、dql は行を結果コレクション内のオブジェクトに集約する必要があります。ただし、それが OPTIMIZE/RETURN_TOP とどのように相互作用するかはよくわかりません。

于 2011-07-13T09:01:09.183 に答える