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

Минимизация соединения с базой данных.

Оптимизация клиентских приложений.

От того, каким образом организуется доступ к удаленной базе данных, во многом зависит, насколько эффективно будет работать с ней данное приложение. Далее будем считать, что клиентские приложения написаны в среде быстрой разработки приложений Delphi или CBilder.

Для соединения с удаленной базой данных в клиентских Delphi-приложениях используется компонент TDatabase. Он служит для:

· создания постоянного соединения с базой данных;

· создания локального псевдонима базы данных;

· изменения параметров соединения, установленных для псевдонима базы данных (в утилите BDE Administrator);

· управления транзакциями.

Если не использовать компонент TDatabase, то соединение с базой данных может, в принципе, осуществлять каждый компонент типа "набор данных" (TTable, TQuery, TStoredProc). Однако следует помнить, что каждое соединение с базой данных потребляет системные ресурсы и их чрезмерный расход может сказаться на эффективности доступа к базе данных. Кроме того, при соединении с удаленной базой данных "напрямую", из компонентов типа "набор данных", невозможно изменять предустановленные параметры соединения.

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

Хотя при доступе к таблицам базы данных может использоваться два компонента типа "набор данных" – 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, и т.д.).