В основном то, о чем необходимо волноваться в числах с плавающей точкой, - то, что существует ограниченное количество цифр точности. Это может вызвать проблемы при тестировании на равенство, или если для программы на самом деле нужно больше цифр точности, чем, что тот тип данных дают Вам.
В C++, хорошее эмпирическое правило должно думать, что плавание дает Вам 7 цифр точности, в то время как двойное дает Вам 15. Кроме того, если Вы интересуетесь знанием, как протестировать на равенство, можно посмотреть этот поток вопроса.
Хранимой процедуре требуются возвращаемые параметры и команда suspend
для возврата нескольких строк.
CREATE PROCEDURE DEPARTMENTS_GET_ALL
returns(id integer, name varchar(100))
AS
BEGIN
FOR SELECT id, name
FROM "Departments"
into :id, :name do
BEGIN
SUSPEND;
END
END^
SET TERM ; ^