fb 2.1.1
есть домены:
CREATE DOMAIN STR_USERID AS VARCHAR(128) not null;
CREATE DOMAIN STR_NAME AS VARCHAR(1024);
есть такая процедура:
set term ^ ;
create procedure GetUserData(userAccount STR_USERID)
returns(User_ID STR_USERID,
User_Name STR_NAME,
User_DigestHash varchar(128))
as
begin
for select User_ID,User_Name,User_DigestHash
from Users
where User_ID=:userAccount
into :User_ID,:User_Name,:User_DigestHash do begin
suspend;
end
end^
set term ; ^
суть - не давать права на чтение таблицы, а только право "найти
пользователя по ID"
проблема: если вызывать процедуру с несуществующим в таблице user_id
то возникает такая ошибка:
The insert failed because a column definition includes validation
constraints.validation error for variable USER_ID, value "*** null
***". At procedure 'GETUSERDATA' line: 7, col: 2.
Я предполагаю, что процедура должна вернуть пустой датасет, а оно
ругается на null.
Обходной маневр - присвоить в начале User_ID=''; тогда работает, как
должно, но имхо, это что-то неправильное.