Delphi.FireDAC. Установка и закрытие соединения

Эта статья о различных способах установки соединения. Основа для этой статьи – это официальная документация.

-старая версия

-новая версия

После того как созданы ConnectionDefinitions и определены драйвера DBMS мы можем, собственно, установить соединение. Делается это несколькими способами. 

– Самый простой и явный способ это FDConnection1.Connected:=true

-Неявный способ – любое обращение к базе данных. Например, при установке свойства FDQuery.Active в True, при этом свойство FDQuery1.ResourceOptions.AutoConnect должно быть равно True, иначе выпадет исключение.

-Также можно воспользоваться одной из нескольких реализаций метода FDConnection.Open

Примеры из справки для метода FDConnection.Open

Примеры показывают разные способы подключения к БД при помощи перегруженного метода FDConnection.Open

Управление ошибками соединения

Существует 2 подхода  к управлению ошибками

-Используя метод OnError

-Используя try… except… end…

В документации отображен пример для второго случая

Управление LoginPrompt

Итак, если FDConnection1.LoginPrompt=true, тогда при неправильном пароле, например, у нас автоматически будет выскакивать вот это окошко

1

 

Есть возможность более профессионально управлять этим окошком, добавив на форму компонент FDGUIxLoginDialog и указав его в свойстве FDConnection.LoginDialog, в этом случае у нас окно будет выглядеть примерно таким образом

2

При этом можно настраивать видимые параметры в свойстве FDGUIxLoginDialog.VisibleItems, а также число попыток FDGUIxLoginDialog1.LoginRetries

Если установить FDConnection.LoginPrompt:=False, то тогда, в случае неправильного ввода пароля у нас будет работать код из обработки ошибок (см. выше), будет примерно так…

3

Закрытие соединения

Явное закрытие соединения через FDConnection.Connected:=False

Неявное, когда у объекта соединения нет открытых датасетов или активных команд, и когда свойство FDConnection.ResourceOptions.KeepConnection=False

This entry was posted in Delphi, FireDAC, Без рубрики. Bookmark the permalink.