Delphi. FireDAC добавление параметров в запрос. Шпаргалочка

64

Добавляем параметр в FDQuery,

Допустим у нас есть запрос, скажем такой

И нам нужно добавить параметр users_id в FDQuery.

Визуальный подход

Вообще говоря, если вставить этот запрос в визуальный редактор FDQuery, то параметр обнаружится сам

63

Единственное, надо будет указать его DataType в соответствии с базой

Программный подход

Continue reading

Delphi. FireDAC. Проверка на NULL и запись NULL значений в базу данных

Проверка на NULL

Запись NULL значений, согласно инструкции

 

 

Delphi. UniGUI. Правильная архитектура приложения на примере создания соединения с базой данных MySQL с помощью FireDAC

44

Интересное обсуждение у меня сложилось на форуме UniGUI, когда я не смог передать ссылку на объект так как я это делаю обычно, в Delphi (через свойства или через параметр Sender). Вот ссылка на само обсуждение

http://forums.unigui.com/index.php?/topic/7556-how-to-give-correct-link-to-created-instance

Итак, в UniGUI есть 3 типа объектов

UniServer Module ( создается 1 раз и работает все время, пока работает приложение)

http://www.unigui.com/doc/online_help/server_module.htm

UniMainModule (создается 1 раз и работает в течение сессии – о том, что такое сессия в UniGUI можно узнать в другом моем посте – и это не тоже самое, что сессия в PHP )

http://www.unigui.com/doc/online_help/main_module.htm

Все остальное – работает от создания до закрытия. Например формы. Создали – она держится в памяти – закрыли – уносит все данные с собой. В этом смысле UniMainModule это вроде как глобальный юнит, к которому можно обратиться, например как UniMainModule.doSomething, и также к UniServerModule.doSomething.

Как выяснилось на форуме, данные форм лучше хранить в зеркальных структурах в UniMainModule, так как просто этот объект живет дольше и не убивается при закрытии формы.

Разберем пример соединения с базой данных

Continue reading

FireDAC. Самый простой способ подключиться

В данной статье Вы узнаете о самом простом способе подключиться к БД на примере MySQL, а также о том как создать подключение с обработкой ошибок (во второй части статьи).

Как быстро и просто подключиться к MySQL при помощи FireDAC?

FireDAC – очень мощная и большая библиотека, одних только видов подключений в ней три – постоянное (persistent), частное (private) и временное (temporary). В данной статье, не погружаясь в детали, посмотрим как можно подключиться к FireDAC самым простым способом.

Собственно, цель добиться вот такого простого результата простым, не синхрофазотронным путём.

41

Continue reading

FireDAC. Динамический вывод датасетов в отдельных потоках

Продолжаю практиковаться с потоками в FireDAC. Расширим немного, приложение описанное ранее. Теперь приложение будет уметь не только записывать в базу, но и выводить датасеты в отдельных потоках.

В данной статье подробно опишу вывод датасетов в отдельных потоках на главную форму. В документации сказано, что работа с потоками безопасна, если внутри каждого потока создавать, например, FDConnection, FDQuery, DataSource и синхронизировать вывод на главную форму, например в DBGrid. Что же, проделаем это. Результат получится примерно таким.

30

По нажатию копки будет создаваться поток, внутри которого будут создаваться FDConnection, FDQuery, DataSource и данные будут выводиться на главную форму с синхронизацией с главным потоком. Continue reading

FireDAC. Добавление 1000 записей в отдельном потоке

В данной статье попрактикуемся работать c потоками в технологии FireDAC. В переводе документации мы уже познакомились с теорией, здесь же будет небольшой практический пример. Используем также, технику ArrayDML, позволяющую создать большое число записей с минимальными затратами, описанную ранее. Вот что у нас получится.

Если кратко, в документации советуется создавать FDConnection и, например FDQuery или любой другой компонент, внутри потока для каждого Dataset или для каждой отдельной операции с данными, насколько я понял – вставки, запросов, обновления и так далее.

В данном примере будем создавать в отдельном потоке FDConnection и FDQuery для вставки 1000 записей. Цель – научиться и закрепить навыки.

19

20 Continue reading

FireDAC. Dynamic PrivateConnection. Редактирование параметров

Продолжаем работать с FireDAC. В данной статье попробуем установить private соединение с БД динамически и дать возможность изменять параметры на ходу. Вот какая программа у нас получится.

9

В левой части у нас Memo, которое отражает параметры ConnectionDefs. О том, что такое ConnectionDefs, я писал в предыдущем посте. Можно эти параметры редактировать и нажимать на SaveParams, для того, чтобы изменения параметров затронули соответствующее определение соединения – ConnectionDef.

Мы научимся создавать Private соединение динамически и изменять его параметры также динамически. И в принципе, разберемся с основными моментами по PrivateConnection в FireDAC. Continue reading

FireDAC. Работа с ConnectionDefs

В данной статье посмотрим как добавлять, редактировать, удалять ConnectionDefs в технологии FireDAC. Где это может быть полезно? При создании,  редактировании соединений. Private connections полностью опираются на ConnectionDefs. Вот как будет выглядеть программа.

5

Что такое ConnectionDefs?

Это наборы параметров соединений, выглядят они примерно так…

6

Continue reading

FireDAC. Private соединение к БД MySQL

В других постах мы говорили о разных типах соединений, но здесь поговорим именно о Private соединении. Почему именно Private? При Persistent у нас все данные на подключение хранятся в файлах, что не есть хорошо, в Private – все основные данные хранятся в памяти программы и доступны только ей. В принципе, для большинства программ – это рабочий вариант. Persistent же хорош для серверной части. Но это чисто мое личное мнение из накопившихся данных на сегодня.

Итак, добавим следующие компоненты FDConnection и FDManager

14

Continue reading

FireDAC.MySQL. Как изменить кодировку при русских символах в БД?

Столкнулся с простой и популярной проблемой. При отображении данных из БД MySQL русские символы отображались вот так

11

 

Лечится это просто – выставлением Charset в FDConnection либо на utf-8 либо на cp1251 Continue reading