MySQL. Хранимые процедуры. Простые примеры

Данная статья посвящена хранимым процедурам и функциям в MySQL.Она основана на различных источниках сети интернет.

-серия статей на mysqltutorial.org

-официальная документация mysql

и др. источники

Содержание статьи


Что такое параметры процедур?

Простейший пример с хранимой процедурой без параметров

Пример  хранимой процедуры с входными IN параметрами

Пример  хранимой процедуры с выходными OUT параметрами

Пример  хранимой процедуры с входными / выходными INOUT параметрами

Пример процедуры со множественными INOUT параметрами

Вообще говоря информации по MySQL достаточно много. Здесь я постараюсь на простых примерах разобраться как пользоваться “хранимками” в MySQL. Почти все примеры составлены самостоятельно, протестированы в консоли MySQL и клиенте Delphi. В посте про использование хранимых процедур в Delphi FireDAC мы видели следующее

Что такое параметры процедур?

В принципе это тоже самое, что и параметры функций, процедур в языках программирования. Параметры разделяют на следующие виды

IN параметры. Входящие. Это то, что мы отправляем вместе с SQL запросом. Эти параметры уходят в процедуру, процедура их обрабатывает при исполнении.

OUT параметры. Исходящие. Это что-то вроде результата. Процедура отработала и через OUT параметры мы можем получить свой результат.

INOUT параметры. Входящие и Исходящие одновременно. Их можно использовать как IN или как OUT или одновременно, например, при создании счетчика.

Простейший пример с хранимой процедурой без параметров

Разберем несколько примеров. Начнем с простого, создадим на сервере простейшую хранимую процедуру.

Добавим её на сервер через консоль

4

Теперь проверим есть ли она там на самом деле через следующую инструкцию

Да, действительно процедура добавлена и мы видим следующее

5

Теперь далее, попробуем вызвать нашу процедуру при помощи следующего кода

6

Всё Ок, на сервере процедура работает. Теперь попробуем её вызвать в клиенте Delphi таким образом.

Построим такого клиента (новое VCL приложение)

7

В свойстве FDStoredProc1.StoredProcName укажем следующее значение

На кнопке сделаем такой код

Результат

8


Пример хранимой процедуры с входными параметрами

Теперь создадим на сервере простейшую хранимую процедуру с параметрами.

Здесь мы не указали параметры типы параметров, они по умолчанию IN, то есть можно было бы написать

Добавим и проверим её…

9

Вроде все на месте, теперь пробуем в клиенте Delphi с помощью FireDAC

Немного преобразим форму, добавив пару компонент и кнопок…

11

После того как в объектном инспекторе мы выбираем свойство FDStoredProc2.StoredProcName  у нас автоматически заполняются параметры процедуры в свойстве FDStoredProc2.Params

Результат

10

В принципе множество можно было отображать и внутри хранимой процедуры. Но для демонстрации метода ExecProc я решил поступить именно таким образом, разделив выполнение процедуры и отображение множества.


Пример хранимой процедуры с выходным параметром

Тестируем в консоли…

12

Тестируем в Delphi, добавим пару компонентов на форму

13

Теперь код на кнопке call_sqrt

Результат

14

 


Пример хранимой процедуры с INOUT параметрами

Добавление и тестирование в консоли MySQL

20

 

Процедура с множественными выходными параметрами

Создадим калькулятор суммы и умножения таким образом

Результат в консоли MySQL будет таким…

21

 

Как видно, мы можем использовать несколько исходящих параметров одновременно.

This entry was posted in MySQL. Bookmark the permalink.