0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 7
1
MySQL

Код инициализации Firedac

10.12.2019, 15:42. Показов 3448. Ответов 2

Author24 — интернет-сервис помощи студентам
Здравствуйте, столкнулся с такой проблемой:
Подключаю базу через Firedac по сети основная проблема не могу понять как записать параметры подключения в коде.
чтение мануалов не помогло или уже мозг кипит и не соображаю.

сервер будет динамическим и будет указываться пользователем записываться в конфиг и потом подгружаться по мере инициализации запросов.
То есть очистить запрос -> ввести новые данные запроса SQL -> установить соединение с сервером MySQL -> отправить запрос ->получить ответ -> закрыть соединение;

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure TDataModule1.SqlDriver;
 begin
      DataMod.DataModule1.FDPhysMySQLDriverLink1.DriverID := 'MySQL';
      DataMod.DataModule1.FDPhysMySQLDriverLink1.VendorLib := 'libmysql_x86.dll';
 end;
 
procedure TDatamodule1.ServerConnect;
begin
  DataMod.DataModule1.FDConnection1.DriverName := 'MySQL';
  DataMod.DataModule1.FDConnection1.Params.DriverID := 'MySQL';
  DataMod.DataModule1.FDConnection1.Params.Password := 'extuser';
  DataMod.DataModule1.FDConnection1.Params.UserName := 'extuser';
  DataMod.DataModule1.FDConnection1.Params.Database := 'bizcom';
  DataMod.DataModule1.FDConnection1.Params.Add('server:=192.168.100.40');
  DataMod.DataModule1.FDConnection1.Params.Add('port:=3306');
  DataMod.DataModule1.FDConnection1.Connected := true;
 
end;
Если соединение настроить кликами подключение устанавливается.


Delphi
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//Запись адреса в конфиг (отладка)
procedure TForm1.Button1Click(Sender: TObject);
var adr : string;
begin
CorrectList(0, adr);
end;
 
//Запуск (отладка)
procedure TForm1.FormCreate(Sender: TObject);
begin
 SqlAdress;
end;
 
//Загрузка или создание конфига.
procedure TForm1.SqlAdress;
var
SqlServ: string;
Sconf : TextFile;
begin
AssignFile(SConf, 'SqlServer');
if FileExists('SqlServer') then   //Проверяем наличие файла с адресом сервера SQL
begin                       //Условие при наличии файла
    Reset(SConf);
    //ShowMessage('File is oppen to read');
    Readln(SConf, SqlServ);
    CloseFile(SConf);
    Edit1.Text := SqlServ;
end
else
begin                       //условие при отсутствии файла
      //ShowMessage('File not found');
      ReWrite(SConf);
      Writeln(SConf);    //Адрес сервера
      Writeln(SConf);    //порт
      Writeln(SConf);    //логин пользователя
      Writeln(SConf);    //пароль пароль (обдумать)
      Writeln(SConf);    //разрядность ОС
      CloseFile(SConf);
     // if FileExists('SqlServer') then ShowMessage('File file is created');
 
end;
 
end;
 
//Вход в базу под логином техника с возможностью создавать и редактировать записи
procedure TForm1.login;
begin
 
end;
 
//Просмотр отчета по сервису без возможности редактировать
procedure TForm1.FreeView;
begin
 
end;
 
//Выполнение запроса
procedure TForm1.qts;
begin
 
end;
 
// Установка соединения с базой (тестовое)
procedure TForm1.Button2Click(Sender: TObject);
begin
DataMod.DataModule1.SqlDriver;
DataMod.DataModule1.ServerConnect;
end;
 
//Вход в базу
procedure TForm1.connect;
begin
 
end;
 
//Процедура редактирования конфига
//CopyPaste  https://********************/showthread.php?t=103995  Miha85193
procedure TForm1.CorrectList(const listNo : integer; listData : string);
var
  List_1: TStringList;
begin
  List_1 := TStringList.Create;
  List_1.LoadFromFile('SqlServer');
  List_1.Strings[listNo] := listData; // строки нумеруются с нуля
  List_1.SaveToFile('SqlServer');
  List_1.Free;
end;
Ещё момент на несколько секунд зависает программа когда происходит соединение ( не знаю как решить)

Добавлено через 5 минут
Забыл добавить:

[FireDAC][Phys][MySQL] Can't connect to MySQL server on 'localhost' (10061)

вместо того что мне надо localhost
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2019, 15:42
Ответы с готовыми решениями:

GСС не создает код для инициализации переменных
Вместо этого, он их засовывает в секцию .data main.c: static volatile int a = 0xb1; static...

Код инициализации OpenGL в составе библиотеки SFML 2.1
Подскажите пожалуйста код инициализации OpenGL(OpenGL.hpp) в составе библиотеки SFML 2.1.

Acer 5750G (P5WE0 LA-6901p) Нет инициализации, пост код 22
Всем привет. Acer 5750G (P5WE0 LA-6901p) пост код 22. Память-проц-хаб - менял, видик дискретный...

Работа с объектами. Код вылетает сразу после инициализации элементов массива
Код вылетает сразу после инициализации элементов массива. Не могу засечь в чем проблема. Не...

2
3582 / 2192 / 692
Регистрация: 29.05.2013
Сообщений: 9,358
11.12.2019, 01:24 2
Так попробуйте:
Delphi
1
2
 DataMod.DataModule1.FDConnection1.Params.Server :='192.168.100.40';
 DataMod.DataModule1.FDConnection1.Params.Port :=3306;
0
0 / 0 / 0
Регистрация: 14.02.2016
Сообщений: 7
11.12.2019, 07:00  [ТС] 3
Пробовал, если

Delphi
1
DataMod.DataModule1.FDConnection1.DriverName := 'MySQL';
Не заполнить в инспекторе объекта

Эти поля все время выдают ошибку, и их нет в авто подстановке кода уже пробовал.

Добавлено через 28 минут
Спасибо "qwertehok" за ответ на тему "FDConnection уменьшить время ожидания подключения"



Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  cs:=TFDConnection.Create(nil);
  cs.Connected:=False;
  cs.Params.Clear;
  cs.Params.Values['Login Prompt']:='False';
  cs.Params.Values['DriverID']:='SQLite';
  cs.Params.Values['DriverName']:='SQLite';
  cs.Params.Values['Database']:=ExtractFilePath(ParamStr(0))+'shop_backup.sqlite';
  cs.Params.Values['lockingmode']:='lmExclusive';
  cs.Params.Values['JournalMode']:='jmMemory';
  cs.Params.Values['Synchronous']:='snNormal';
  cs.Params.Values['BusyTimeout']:='5000';
  cs.Params.Values['SharedCache']:='True';
  cs.Params.Values['CacheSize']:='100000';
  cs.UpdateOptions.LockWait:=true;
  cs.TxOptions.Isolation:=xiSerializible;
0
11.12.2019, 07:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2019, 07:00
Помогаю со студенческими работами здесь

Параметры FireDAC
Доброго дня. Не получается программно присвоить значения параметров в FireDAC. Выдает ошибку. q...

FireDac и MySQL
Всем добрый день. Поясните пожалуйста один момент. 1. DB: MySQL InnoDB 2. Подключение через...

FireMonkey и FireDac
Всем снова Здравствуйте Уважаемые программисты и знающие люди! Снова возникли вопросы. Коннект к...

Firedac libmysql
Запускаю приложение. Работаю, все нормально. После того как начинаю закрывать приложение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru