В данном посте рассмотрим виды соединения с БД по технологии DBExpress. Технология с особенностью – однонаправленные курсоры (данные читаются только в одну сторону, в результате невозможно отобразить DBGrid, например. Но этот недостаток нивелируется кэширующими компонентами – ClientDataSet и SimpleDataSet…) Будем подключаться к серверу MySQL и одноименной базе данных MySQL Ранее уже кое-что употреблял в постах, но сейчас хочу вывести виды соединений в отдельный пост.
Как подключиться к БД по технологии DBExpress?
Итак, если систематизировать информацию, то возможные варианты подключения к БД могли бы выглядеть таким образом…
Рис. 1 Варианты подключения по технологии DBExpress
Простой вариант подключения
На рисунке выше я привожу 2 примера подключения, которые у меня успешно получились. Итак, для начала рассмотрим вариант c относительно простой комбинацией компонентов:
-SQLConnection;
-SimpleDataSet;
-DataSource;
-DBGrid или другие DataControls;
Синим цветом на рисунке отображены те поля и свойства, которые нужно заполнить, чтобы подключиться.Подробно эту схему я рассматривал в другом посте. Поэтому, здесь лишь даю ссылку.
Продвинутый вариант подключения
Под продвинутым вариантом подключения я понимаю ту схему, которая идет по нижней ветви на рисунке выше. Преимущество как минимум в том, что за счет наличия компонента ClientDataSet, можно использовать агрегатные поля, если это необходимо.
-SQLConnection;
-SQLDataSet;
-DataSetProvider;
-ClientDataSet;
-DataSource;
-DBGrid или другие DataControls;
Вот как это может выглядеть в Delphi… (результат подключения);
В чем преимущества данного подключения? Я ещё не исследовал вопрос до конца, но одно из преимуществ – возможность отображать агрегатные поля.
Теперь по шагам…
Подготовительная работа по подключению
Также нам понадобится провести подготовительную работу, а именно в Delphi указать через Data Explorer настройки нашего сервера и базы данных. Итак, жмем (View / Data Explorer)
Во всплывающем окне указываем имя подключения. Я сделал имя MyDataBaseConnection.
Далее, жмём Modify Connection
Далее, я заполнил всё следующим образом…
localhost потому что на локальном компьютере разместил ранее программу сервер MySQL, MyDataBase потому что создали ранее базу данных MyDataBase в программе MySQL WorkBench;
Пользователь, он же суперпользователь, у нас пока один root. Пароль этого пользователя masterkey
Тестируем соединение…
Основная работа по подключению (продвинутый вариант)
У SQLConnection настраиваем ConnectionName. Выбираем необходимое из списка. Либо, можно прописать всё программно.
Если программно, то можно вот так…
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
procedure TForm1.Button1Click(Sender: TObject); begin with sqlconnection1 do begin Drivername:='MySQL'; with params do begin clear; add('Hostname='+LabeledEdit1.Text); add('port='+LabeledEdit2.Text); add('User_name='+LabeledEdit3.Text); add('Password='+LabeledEdit4.Text); add('database='+LabeledEdit5.Text); end; try Connected:=true; if connected=true then statusbar1.Panels[0].Text:='Connected' else statusbar1.Panels[0].Text:='Could not connect '; except showmessage('Error'); statusbar1.Panels[0].Text:='Could not connect '; end; end; end; |
Далее, настраиваем компонент SQLDataSet – выбираем соединение, тип команды и саму команду.
Далее, настраиваем DataSetProvider, выбирая свойство DataSet
Далее, ClientDataSet, настраивая свойство DataSetProvider…
Далее, компонент DataSource, и его свойство DataSet…
И последнее, DBGrid, на вкладке Events, свойство DataSource…
Можно также, для удобства подключить DBNavigator…