Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Функция с рекордсетом / 7 сообщений из 7, страница 1 из 1
04.10.2019, 09:54
    #39871485
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция с рекордсетом
Всем привет!

Пытаюсь создать функцию на сервере MySql
Внутри неё мне нужно получить выборку из запроса и сделать по ней цикл
Будь я в Access, я бы сделал так:
Dim rst as Recordset
Код: vbnet
1.
2.
3.
4.
Set rst = CodeDb.OpenRecordset(запрос)
While Not rst.EOF
    rst.MoveNext
Wend


Можно ли такое вытворять на MySql?
...
Рейтинг: 0 / 0
04.10.2019, 11:49
    #39871556
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция с рекордсетом
НастаевПытаюсь создать функцию на сервере MySql
Внутри неё мне нужно получить выборку из запроса и сделать по ней циклЭто делается курсором.
https://dev.mysql.com/doc/refman/8.0/en/cursors.html

Вот только в подавляющем большинстве случаев использования курсоров оказывается, что они избыточны. Так что рекомендую описать всю задачу. Что должна сделать функция? может, итерации-то и не нужны?
...
Рейтинг: 0 / 0
04.10.2019, 12:06
    #39871576
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция с рекордсетом
Akina, может и не нужны. Можно и простым Select-ом обойтись с вложенными запросами. Но я думал. что будет быстрее, через Recordset. Попробую объяснить задачу...

Я несколько раз покупал товар. Это заносится в таблицу "Заявки" в поля "Товар" и "кол-во". В запросе я ставлю фильтр на нужный мне товар и вывожу сумму с накоплением в каждой строке. Мне нужно выдать строку, сумма накопления в которой будет равна той, что мне нужно. Та вот для того, чтобы вывести сумму с накоплением, я делаю вложенный запрос. Но я решил без этого обойтись, дабы ускорить процесс. В Recordset-е можно просто сделать цикл и накапливать сумму в переменной. В нужный момент я спрыгиваю с цикла и возвращаю результат.
Надеюсь, что не слишком запутанно.
...
Рейтинг: 0 / 0
04.10.2019, 12:34
    #39871604
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция с рекордсетом
В запросе тоже можно использовать переменные для получения суммы с накоплением.
А если версия сервера восьмая - так там есть оконные функции, которые делают это вообще по щелчку пальцев.
...
Рейтинг: 0 / 0
04.10.2019, 12:45
    #39871612
Настаев
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция с рекордсетом
Спс, буду разбираться. Похоже, что мне ещё много литературы нужно перечитать, пока я догоню синтакс MySql. После VBA это сложно.
...
Рейтинг: 0 / 0
04.10.2019, 12:52
    #39871618
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция с рекордсетом
НастаевПосле VBA это сложно.Синтаксис - фигня. Самое сложное - перестать мыслить итерациями и начать мыслить массивами.
...
Рейтинг: 0 / 0
04.10.2019, 16:07
    #39871743
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Функция с рекордсетом
Настаевсинтакс MySql. После VBA это сложно.это просто. не надо народ пугать.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Функция с рекордсетом / 7 сообщений из 7, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]