Форум программистов, компьютерный форум, киберфорум
Наши страницы
Dinkin
Войти
Регистрация
Восстановить пароль
Рейтинг: 5.00. Голосов: 3.

MySQL и RAD XE

Запись от Dinkin размещена 06.07.2015 в 17:16
Обновил(-а) Dinkin 25.12.2015 в 00:25
Метки mysql

Хотел бы описать процесс подключения к MySQL базе,через компоненты "FireDAC", что входят в стандартный набор XE7

Создаем форму и кидаем на нее следующие компоненты:

FDConnection1
FDPhysMySQLDriverLink1
FDGUIxWaitCursor1
FDQuery1

а так же поля для ввода информации для подключения (я выбрал TLabeledEdit)



Далее связываю компоненты



и



Теперь важный атрибут. Необходим файл "libmySQL.dll". К компонентам по умолчанию он не дается, я взял его из стандартной библиотеки апача (прилагаю с архивом). Данный файл необходимо поместить один раз в корне папки с проектом.


Теперь код кнопки подключения к самой базе

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm2::Button1Click(TObject *Sender)
{
 
  FDConnection1->Params->Values["Server"]     =LabeledEdit1->Text;
  FDConnection1->Params->Values["Database"]   =LabeledEdit2->Text;
  FDConnection1->Params->Values["User_Name"]  =LabeledEdit3->Text;
  FDConnection1->Params->Values["Password"]   =LabeledEdit4->Text;
  FDConnection1->Params->Values["CharacterSet"]=LabeledEdit5->Text;
  FDPhysMySQLDriverLink1->VendorLib    =LabeledEdit6->Text;
 
  FDConnection1->Connected=true ;
  if (FDConnection1->Connected)Label1->Caption="Есть контакт" ;
  else                                  Label1->Caption="Нет контакта";
}
//---------------------------------------------------------------------------
Ну и простой запрос на изменение данных в таблице users

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void __fastcall TForm2::Button2Click(TObject *Sender)
{
AnsiString st="UPDATE `users` SET `name`= '55555555' WHERE `id` = 29";
 
try
{
    FDQuery1->SQL->Clear();
    FDQuery1->SQL->Add(st);
    FDQuery1->ExecSQL();
}
 catch(...)
   {
       ShowMessage("her");
   }
}
//---------------------------------------------------------------------------

Подключение к БД и и получение запроса во время дизайна
Миниатюры
Нажмите на изображение для увеличения
Название: db1.png
Просмотров: 581
Размер:	10.5 Кб
ID:	3213   Нажмите на изображение для увеличения
Название: db2.png
Просмотров: 547
Размер:	37.5 Кб
ID:	3214   Нажмите на изображение для увеличения
Название: db3.png
Просмотров: 537
Размер:	33.0 Кб
ID:	3215  

Нажмите на изображение для увеличения
Название: db4.png
Просмотров: 306
Размер:	52.9 Кб
ID:	3219   Нажмите на изображение для увеличения
Название: db5.png
Просмотров: 142
Размер:	57.7 Кб
ID:	3220  
Вложения
Тип файла: 7z libmySQL.7z (623.2 Кб, 92 просмотров)
Размещено в Без категории
Просмотров 1414 Комментарии 7
Всего комментариев 7
Комментарии
  1. Старый комментарий
    Аватар для Avazart
    1. Так понимаю ничего за собой не тянит кроме клиентской либы?
    2. Доступно ли VCL или это только для FMX ?
    3.
    C++
    1
    
    AnsiString st="UPDATE `users` SET `name`= '55555555' WHERE `id` = 29";
    Почему AnsiString ?
    4. А что во время дизайна не поддерживает подключение к БД?
    Запись от Avazart размещена 11.07.2015 в 22:29 Avazart вне форума
    Обновил(-а) Avazart 11.07.2015 в 22:32
  2. Старый комментарий
    Аватар для Dinkin
    1) Все верно.
    2) Да доступно. В комплекте более 20 компонентов (как визуальных, так и не визуальных)
    3) Это просто как пример. Но на форуме поддержки данной библиотеки утверждают что достаточно изначально отстроить связь компонентов, что в итоге позволит максимум уменьшить длину запросов, обходясь только минимальными атрибутами (необходимыми для запроса), при этом компонент будет сам подставлять необходимое. В связи с этим значительно возрастет скорость выполнения операций.
    PS тех поддержка пользователей осуществляется только при предоставлении кода лицензии.
    4) Да возможно, добавил скрины
    Запись от Dinkin размещена 11.07.2015 в 23:46 Dinkin вне форума
    Обновил(-а) Dinkin 14.07.2015 в 19:05
  3. Старый комментарий
    Аватар для Avazart
    Спасибо!
    Запись от Avazart размещена 14.07.2015 в 18:52 Avazart вне форума
  4. Старый комментарий
    Аватар для Почтальон
    Спасибо большое за лаконичный мануал
    Запись от Почтальон размещена 09.12.2016 в 10:06 Почтальон вне форума
  5. Старый комментарий
    А подключение возможно только при локальном подключенеии, или при глобальном тоже подключится?
    А то у меня выдаёт can't connect to mysql server on 'localhost' (10061)
    Запись от Dr.Xank размещена 07.12.2017 в 19:39 Dr.Xank вне форума
  6. Старый комментарий
    Аватар для Dinkin
    При любом, главное что бы сететь позволяла и политики безопастности и БЫЛ ВКЛЮЧЕН сам MySQL .
    Запись от Dinkin размещена 07.12.2017 в 19:56 Dinkin вне форума
  7. Старый комментарий
    Спасибо за пример. Свою ошибку нашёл.)))
    Запись от Dr.Xank размещена 02.01.2019 в 15:40 Dr.Xank вне форума
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru