Использование 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, и т.д.).