Я использую Documentum Developer Edition 6.6.Мне нужно (используя DFS) выполнить следующее выражение DQL
, выбрать "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_modify_date" asc, "i_position" desc
Но мне нужны только первые N изобъекты, которые возвращает Select.Я повторяю: N объектов, а не строк (это важно, потому что r_version_label в результирующих атрибутах является повторяемым полем).
Я попытался сделать это, используя следующий DQL: выберите «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 («0cde75d1800007»)) и «r_object_type" = 'dm_document'by "r_modify_date" asc, "i_position" desc ENABLE (OPTIMIZE_TOP, RETURN_TOP)
Но я видел: возвращенными были строки, а не объекты.Это потому, что мой Сервер Documentum имеет параметр по умолчанию 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: выберите «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_modify_date" asc, "i_position" desc ENABLE (OPTIMIZE_TOP, RETURN_TOP)
И при обработке результата мое приложение будет использовать только первое Nиз возвращенных предметов.Надеюсь, что «OPTIMIZE_TOP» сократит время на чтение объектов, которые я не буду использовать.Моя СУБД - MSSQL, а в справочнике по DQL сказано, что «OPTIMIZE_TOP» действительно влияет на MSSQL.
Может быть, кто-то может предложить лучшее решение?