Компонент TSession реализует текущий сеанс работы с базой данных и предназначен для управления всеми соединениями с базами данных. Компонент создается автоматически при запуске приложения. Явное использование компонента может быть продиктовано необходимостью создания многопоточных приложений баз данных. Компонент также может быть применен для управления настройками псевдонимов и драйверов.
Свойство SessionName определяет имя сеанса. Компоненты ТТablе, TQuery и TDatabase связываются с компонентом TSession через свойство Session, в котором указывается название сессии, определенной программистом. Свойства сессии, заданной компонентом TSession, действуют на все связанные с ним компоненты TDatabase.
Свойство Databases содержит массив связанных компонентов TDatabase. При помощи этого свойства можно получить доступ к активным базам данных, с которыми установлено соединение. А свойство DatabaseCount показывает количество связанных баз данных, методы GetDatabaseNames и GetAliasNames возвращают списки драйверов и псевдонимов баз данных. Метод GetAliasParams позволяет разработчику получить параметры данного псевдонима. А метод GetTableNames возвращает имена таблиц, содержащихся в обрабатываемой базе данных.
Также компонент имеет методы, позволяющие удалять псевдонимы баз данных и их драйверы, добавлять их и совершать иные действия.
3.6 Перехват исключительных ситуаций и обработка ошибок
3.6.1 Понятие исключительной ситуации. Классы исключений
Исключение, или исключительная ситуация, возникает тогда, когда нормальное выполнение приложения прерывается ошибкой или другим событием. В этом случае управление приложением передается в обработчик исключения. Под обработкой исключений понимают стандартные методы для обнаружения и обработки необычных, непредвиденных и исключительных состояний или событий. Она предоставляет формальный способ отклонить поток управления функции на участок кода, готового принять контроль над данной исключительной ситуацией и известить об этом пользователя или принять соответствующие меры. Конечно, возможно отслеживание ошибок и критических ситуаций без использования механизма обработки исключений, однако сложность и ненадежность такого подхода свидетельствуют не в его пользу.