Как работать с базами MySQL из приложений на Delphi

Работать с MySQL так же просто как и с другими базами данных, отличие лишь в организации соединения с сетевыми БД. Я использую для этого компоненты MySQL Data Access Components (MyDAC) for Delphi, а именно версию DevArt MyDAC 8.4.11 Pro Full. Компоненты есть практически для каждой версии Delphi — от шестой до современных продуктов Embarcadero — Delphi XE 2 и т.д

Они легко устанавливаются и после установки мы можем их увидеть на вкладке MyDAC.  Выбираем такой набор компонентов для работы с таблицами: MyConnection — обеспечивает соединение с базой данных, MyQuery — управляет SQL запросами к серверным таблицам, MyDataSource — получает набор данных, DBGrid — отображает набор данных. Т.е. устанавливаем классическую связку DBGrid1.DataSource:=MyDataSource1,  MyDataSource1.Dataset:=MyQuery1, MyQuery1.Connection:=MyConnection1

В графике получается вот такая картина:

formWithMyDAC

Настройка соединения с сервером производится в окошке Connect, которое появляется когда вы вносите данные в поля Username,Server,Password или Database компонента MyConnection1.

connect

Соединение устанавливается переводом свойства MyConnection1.Connected в True. Можно делать это либо программно, либо в инспекторе объектов. Когда настройки будут созданы, они появятся в строке MyConnection1.ConnectString.
Обычно настройки сервера я делаю программно, как в примере ниже (вместо параметров написал их название). Обработчик кнопки для выбора данных из таблицы такой:

procedure TForm1.Button1Click(Sender: TObject);
begin
MyConnection1.Disconnect;
MyConnection1.Close;
MyConnection1.ConnectString:='User ID=ПОЛЬЗОВАТЕЛЬ;Password=ПАРОЛЬ;Data Source=СЕРВЕР;Database=БАЗАДАННЫХ';
MyConnection1.Connect;
MyConnection1.Open;
MyQuery1.Close;
MyQuery1.SQL.Clear;
MyQuery1.SQL.add('SELECT * FROM mails'); //выборка из таблицы mails
MyQuery1.Open;
end;

После чего DBGrid заполнится набором данных.

Вам понравиться

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

This blog is kept spam free by WP-SpamFree.