我正在使用Documentum Developer Edition 6.6。 我需要(使用DFS)執行以下DQL表達檢索查詢結果中的前N個對象
選擇 「r_version_label」, 「i_chronicle_id」, 「i_position」, 「r_modify_date」, 「受試者」, 「標題」, 「r_object_type」, 「OBJECT_NAME」, 「r_object_id」,從 「dm_document」,其中文件夾(ID( '0cde75d180000107'))和 「r_object_type」 通過 「r_modify_date」 ASC, 「i_position」 DESC
但我只需要對象的第一N = 'dm_document' 順序選擇退貨。我重複一遍:N個對象,而不是行(這很重要,因爲生成的屬性中的r_version_label是可重複的字段)。
我試圖做到這一點使用以下DQL: 選擇 「r_version_label」, 「i_chronicle_id」, 「i_position」, 「r_modify_date」, 「主題」, 「標題」, 「r_object_type」, 「OBJECT_NAME」,「r_object_id 「從 」dm_document「,其中文件夾(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_RANGE,SQL_DEF_RESULT_SET和FETCH_ALL_RESULTS而不是RETURN_TOP - 但它們的N也是行。
所以,現在我看到了唯一的方法來做到這一點。我將使用以下DQL: 從「dm_document」中選擇「r_version_label」,「i_chronicle_id」,「i_position」,「r_modify_date」,「subject」,「title」,「r_object_type」,「object_name」,「r_object_id」 (ID( '0cde75d180000107'))和 「r_object_type」 通過 「r_modify_date」 ASC = 'dm_document' 順序, 「i_position」 DESC ENABLE(OPTIMIZE_TOP,RETURN_TOP)
並且在處理結果我的應用程序將只首先使用N個返回的對象。希望「OPTIMIZE_TOP」將讀取我不會使用的對象的時間減到最少。我的數據庫管理系統是MSSQL,而且DQL Reference說「OPTIMIZE_TOP」確實對MSSQL有效。
也許有人可以提出更好的解決方案?
我不能,不幸好吃 - 我的任務需要確切的「r_modify_date asc,i_position desc」排序。作爲ORDER BY序列的第一個成員的「r_object_id」是不可接受的。 – KellyLynch
「r_modify_date asc,r_object_id,i_position desc」可以接受嗎? –