Sharfik писал(а):А так не пойдет?
- Код: Выделить всё
INSERT INTO TRISKS (NAME) VALUES (:pNAME) RETURNING ID;
К сожалению, не пойдет. Пример с инсертом - это просто примитивный пример для скрипта, содержащего две команды. В нашем проекте около полутора сотен хранимых процедур. В общем случае, мои запросы выглядят примерно так:
- Код: Выделить всё
Set @v1 = 5; Set @v2 = 'qwern'; Set @v3 = False; Call `prProc`(@v1, @v2, @v3, @vResult); Select @vResult;
Это тоже один из самых простых примеров. В нем возвращается только код результата выполнения процедуры. Во многих случаях оут-параметров несколько, поэтому на выходе получаем что-то типа:
- Код: Выделить всё
Select @v4, @v5, @v6, @vResult
В общем, как я уже писал, спор глупый и беспочвенный. Я использую UniDAC - и в Дельфях, и в Лазарусе. Он прекрасно понимает подобные многокомандные запросы на уровне обычной TUniQuery (равно, кстати, как и FireDAC, и DBExpress в тех же самых Дельфях). В последней версии UniDAC я обнаружил небольшой баг и сделал тестовый проект для отправки, в котором выполнил одну и ту же операцию с UniDAC и другими компонентами работы с MySQL. Когда я делал такой проект в Лазарусе, я наткнулся на это ограничение и решил, что, вполне возможно, чего-то о SQLDB не знаю я. В общем-то, никакой проблемы у меня нет, поэтому тему считаю закрытой
Добавлено спустя 3 минуты 24 секунды:MaratIsk писал(а):у скриптовых компонентов нет буфера для хранения набора данных. не знаю, что вы программировали 30 лет, но многие вещи для вас, как я догадываюсь, внове. особенно, ваши эксперименты с connections
Я не знаю, о каких скриптовых компонентах вы говорите. Я использую обычный TQuery. В последние несколько лет TUniQuery из библиотеки UniDAC. Так что, вы можете догадываться о чем угодно, но у меня все прекрасно работает