Можно выполнить всё, что позволяется синтаксисом SQL соответствующего сервера БД. В мускуле, например, отдельные команды в наборе команд разделяются точкой с запятой.
Сервер менеджмент студио такое выполняет без проблем. Но мне кажеться, он это разделяет на отдельные команды сам и последовательно выполняет. С Лазарусом такой фокус не идет (пишет какие-то ошибки внутрене-скл-ные).
Добавлено спустя 11 минут 7 секунд: Хм... Если процедура возвращает таблицу, то как при выполнении скрипта получить значения ячеек? Или это только для выполнение без возвращения результата?
У мелкомягких нет возможности создать временную таблицу, направить в неё выхлоп процедуры и потом прочитать данные из этой таблицы? Никогда не поверю...
Дело не в этом. Просто есть внешний СКЛ-запрос. И с ним нужно работыть. Но похоже, что проблема не в Лазарусе, какая-то другая. Разбираюсь.
Добавлено спустя 27 минут 3 секунды: Похоже, что создается темповая таблица в темповой БД. Подключаячь к БД1 я могу обращаться к другой БД? Права у пользователя есть. Такое ощущение, что при работе процедуры с другой БД в Лазарусе какой-то конфликт с правами.
Добавлено спустя 1 час 31 минуту 55 секунд: Похоже, что ситуация следующая. СКЛквери ждет возврат таблицы, и считает, что работает в ридонлы режиме. Но сама процедура, делает инсерт и не может. Вопрос, как указать, что режим не ридонли, но ожидаеться таблица как результат.
В тексте запроса может быть любой скрипт, но быть команды GO не должно. Если хранимая процедура имеет в составе select то запрос вернет данные. Соответственно нужно использовать именно TSQLQuery Лучше завести привычку и все необходимые установки SET делать всегда в своих приложениях. Ну или вообще не опираться на установки по умолчанию при написании скрипта. Т.е. вместо SET dateformat ymd везде прописывать convert(datetime,'2020-06-15', 120) кау вас и сделано в примере. Но некоторые вещи придется указывать (например при работе с расписаниями типа таких SET datefirst 1 ) Имея такую привычку не придется потом тратить время на разбирательства почему работает не так, или вообще не работает, если база переедет на MS SQL сервер с другими установками по умолчанию.