Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 11 Лекция 1 (16).doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
120.32 Кб
Скачать

16.4.2. Использование tQuery.

Хотя при доступе к таблицам базы данных может использоваться два компонента типа "набор данных" – Ttable и TQuery, для доступа к удаленным данным рекомендуется использовать комнонент TQuery.

ПРИМЕЧАНИЕ. Компонент TStoredProc используется только для работы с вызываемыми процедурами и не применяется для работы с процедурами выбора, которые также могут возвращать наборы данных. Для работы с процедурами выбора также используется компонент TQuery.

Предпочтительность использования TQuery при доступе к удаленным данным определяется следующими причинами:

  • при доступе к табличным данным компонент TTable считывает все записи удаленной таблицы, в то время как TQuery – ровно столько, сколько нужно для текущих целей визуализации, например, для заполнения сетки TDBGrid; при доступе к таблицам большого объема использование ТТаblе может привести к существенным временным задержкам;

  • компоненты ТТаblе и TQuery имеют разную природу: ТТаblе ориентирован на навигационный метод доступа к данным, что более характерно для работы с локальными СУБД; TQuery ориентирован на работу с множествами записей, что характерно при доступе к удаленным базам данных в архитектуре "клиент-сервер"; ТТаblе позволяет обратиться к одной таблице базы данных, TQuery – к результатам выполнения запроса одновременно к нескольким таблицам базы данных; соответственно, подтверждение изменений данных в ТТаblе осуществляется для каждой записи, что существенно увеличивает сетевой трафик; изменение данных при использовании TQuery может производиться сразу над множеством записей с использованием операторов INSERT, UPDATE, DELETE;

  • при помощи компонента TQuery можно выполнять разнообразные SQL-операторы, как возвращающие НД (SELECT), так и не возвращающие его (INSERT, и т.д.).

16.4.3. Перенос тяжести вычислительной работы на сервер.

При работе с удаленными базами данных следует стремиться перенести всю тяжесть вычислительной работы на сервер, по возможности оставив приложению клиента лишь работу по реализации интерфейса с пользователем, отсылки запросов к серверу и интерпретации полученных от него данных.

Не надо обращаться к серверу с запросом необоснованно большого объема данных, на которые приходится накладывать фильтры в самом клиентском приложении.

Следует максимально использовать возможности сервера, памятуя о том, что он может выполнять большинство требований приложения быстрее и оптимальнее и, кроме того, серверу не нужно пересылать данные самому себе по сети.

Реализуйте ограничения на значения вводимых пользователем данных при помощи аппарата ограничений базы данных (CONSTRAINTS), а ссылочную целостность – при помощи триггеров.

Запросы, требующие при своем выполнении ветвящихся или циклических алгоритмов, а также всевозможные вычисления значений, основанные на текущих данных из базы данных, реализуйте при помощи хранимых процедур.

Бизнес-правила, связанные с транзакционными изменениями ряда таблиц, реализуйте при помощи триггеров.

Получайте уникальные значения числовых полей при помощи генераторов.

Повторяющиеся действия, которые могут разделяться различными приложениями и использоваться в SQL-операторах, реализуйте при помощи функций, определенных пользователем (UDF).

Перенос тяжести вычислительной работы на сервер, во-первых, убыстряет работу клиентского приложения, а во-вторых, минимизирует возможность возникновения ошибок.