Что оптимальнее - вызывать ХП через SELECT и в ХП делать SUSPEND; EXIT или вызывать ХП через EXECUTE PROCEDURE <....> RETURNING_VALUES.
Необходимо получать singletone-результаты.
Что оптимальнее - SUSPEND; EXIT или вызов ХП через EXECUTE?
Насколько я понял, речь о PSQL, то бишь о вызовах из других процедур. В этом случае однозначно executable процедуры. Для дёргания с клиента в общем тоже, но в некоторых версиях клиентской библиотеки именно IB для этого предусмотрены грабли. Говорят где-то в IB7.x их наконец убрали. В релизных FB их никогда не было.
На самом деле интересует как вызов внутри процедур, так и вызов из клиента. Поэтому, хотелось бы знать: а чем, собсно, оптимальнее?
Кроме того: сейчас ехал в метро и вдруг подумал: а если делать вызов со стороны клиента, то куда передавать выходные параметры? Т.е. что писать после returning_values в вызове процедуры из клиента?
Кроме того: сейчас ехал в метро и вдруг подумал: а если делать вызов со стороны клиента, то куда передавать выходные параметры? Т.е. что писать после returning_values в вызове процедуры из клиента?
Затратами памяти.ИГ писал(а):На самом деле интересует как вызов внутри процедур, так и вызов из клиента. Поэтому, хотелось бы знать: а чем, собсно, оптимальнее?
Тут сильно зависит от того, на чём делается клиент. Returning_values - это чисто PSQL-синтаксис. Инструменты разработки клиента же так или иначе разбираются со структурой XSQLDA и интерпретируют её в абстракции более высокого уровня соответсвии со своей архитектурой. Например, в IBX для этого предназначен компонент TIBStoredProc, интерперетирующий возврат executable SP как выходные параметры. Вообще-то поконкретней надо быть, утомляет - ни версии сервера, ни среды программирования - сиди тут и гадай что тебе ответить.ИГ писал(а): Кроме того: сейчас ехал в метро и вдруг подумал: а если делать вызов со стороны клиента, то куда передавать выходные параметры? Т.е. что писать после returning_values в вызове процедуры из клиента?
Прошу прощения, что не "представился" 
Сервер - Firebird 1.5.2.4731
Cистема программирования - Qt.
Как я полагаю (надо будет проверить), вероятно, если в самой процедуре указать возвращаемые параметры, то они должны быть винды и в полученном результате (в том порядке, в котором они заданы в ХП). Однако, можно ли задать сисок необходимых параметров именно через SQL? Потому как через интерфейс Qt этого не сделаешь

Сервер - Firebird 1.5.2.4731
Cистема программирования - Qt.
Как я полагаю (надо будет проверить), вероятно, если в самой процедуре указать возвращаемые параметры, то они должны быть винды и в полученном результате (в том порядке, в котором они заданы в ХП). Однако, можно ли задать сисок необходимых параметров именно через SQL? Потому как через интерфейс Qt этого не сделаешь
