Delphi. MySQL. Считаем сумму заказа через Delphi и MySQL

Есть таблицы. Далее будут эволюционировать по мере написания поста.

39

Требуется посчитать сумму заказа. Самый простой способ, сделать это через MySQL

Вариант посложнее, через Delphi. Continue reading

MySQL. 2 способа пересечения множеств и объединения таблиц

Есть следующая структура

36

Нужно составить вот такую таблицу

37

Часть данных у нас в одной таблице, часть данных в другой. Как получить это за один запрос?

1 способ (спасибо Денису Зубову из Самары)

2 способ

На выходе получим

38

Но есть одна проблема – поля с одинаковыми названиями, тогда делаем так…

либо так…

 

Delphi. MySQL. Пишем в DECIMAL поле и читаем из него.

Есть Decimal поле для цены в одном из проектов. Есть на форме 2 spinEdit, рубли и копейки соответственно.

33

Чтение из базы

Получение дробной части из Float(Real)

Получение целой и дробной частей для загрузки на форму

Запись в базу

 

MySQL. Удаление записей с истекшим сроком давности

в базе

27

код, пример из проекта, допустим нам нужно удалить записи со сроком давности > 1 минуты

 

MySQL. Insert in table with foreign-key

Шпаргалочка. Допустим sessions_id это foreign key другой таблицы. Вот как можно вставить в таблицу с foreign key

 

Delphi. Делаем простой DBPaginator на примере MySQL

50

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

47

48

Проект выглядит примерно так…

46

Исходники

385_FireDacRowsFetching

Описание кода

Как видно здесь 2 FDQuery ,один из них основной, другой просто считает число записей в таблице. SQL запрос основного FDQuery должен быть без точки с запятой на конце, так как мы должны добавить инструкцию LIMIT StartRow, CountOfRows к основному запросу. Я здесь не делал акцент на подключении, а просто забил параметры подключения в FDConnection и подключил Queries к FDConnection визуально, хотя по хорошему, надо подключать их в коде. Но хотелось сосредоточиться на другом, именно на паджинаторе. Итак, основная работа у нас происходит в uDBPagination.

Требования к запросу SQL

В принципе он может быть любым SELECTом, главное, чтобы в его конец можно было добавить инструкцию LIMIT StartRow, CountOfRows 

В моем случае это был

Функционал 

-загрузить первую страницу

-загрузить следующую страницу

-загрузить предыдущую страницу

Далее описание юнитов Continue reading

Delphi. MySQL. Реализуем поиск вхождений, регистрозависимый поиск, поиск точной фразы.

7

Сделать это довольно просто, опираясь на запросы SQL, которые я рассмотрел в предыдущем посте. Вот что у нас получится

2

А если поиск ничего не обнаружил, получим следующее

3

Итак, оформим такую панель поиска

1

Всего будет 3 типа поиска

-Поиск вхождений

-Точное соответствие

-Регистронезависимый поиск

Будем собирать ID записей, при нажатии на “Найти” будем ставить курсор на первую запись в найденной выборке, либо сообщать, что ничего не найдено.

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

Перво-наперво создадим запросы, по аналогии с тем, как это мы делали в прошлом посте

Поиск вхождений

Continue reading

MySQL. Регистрозависимость поиска и поиск вхождений

Пусть у нас есть 2 строки в базе mysql

106

Регистро зависимый поиск

107

Регистро Независимый поиск

108

Поиск вхождений (регистро независимый)

110

Delphi. Рекурсивное отражение файловой директории в базе данных

103

Данный алгоритм использует рекурсивный обход директорий при помощи System.IOUtils для того, чтобы отразить файловую структуру в базе данных. Понадобилась мне такая штука, решил вывести это в отдельный пост. Вот что у нас получится.

102

А вот как мы это сделали

uses

Собственно основная рекурсивная функция, добавляющая файлы и папки в базу Continue reading