- •Содержание
- •Repository
- •Средства тестирования и анализа
- •Утилита Workbench Organizer
- •Резюме
- •Резюме
- •Резюме
- •Глава 6.Моделирование сущностей и связей
- •Глава 10. Подпрограммы и функции
- •Создание функций увеличения возможности многократного использования текстов
- •Функциональные группы и функции
- •Чтение единственного элемента таблицы
- •Извлечение единственного поля
- •Получение статистической информации
- •Упорядочение результатов запроса
- •Динамическая выборка данных
- •Использование составных критериев выборки Select-Options
- •Динамическое присвоение имен таблиц
- •Вложенные циклы select
- •Представления, определенные в АВАР/4 Dictionary
- •Размер внутренней таблицы
- •Сортировка элементов внутренней таблицы
- •Вставка нескольких строк
- •Изменение таблиц базы данных с помощью команды update
- •Изменение отдельного элемента
- •Изменение нескольких элементов
- •Удаление элементов таблицы базы данных с помощью команды delete
- •Динамическое задание имен таблиц
- •Резюме
- •Временное хранение
- •Пропуск объектов
- •Использование локальных имен для объектов памяти
- •Очистка содержимого объектов памяти
- •Создание отчета
- •Сравнение двух отчетов, разработанных с использованием разных средств
- •Создание программного текста
- •Обработка данных с помощью событий get
- •Что применять: команду select или Logical Databases
- •Задание составных критериев выборки
- •Порядок обработки событий get
- •Работа с несколькими таблицами
- •Глава 16. Пользовательский интерфейс для создания отчетов
- •Определение параметров для экрана выбора
- •События экрана выбора
- •Повышение производительности программы
- •Резюме
- •Детализация объектов
- •Двойной щелчок мышью: событие at line-selection
- •Определение статуса графического интерфейса
- •Проектирование инструментальной линейки приложения
- •Изменение стандартной инструментальной линейки
- •Положение курсора и скрытая информация
- •Команда hide
- •Команда get cursor
- •Фреймы (кадры)
- •Глава 18. Выполнение программы-отчета
- •Вычисление даты в варианте
- •Описание учебной задачи
- •Создание диалоговой программы
- •Создание экрана
- •Задание фрейма с заголовком
- •Работа с сообщениями
- •Вывод сообщения из программы
- •Логический рабочий блок (LUW)
- •Механизм блокировки системы R/3
- •Глава 22. Расширенные функции графического интерфейса
- •Глава 25. Автоматическая генерация программы
- •Связь между программами
- •Вызов удаленной функции
- •Резюме
- •Удаление связей объектов
- •Резюме
- •Приложения
- •Использование Logical Databases при работе с утилитой АВАР/4 Query
- •Простейшие запросы
- •Получение перечня программных элементов
- •Создание заданий (Tasks) и запросы на изменения (Change Requests)
132 |
Глава 11 |
||
|
|
|
|
Упорядочение результатов запроса
В самом общем случае оператор select извлекает набор данных, однако средства СУБД не предусматривают специального упорядочения получаемого набора. АВАР/4 обеспечивает возможность сортировки результатов запроса с помощью одного из приведенных ниже способов:
•Добавления дополнительного предложения order by в оператор select
•Сортировки внутренней таблицы, содержащей результаты запроса (см. главу 12)
Если упорядочение элементов выполняется с помощью добавления дополнения order by оператора select, то за ним должны следовать имена сортируемых полей:
Если предполагается сортировать полученный список по ключевым полям таблицы базы данных, используйте дополнение order by primary key. В приведенном выше примере это приведет к упорядочению списка клиентов в соответствии с их идентификаторами.
Динамическая выборка данных
До сих все конструкции операторов select рассматривались статически, т.е. в предположении, что известны имена таблиц или точные условия для предложения where. Однако для некоторых задач на момент написания программы неизвестно имя таблицы или точные условия в предложении where. АВАР/4 предлагает несколько способов решения этой проблемы.
Использование составных критериев выборки Select-Options
В простейшем случае известно все, кроме логической структуры условий предложения where (т.е. известны имена таблицы и полей, но неизвестен оператор сравнения). Типичным примером этого служит запрос конечного пользователя для выборки данных, сделанный до создания отчета и считывания базы данных. Средства для создания отчетов АВАР/4 имеют стандартный пользовательский интерфейс (жран выбора - selection screen), который обеспечивает задание любого критерия и условия. При работе программы заданные пользователем критерии выборки данных доступны в переменных, определенных как параметры Select-Options, которые определяют извлекаемый из базы набор данных.
Приведенная ниже программа предлагает пользователю экран для ввода критерия выборки в SelectOptions, а затем оператор Select считывает набор данных согласно заданному критерию:
Порядок задания критериев или имен в рамках Select-Options не влияет на порядок их извлечения из базы данных.
Более подробно использование средств Select-Options рассматривается в главе 16.
Динамическое присвоение имен таблиц
Допускается также динамическое присвоение имен таблиц, позволяющее каждому пользователю дать имя таблице, из которой извлекаются данные. При этом имя таблицы внутри оператора select заключается в круглые скобки и следует сразу же за параметром from:
Чтение таблиц базы данных |
135 |
|
|
|
|
Оператор select выбирает все записи таблицы bookings, удовлетворяющие условию where для всех фамилий клиентов внутренней таблицы all_customers. Отношение между двумя таблицами устанавливается с помощью предложения where customid = all_customers-id и дополнения for all entries. Другими словами, оператор select эквивалентен следующему фрагменту программы:
Обратите внимание, что дополнение appending table не переопределяет содержимое внутренней таблицы, а добавляет новые записи в ее конец.
Сравнениеразличныхтехнологийпрограммирования
У каждого метода есть свои преимущества.
Вложенные циклы select
•Простая реализация, использующая обычный оператор select
•На каждом шаге доступны все поля текущей записи таблицы. Следовательно, легко добавлять дополнительные поля (например, bookings-connicl)
•Нет неиспользуемых данных (отсутствует избыточность)
•Возможны внешние соединения, даже если они не предусмотрены в СУБД. Например, можно применять тот же самый цикл select для вывода на экран имен пользователей, не зарегистрированных на 01/01/1999
Представления, определенные в АВАР/4 Dictionary
•При извлечении больших наборов записей таблицы данный подход обеспечивает существенно более высокую производительность, чем вложенные операторы select
•Внутренняя таблица может быть использована в дальнейшем, например для сортировки записи согласно различным критериям
•Некоторые таблицы представления могут содержать неиспользуемые (избыточные) данные. В приведенном выше примере в представлении vcustbook фамилии пользователей являются избыточной информацией
•Не поддерживаются внешние соединения
•Добавление дополнительных полей требует изменений и инициализации представления Dictionary
Глава 12
Использование
внутреннихтаблиц
•Заполнение внутренней таблицы
•Как сортировать содержимое внутренней таблицы
•Чтение одной или нескольких строк
•Изменение содержимого
•Работа с промежуточными суммами